2016年11月29日火曜日

T&S damping in NEMO

namelist has two parameters for T&S damping: ln_tsd_tradmp and ln_tradmp.

namelist
ln_tsd_tradmp = .false.   !  damping of ocean T & S toward T &S input data (T) or not (F)
ln_tradmp   =  .true.   !  add a damping termn (T) or not (F)

It's not clear to me the difference of the two parameters.

ln_tsd_tradmp and ln_tradmp
Run1: T & F --> Ran
Run2: T & T --> Ran
Run3: F & T --> ln_tsd_tradmp was force set to T (see notes below) --> Ran aborted due to exceeding zonal current.. skipping.
Run4: T & F but with a restoring time scale of 1 day (this is done to compare the results with Run1 to see if damping was done or not) -->

ocean.output for Run 3
===>>> : W A R N I N G
         ===============

 tra_dmp_init: read T-S data not initialized, we force ln_tsd_tradmp=T

 dta_tsd_init : Temperature & Salinity data
 ~~~~~~~~~~~~
    Namelist namtsd
       Initialisation of ocean T & S with T &S input data   ln_tsd_init   =  T
       damping of ocean T & S toward T &S input data        ln_tsd_tradmp =  T


ncdiff -v tn NAA_00000021_restart_2.nc NAA_00000021_restart_1.nc 2minus1.nc
ncdiff -v tn NAA_00000021_restart_4.nc NAA_00000021_restart_1.nc 4minus1.nc

Run1 and Run2 produced different output, hinting that ln_tradmp needs to be T to activate damping.
Run1 and Run4 are produced the identical output, confirming that ln_tradmp needs to be T to activate damping.

Hence, to activate damping, ln_tradmp needs to be .true. while ln_tsd_tradmp can be .false. (because it will be force set to .true. if ln_tradmp is .true.).

2016年11月28日月曜日

ttest in namelist_ice

Why set ttest? Shouldn't we be creating ice if sst is at freezing point of sea water?


namelist_ice

ttest       =  2.0      !  threshold water temperature for initial sea ice


Source: http://forge.ipsl.jussieu.fr/little_nemo/browser/vendor/nemo/current/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90?rev=2

95

      t_bo(:,:) = tfreez( tsn(:,:,1,jp_sal) ) * tmask(:,:,1)       ! freezing/melting point of sea water [Celcius]
96
97      DO jj = 1, jpj                                       ! ice if sst <= t-freez + ttest
98         DO ji = 1, jpi
99            IF( tsn(ji,jj,1,jp_tem)  - t_bo(ji,jj) >= ttest ) THEN   ;   zidto(ji,jj) = 0.e0      ! no ice
100            ELSE                                                     ;   zidto(ji,jj) = 1.e0      !    ice
101            ENDIF
102         END DO
103      END DO