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

2016年10月20日木曜日

lbc_lnk in TOP_SRC

In LOBSTER, lbc_lnk is called for the prognostic variables in the uppermost layer only:

LOBSTER/trcbio.F90:            CALL lbc_lnk( zw2d(:,:,jl),'T', 1. )
LOBSTER/trcbio.F90:            CALL lbc_lnk( zw3d(:,:,:,jl),'T', 1. )
LOBSTER/trcbio.F90:            CALL lbc_lnk( trbio(:,:,1,jl),'T', 1. )
LOBSTER/trcexp.F90:      CALL lbc_lnk( sedpocn, 'T', 1. )
LOBSTER/trcini_lobster.F90:      CALL lbc_lnk( cmask, 'T', 1. )

While in PISCES, it is called for the entire water column:

PISCES/p4zsed.F90:         CALL lbc_lnk( zcmask , 'T', 1. )      ! lateral boundary conditions on cmask   (sign unchanged)
PISCES/p4zsed.F90.v1:         CALL lbc_lnk( zcmask , 'T', 1. )      ! lateral boundary conditions on cmask   (sign unchanged)
PISCES/p4zsed.F90.v2:         CALL lbc_lnk( zcmask , 'T', 1. )      ! lateral boundary conditions on cmask   (sign unchanged)
PISCES/trcsms_pisces.F90:        CALL lbc_lnk( trn(:,:,:,jn), 'T', 1. )
PISCES/trcsms_pisces.F90:        CALL lbc_lnk( trb(:,:,:,jn), 'T', 1. )
PISCES/trcsms_pisces.F90:        CALL lbc_lnk( tra(:,:,:,jn), 'T', 1. )
PISCES/trcsms_pisces.F90:           CALL lbc_lnk( trn(:,:,:,jn), 'T', 1. )

While CFC and C14b do not use "lbc_lnk" subroutine.


2016年10月15日土曜日

sendmail

In qsub, 'mail' or 'mailx' command is not available.

Alternatively, I can use 'sendmail' to do the same task as 'mail' or 'mailx'. This is especially useful for Nestor becuase Nestor does not have mail notification option in PBS as of now.

Examples of sendmail:

echo -e "subject \n body message" | sendmail email@email.com

Here, the \n separates the subject and the body message (http://unix.stackexchange.com/a/168233).


The sender is the hostname of the processor (?) you are using: e.g. hermes0199.westgrid.uvic.ca.
Unfortunately, some email client (like my old university's) blocked receiving email from this address for some reason.
So the solution here is the specify the sender (to some existing email address) with -f flag:

echo -e "subject \n body message" | sendmail -f "sender@sender.com" email@email.com

You can also specify the sender name with -F option:

echo -e "subject \n body message" | sendmail -F "Me from Nestor" -f "sender@sender.com" email@email.com

2016年10月13日木曜日

slow because of jasper or MY_TRC?

qstat -u

    2000mb  35:59:59 R  30:13:58

 tail tracer.stat

      9529  0.9203073862E+03
      9530  0.9203655932E+03
      9531  0.9204196679E+03
      9532  0.9204798224E+03
      9533  0.9205345088E+03
      9534  0.9205939773E+03
      9535  0.9206496257E+03
      9536  0.9207078335E+03
      9537  0.9207647118E+03
      9538  0.9208231441E+03

The end time step is 26280, so I killed the process.

This slow computing may be due to MY_TRC. I will check.