Index: NEMO/trunk/src/ICE/icectl.F90
===================================================================
--- NEMO/trunk/src/ICE/icectl.F90 (revision 11575)
+++ 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)