diff --git a/cfgs/SHARED/namelist_ref b/cfgs/SHARED/namelist_ref index d484220d0e7639e87239413678129590512dc27a..79ace60ced6f43555179eea714a0b8ccb5d732ee 100644 --- a/cfgs/SHARED/namelist_ref +++ b/cfgs/SHARED/namelist_ref @@ -1485,6 +1485,7 @@ ln_trainc = .false. ! Logical switch for applying tracer increments ln_dyninc = .false. ! Logical switch for applying velocity increments ln_sshinc = .false. ! Logical switch for applying SSH increments + ln_seaiceinc = .false. ! Logical switch for applying Sea ice concentration increments ln_asmdin = .false. ! Logical switch for Direct Initialization (DI) ln_asmiau = .false. ! Logical switch for Incremental Analysis Updating (IAU) nitbkg = 0 ! Timestep of background in [0,nitend-nit000-1] @@ -1494,6 +1495,7 @@ niaufn = 0 ! Type of IAU weighting function ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin salfixmin = -9999 ! Minimum salinity after applying the increments + ln_temnofreeze=.false. ! Don't allow the temperature to drop below freezing nn_divdmp = 0 ! Number of iterations of divergence damping operator / diff --git a/src/OCE/ASM/asminc.F90 b/src/OCE/ASM/asminc.F90 index 850dfb0999d2e0eae94e34023068916aad36e46a..c0ac1c1c75791abd7f3fb610bb289b2defdc9ba9 100644 --- a/src/OCE/ASM/asminc.F90 +++ b/src/OCE/ASM/asminc.F90 @@ -57,16 +57,17 @@ MODULE asminc #else LOGICAL, PUBLIC, PARAMETER :: lk_asminc = .FALSE. !: No assimilation increments #endif - LOGICAL, PUBLIC :: ln_bkgwri !: No output of the background state fields - LOGICAL, PUBLIC :: ln_asmiau !: No applying forcing with an assimilation increment - LOGICAL, PUBLIC :: ln_asmdin !: No direct initialization - LOGICAL, PUBLIC :: ln_trainc !: No tracer (T and S) assimilation increments - LOGICAL, PUBLIC :: ln_dyninc !: No dynamics (u and v) assimilation increments - LOGICAL, PUBLIC :: ln_sshinc !: No sea surface height assimilation increment - LOGICAL, PUBLIC :: ln_seaiceinc !: No sea ice concentration increment - LOGICAL, PUBLIC :: ln_salfix !: Apply minimum salinity check - LOGICAL, PUBLIC :: ln_temnofreeze = .FALSE. !: Don't allow the temperature to drop below freezing - INTEGER, PUBLIC :: nn_divdmp !: Apply divergence damping filter nn_divdmp times + + LOGICAL, PUBLIC :: ln_bkgwri !: Logical switch for writing out background state + LOGICAL, PUBLIC :: ln_asmiau !: Logical switch for Incremental Analysis Updating (IAU) + LOGICAL, PUBLIC :: ln_asmdin !: Logical switch for Direct Initialization (DI) + LOGICAL, PUBLIC :: ln_trainc !: Logical switch for applying tracer increments + LOGICAL, PUBLIC :: ln_dyninc !: Logical switch for applying velocity increments + LOGICAL, PUBLIC :: ln_sshinc !: Logical switch for applying SSH increments + LOGICAL, PUBLIC :: ln_seaiceinc !: Logical switch for applying Sea ice concentration increments + LOGICAL, PUBLIC :: ln_salfix !: Logical switch for ensuring that the sa > salfixmin + LOGICAL, PUBLIC :: ln_temnofreeze!: Don't allow the temperature to drop below freezing + INTEGER, PUBLIC :: nn_divdmp !: Number of iterations of divergence damping operator REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: t_bkg , s_bkg !: Background temperature and salinity REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: u_bkg , v_bkg !: Background u- & v- velocity components @@ -139,15 +140,13 @@ CONTAINS & ln_trainc, ln_dyninc, ln_sshinc, & & ln_asmdin, ln_asmiau, & & nitbkg, nitdin, nitiaustr, nitiaufin, niaufn, & - & ln_salfix, salfixmin, nn_divdmp + & ln_seaiceinc, ln_salfix, salfixmin, & + & ln_temnofreeze, nn_divdmp !!---------------------------------------------------------------------- !----------------------------------------------------------------------- ! Read Namelist nam_asminc : assimilation increment interface !----------------------------------------------------------------------- - ln_seaiceinc = .FALSE. - ln_temnofreeze = .FALSE. - READ ( numnam_ref, nam_asminc, IOSTAT = ios, ERR = 901) 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_asminc in reference namelist' ) READ ( numnam_cfg, nam_asminc, IOSTAT = ios, ERR = 902 ) @@ -174,6 +173,7 @@ CONTAINS WRITE(numout,*) ' Type of IAU weighting function niaufn = ', niaufn WRITE(numout,*) ' Logical switch for ensuring that the sa > salfixmin ln_salfix = ', ln_salfix WRITE(numout,*) ' Minimum salinity after applying the increments salfixmin = ', salfixmin + WRITE(numout,*) ' Do not apply negative increments if the T < freezing ln_temnofreeze = ',ln_temnofreeze ENDIF nitbkg_r = nitbkg + nit000 - 1 ! Background time referenced to nit000