Changeset 11511
- Timestamp:
- 2019-09-06T19:41:44+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/cfgs/SHARED/namelist_ice_ref
r11501 r11511 232 232 &namdia ! Diagnostics 233 233 !------------------------------------------------------------------------------ 234 ln_icediachk = .false. ! check online the heat, mass & salt budgets (T) or not (F) 235 rn_icechk = 1. ! 1. <=> 1mm of ice spuriously gained/lost during 1 year (at any gridcell) 236 ! -- 100 years (over the entire ice cover) 234 ln_icediachk = .false. ! check online the heat, mass & salt budgets at each time step 235 ! ! rate of ice spuriously gained/lost. For ex., rn_icechk=1. <=> 1mm/year, rn_icechk=0.01 <=> 1mm/100years 236 rn_icechk_cel = 1. ! check at any gridcell => stops the code if violated (and writes a file) 237 rn_icechk_glo = 0.01 ! check over the entire ice cover => only prints warnings 237 238 ln_icediahsb = .false. ! output the heat, mass & salt budgets (T) or not (F) 238 239 ln_icectl = .false. ! ice points output for debug (T or F) -
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/ICE/ice.F90
r11501 r11511 196 196 ! !!** ice-diagnostics namelist (namdia) ** 197 197 LOGICAL , PUBLIC :: ln_icediachk !: flag for ice diag (T) or not (F) 198 REAL(wp), PUBLIC :: rn_icechk !: 1. <=> 1mm of ice spuriously gained/lost during 1 year(at any gridcell)199 ! -- 100 years(globally)198 REAL(wp), PUBLIC :: rn_icechk_cel !: rate of ice spuriously gained/lost (at any gridcell) 199 REAL(wp), PUBLIC :: rn_icechk_glo !: rate of ice spuriously gained/lost (globally) 200 200 LOGICAL , PUBLIC :: ln_icediahsb !: flag for ice diag (T) or not (F) 201 201 LOGICAL , PUBLIC :: ln_icectl !: flag for sea-ice points output (T) or not (F) -
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/ICE/icectl.F90
r11501 r11511 46 46 ! thresold values for conservation 47 47 ! 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 1 year spuriously gained/lost 49 REAL(wp), PARAMETER :: zchk2D_m = 1.e-7 ! -- 100 years -- 50 REAL(wp), PARAMETER :: zchk_s = 1.e-4 ! g/m2/s <=> 1mm of ice per 1 year spuriously gained/lost (considering s=10g/kg) 51 REAL(wp), PARAMETER :: zchk2D_s = 1.e-6 ! -- 100 years -- 52 REAL(wp), PARAMETER :: zchk_t = 3. ! W/m2 <=> 1mm of ice per 1 year spuriously gained/lost (considering Lf=3e5J/kg) 53 REAL(wp), PARAMETER :: zchk2D_t = 0.03 ! -- 100 years -- 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) 54 51 55 52 !! * Substitutions … … 144 141 IF( lwp ) THEN 145 142 ! check conservation issues 146 IF( ABS(zdiag_mass) > zchk_m * rn_icechk * zarea ) &143 IF( ABS(zdiag_mass) > zchk_m * rn_icechk_glo * zarea ) & 147 144 & WRITE(numout,*) cd_routine,' : violation mass cons. [kg] = ',zdiag_mass * rdt_ice 148 IF( ABS(zdiag_salt) > zchk_s * rn_icechk * zarea ) &145 IF( ABS(zdiag_salt) > zchk_s * rn_icechk_glo * zarea ) & 149 146 & WRITE(numout,*) cd_routine,' : violation salt cons. [g] = ',zdiag_salt * rdt_ice 150 IF( ABS(zdiag_heat) > zchk_t * rn_icechk * zarea ) &147 IF( ABS(zdiag_heat) > zchk_t * rn_icechk_glo * zarea ) & 151 148 & WRITE(numout,*) cd_routine,' : violation heat cons. [J] = ',zdiag_heat * rdt_ice 152 149 ! check negative values … … 160 157 & WRITE(numout,*) cd_routine,' : violation a_i > amax = ',zdiag_amax 161 158 ! check if advection scheme is conservative 162 IF( ABS(zvtrp) > zchk_m *rn_icechk*zarea .AND. cd_routine == 'icedyn_adv' ) &159 IF( ABS(zvtrp) > zchk_m * rn_icechk_glo * zarea .AND. cd_routine == 'icedyn_adv' ) & 163 160 & WRITE(numout,*) cd_routine,' : violation adv scheme [kg] = ',zvtrp * rdt_ice 164 161 ENDIF … … 202 199 203 200 IF( lwp ) THEN 204 IF( ABS(zdiag_mass) > zchk_m * rn_icechk * zarea ) &201 IF( ABS(zdiag_mass) > zchk_m * rn_icechk_glo * zarea ) & 205 202 & WRITE(numout,*) cd_routine,' : violation mass cons. [kg] = ',zdiag_mass * rdt_ice 206 IF( ABS(zdiag_salt) > zchk_s * rn_icechk * zarea ) &203 IF( ABS(zdiag_salt) > zchk_s * rn_icechk_glo * zarea ) & 207 204 & WRITE(numout,*) cd_routine,' : violation salt cons. [g] = ',zdiag_salt * rdt_ice 208 !!IF( ABS(zdiag_heat) > zchk_t * rn_icechk * zarea ) WRITE(numout,*) cd_routine,' : violation heat cons. [J] = ',zdiag_heat * rdt_ice205 !!IF( ABS(zdiag_heat) > zchk_t * rn_icechk_glo * zarea ) WRITE(numout,*) cd_routine,' : violation heat cons. [J] = ',zdiag_heat * rdt_ice 209 206 ENDIF 210 207 ! … … 256 253 & wfx_snw_sni + wfx_snw_sum + wfx_snw_dyn + wfx_snw_sub + wfx_ice_sub + wfx_spr ) & 257 254 & - pdiag_fv 258 IF( MAXVAL( ABS(zdiag_mass) ) > zchk 2D_m * rn_icechk) ll_stop_m = .TRUE.255 IF( MAXVAL( ABS(zdiag_mass) ) > zchk_m * rn_icechk_cel ) ll_stop_m = .TRUE. 259 256 ! 260 257 ! -- salt diag -- ! … … 262 259 & + ( sfx_bri + sfx_bog + sfx_bom + sfx_sum + sfx_sni + sfx_opw + sfx_res + sfx_dyn + sfx_sub + sfx_lam ) & 263 260 & - pdiag_fs 264 IF( MAXVAL( ABS(zdiag_salt) ) > zchk 2D_s * rn_icechk) ll_stop_s = .TRUE.261 IF( MAXVAL( ABS(zdiag_salt) ) > zchk_s * rn_icechk_cel ) ll_stop_s = .TRUE. 265 262 ! 266 263 ! -- heat diag -- ! … … 269 266 & - hfx_thd - hfx_dyn - hfx_res - hfx_sub - hfx_spr ) & 270 267 & - pdiag_ft 271 IF( MAXVAL( ABS(zdiag_heat) ) > zchk 2D_t * rn_icechk) ll_stop_t = .TRUE.268 IF( MAXVAL( ABS(zdiag_heat) ) > zchk_t * rn_icechk_cel ) ll_stop_t = .TRUE. 272 269 ! 273 270 ! -- other diags -- ! -
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/ICE/icedia.F90
r11501 r11511 175 175 INTEGER :: ios, ierror ! local integer 176 176 !! 177 NAMELIST/namdia/ ln_icediachk, rn_icechk , ln_icediahsb, ln_icectl, iiceprt, jiceprt177 NAMELIST/namdia/ ln_icediachk, rn_icechk_cel, rn_icechk_glo, ln_icediahsb, ln_icectl, iiceprt, jiceprt 178 178 !!---------------------------------------------------------------------- 179 179 ! … … 191 191 WRITE(numout,*) ' ~~~~~~~~~~~' 192 192 WRITE(numout,*) ' Namelist namdia:' 193 WRITE(numout,*) ' Diagnose online heat/mass/salt conservation ln_icediachk = ', ln_icediachk 194 WRITE(numout,*) ' threshold for conservation rn_icechk = ', rn_icechk 195 WRITE(numout,*) ' Output heat/mass/salt budget ln_icediahsb = ', ln_icediahsb 196 WRITE(numout,*) ' control prints for a given grid point ln_icectl = ', ln_icectl 197 WRITE(numout,*) ' chosen grid point position (iiceprt,jiceprt) = (', iiceprt,',', jiceprt,')' 193 WRITE(numout,*) ' Diagnose online heat/mass/salt conservation ln_icediachk = ', ln_icediachk 194 WRITE(numout,*) ' threshold for conservation (gridcell) rn_icechk_cel = ', rn_icechk_cel 195 WRITE(numout,*) ' threshold for conservation (global) rn_icechk_glo = ', rn_icechk_glo 196 WRITE(numout,*) ' Output heat/mass/salt budget ln_icediahsb = ', ln_icediahsb 197 WRITE(numout,*) ' control prints for a given grid point ln_icectl = ', ln_icectl 198 WRITE(numout,*) ' chosen grid point position (iiceprt,jiceprt) = (', iiceprt,',', jiceprt,')' 198 199 ENDIF 199 200 !
Note: See TracChangeset
for help on using the changeset viewer.