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 – NEMO

Changeset 11601


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

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

Location:
NEMO/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/cfgs/SHARED/namelist_ice_ref

    r11536 r11601  
    234234&namdia         !   Diagnostics 
    235235!------------------------------------------------------------------------------ 
    236    ln_icediachk     = .false.         !  check online the heat, mass & salt budgets at each time step 
    237       !                               !     rate of ice spuriously gained/lost. For ex., rn_icechk=1. <=> 1mm/year, rn_icechk=0.1 <=> 1mm/10years                                    
    238       rn_icechk_cel =  1.             !     check at any gridcell           => stops the code if violated (and writes a file) 
    239       rn_icechk_glo =  0.1            !     check over the entire ice cover => only prints warnings 
     236   ln_icediachk     = .false.         !  check online heat, mass & salt budgets 
     237      !                               !   rate of ice spuriously gained/lost at each time step => rn_icechk=1 <=> 1.e-6 m/hour 
     238      rn_icechk_cel =  100.           !     check at each gridcell          (1.e-4m/h)=> stops the code if violated (and writes a file) 
     239      rn_icechk_glo =  1.             !     check over the entire ice cover (1.e-6m/h)=> only prints warnings 
    240240   ln_icediahsb     = .false.         !  output the heat, mass & salt budgets (T) or not (F) 
    241241   ln_icectl        = .false.         !  ice points output for debug (T or F) 
  • 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.