Index: /NEMO/trunk/cfgs/SHARED/namelist_ice_ref
===================================================================
--- /NEMO/trunk/cfgs/SHARED/namelist_ice_ref (revision 11600)
+++ /NEMO/trunk/cfgs/SHARED/namelist_ice_ref (revision 11601)
@@ -234,8 +234,8 @@
&namdia ! Diagnostics
!------------------------------------------------------------------------------
- ln_icediachk = .false. ! check online the heat, mass & salt budgets at each time step
- ! ! rate of ice spuriously gained/lost. For ex., rn_icechk=1. <=> 1mm/year, rn_icechk=0.1 <=> 1mm/10years
- rn_icechk_cel = 1. ! check at any gridcell => stops the code if violated (and writes a file)
- rn_icechk_glo = 0.1 ! check over the entire ice cover => only prints warnings
+ ln_icediachk = .false. ! check online heat, mass & salt budgets
+ ! ! rate of ice spuriously gained/lost at each time step => rn_icechk=1 <=> 1.e-6 m/hour
+ rn_icechk_cel = 100. ! check at each gridcell (1.e-4m/h)=> stops the code if violated (and writes a file)
+ rn_icechk_glo = 1. ! check over the entire ice cover (1.e-6m/h)=> only prints warnings
ln_icediahsb = .false. ! output the heat, mass & salt budgets (T) or not (F)
ln_icectl = .false. ! ice points output for debug (T or F)
Index: /NEMO/trunk/src/ICE/icectl.F90
===================================================================
--- /NEMO/trunk/src/ICE/icectl.F90 (revision 11600)
+++ /NEMO/trunk/src/ICE/icectl.F90 (revision 11601)
@@ -44,9 +44,9 @@
PUBLIC ice_prt3D
- ! thresold values for conservation
+ ! thresold rates for conservation
! these values are changed by the namelist parameter rn_icechk, so that threshold = zchk * rn_icechk
- REAL(wp), PARAMETER :: zchk_m = 1.e-5 ! kg/m2/s <=> 1mm of ice per year spuriously gained/lost
- REAL(wp), PARAMETER :: zchk_s = 1.e-4 ! g/m2/s <=> 1mm of ice per year spuriously gained/lost (considering s=10g/kg)
- REAL(wp), PARAMETER :: zchk_t = 3. ! W/m2 <=> 1mm of ice per year spuriously gained/lost (considering Lf=3e5J/kg)
+ REAL(wp), PARAMETER :: zchk_m = 2.5e-7 ! kg/m2/s <=> 1e-6 m of ice per hour spuriously gained/lost
+ REAL(wp), PARAMETER :: zchk_s = 2.5e-6 ! g/m2/s <=> 1e-6 m of ice per hour spuriously gained/lost (considering s=10g/kg)
+ REAL(wp), PARAMETER :: zchk_t = 7.5e-2 ! W/m2 <=> 1e-6 m of ice per hour spuriously gained/lost (considering Lf=3e5J/kg)
!! * Substitutions
@@ -68,6 +68,5 @@
!! ** Method : This is an online diagnostics which can be activated with ln_icediachk=true
!! It prints in ocean.output if there is a violation of conservation at each time-step
- !! The thresholds (zchk_m, zchk_s, zchk_t) which determine violations are set to
- !! a minimum of 1 mm of ice (over the ice area) that is lost/gained spuriously during 100 years.
+ !! The thresholds (zchk_m, zchk_s, zchk_t) determine violations
!! For salt and heat thresholds, ice is considered to have a salinity of 10
!! and a heat content of 3e5 J/kg (=latent heat of fusion)
@@ -133,6 +132,6 @@
! -- advection scheme is conservative? -- !
- zvtrp = glob_sum( 'icectl', ( diag_trp_vi * rhoi + diag_trp_vs * rhos ) * e1e2t ) ! must be close to 0
- zetrp = glob_sum( 'icectl', ( diag_trp_ei + diag_trp_es ) * e1e2t ) ! must be close to 0
+ zvtrp = glob_sum( 'icectl', ( diag_trp_vi * rhoi + diag_trp_vs * rhos ) * e1e2t ) ! must be close to 0 (only for Prather)
+ zetrp = glob_sum( 'icectl', ( diag_trp_ei + diag_trp_es ) * e1e2t ) ! must be close to 0 (only for Prather)
! ice area (+epsi10 to set a threshold > 0 when there is no ice)
@@ -157,5 +156,8 @@
& WRITE(numout,*) cd_routine,' : violation a_i > amax = ',zdiag_amax
! check if advection scheme is conservative
- IF( ABS(zvtrp) > zchk_m * rn_icechk_glo * zarea .AND. cd_routine == 'icedyn_adv' ) &
+ ! only check for Prather because Ultimate-Macho uses corrective fluxes (wfx etc)
+ ! so the formulation for conservation is different (and not coded)
+ ! it does not mean UM is not conservative (it is checked with above prints)
+ IF( ln_adv_Pra .AND. ABS(zvtrp) > zchk_m * rn_icechk_glo * zarea .AND. cd_routine == 'icedyn_adv' ) &
& WRITE(numout,*) cd_routine,' : violation adv scheme [kg] = ',zvtrp * rdt_ice
ENDIF
@@ -173,6 +175,5 @@
!! ** Method : This is an online diagnostics which can be activated with ln_icediachk=true
!! It prints in ocean.output if there is a violation of conservation at each time-step
- !! The thresholds (zchk_m, zchk_s, zchk_t) which determine the violation are set to
- !! a minimum of 1 mm of ice (over the ice area) that is lost/gained spuriously during 100 years.
+ !! The thresholds (zchk_m, zchk_s, zchk_t) determine the violations
!! For salt and heat thresholds, ice is considered to have a salinity of 10
!! and a heat content of 3e5 J/kg (=latent heat of fusion)