New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 11601 for NEMO/trunk/src/ICE/icectl.F90 – NEMO

Ignore:
Timestamp:
2019-09-26T16:54:45+02:00 (5 years ago)
Author:
clem
Message:

correct the check on conservation for sea ice (does not impact sette tests)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/ICE/icectl.F90

    r11536 r11601  
    4444   PUBLIC   ice_prt3D 
    4545 
    46    ! thresold values for conservation 
     46   ! thresold rates for conservation 
    4747   !    these values are changed by the namelist parameter rn_icechk, so that threshold = zchk * rn_icechk 
    48    REAL(wp), PARAMETER ::   zchk_m   = 1.e-5   ! kg/m2/s <=> 1mm of ice per year spuriously gained/lost 
    49    REAL(wp), PARAMETER ::   zchk_s   = 1.e-4   ! g/m2/s  <=> 1mm of ice per year spuriously gained/lost (considering s=10g/kg) 
    50    REAL(wp), PARAMETER ::   zchk_t   = 3.      ! W/m2    <=> 1mm of ice per year spuriously gained/lost (considering Lf=3e5J/kg) 
     48   REAL(wp), PARAMETER ::   zchk_m   = 2.5e-7   ! kg/m2/s <=> 1e-6 m of ice per hour spuriously gained/lost 
     49   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) 
     50   REAL(wp), PARAMETER ::   zchk_t   = 7.5e-2   ! W/m2    <=> 1e-6 m of ice per hour spuriously gained/lost (considering Lf=3e5J/kg) 
    5151    
    5252   !! * Substitutions 
     
    6868      !! ** Method  : This is an online diagnostics which can be activated with ln_icediachk=true 
    6969      !!              It prints in ocean.output if there is a violation of conservation at each time-step 
    70       !!              The thresholds (zchk_m, zchk_s, zchk_t) which determine violations are set to 
    71       !!              a minimum of 1 mm of ice (over the ice area) that is lost/gained spuriously during 100 years. 
     70      !!              The thresholds (zchk_m, zchk_s, zchk_t) determine violations 
    7271      !!              For salt and heat thresholds, ice is considered to have a salinity of 10  
    7372      !!              and a heat content of 3e5 J/kg (=latent heat of fusion)  
     
    133132 
    134133         ! -- advection scheme is conservative? -- ! 
    135          zvtrp = glob_sum( 'icectl', ( diag_trp_vi * rhoi + diag_trp_vs * rhos ) * e1e2t ) ! must be close to 0 
    136          zetrp = glob_sum( 'icectl', ( diag_trp_ei        + diag_trp_es        ) * e1e2t ) ! must be close to 0 
     134         zvtrp = glob_sum( 'icectl', ( diag_trp_vi * rhoi + diag_trp_vs * rhos ) * e1e2t ) ! must be close to 0 (only for Prather) 
     135         zetrp = glob_sum( 'icectl', ( diag_trp_ei        + diag_trp_es        ) * e1e2t ) ! must be close to 0 (only for Prather) 
    137136 
    138137         ! ice area (+epsi10 to set a threshold > 0 when there is no ice)  
     
    157156               &                   WRITE(numout,*)   cd_routine,' : violation a_i > amax      = ',zdiag_amax 
    158157            ! check if advection scheme is conservative 
    159             IF( ABS(zvtrp) > zchk_m * rn_icechk_glo * zarea .AND. cd_routine == 'icedyn_adv' ) & 
     158            !    only check for Prather because Ultimate-Macho uses corrective fluxes (wfx etc) 
     159            !    so the formulation for conservation is different (and not coded)  
     160            !    it does not mean UM is not conservative (it is checked with above prints) 
     161            IF( ln_adv_Pra .AND. ABS(zvtrp) > zchk_m * rn_icechk_glo * zarea .AND. cd_routine == 'icedyn_adv' ) & 
    160162               &                   WRITE(numout,*)   cd_routine,' : violation adv scheme [kg] = ',zvtrp * rdt_ice 
    161163         ENDIF 
     
    173175      !! ** Method  : This is an online diagnostics which can be activated with ln_icediachk=true 
    174176      !!              It prints in ocean.output if there is a violation of conservation at each time-step 
    175       !!              The thresholds (zchk_m, zchk_s, zchk_t) which determine the violation are set to 
    176       !!              a minimum of 1 mm of ice (over the ice area) that is lost/gained spuriously during 100 years. 
     177      !!              The thresholds (zchk_m, zchk_s, zchk_t) determine the violations 
    177178      !!              For salt and heat thresholds, ice is considered to have a salinity of 10  
    178179      !!              and a heat content of 3e5 J/kg (=latent heat of fusion)  
Note: See TracChangeset for help on using the changeset viewer.