Changeset 12166 for NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019
- Timestamp:
- 2019-12-11T09:53:24+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019
- Files:
-
- 4 deleted
- 51 edited
- 4 copied
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/cfgs/SHARED/field_def_nemo-oce.xml
r12154 r12166 283 283 284 284 <!-- * variable related to ice shelf forcing * --> 285 <field id="fwfisf" long_name="Ice shelf melting" unit="kg/m2/s" /> 286 <field id="fwfisf3d" long_name="Ice shelf melting" unit="kg/m2/s" grid_ref="grid_T_3D" /> 287 <field id="qlatisf" long_name="Ice shelf latent heat flux" unit="W/m2" /> 288 <field id="qlatisf3d" long_name="Ice shelf latent heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 289 <field id="qhcisf" long_name="Ice shelf heat content flux" unit="W/m2" /> 290 <field id="qhcisf3d" long_name="Ice shelf heat content flux" unit="W/m2" grid_ref="grid_T_3D" /> 291 <field id="isfgammat" long_name="transfert coefficient for isf (temperature) " unit="m/s" /> 292 <field id="isfgammas" long_name="transfert coefficient for isf (salinity) " unit="m/s" /> 293 <field id="stbl" long_name="salinity in the Losh tbl " unit="PSU" /> 294 <field id="ttbl" long_name="temperature in the Losh tbl " unit="C" /> 295 <field id="utbl" long_name="zonal current in the Losh tbl at T point " unit="m/s" /> 296 <field id="vtbl" long_name="merid current in the Losh tbl at T point " unit="m/s" /> 297 <field id="thermald" long_name="thermal driving of ice shelf melting " unit="C" /> 298 <field id="tfrz" long_name="top freezing point (used to compute melt) " unit="C" /> 299 <field id="tinsitu" long_name="top insitu temperature (used to cmpt melt) " unit="C" /> 300 <field id="ustar" long_name="ustar at T point used in ice shelf melting " unit="m/s" /> 285 <field id="isftfrz_cav" long_name="freezing point temperature at ocean/isf interface" unit="degC" /> 286 <field id="isftfrz_par" long_name="freezing point temperature in the parametrization boundary layer" unit="degC" /> 287 <field id="fwfisf_cav" long_name="Ice shelf melt rate" unit="kg/m2/s" /> 288 <field id="fwfisf_par" long_name="Ice shelf melt rate" unit="kg/m2/s" /> 289 <field id="qoceisf_cav" long_name="Ice shelf ocean heat flux" unit="W/m2" /> 290 <field id="qoceisf_par" long_name="Ice shelf ocean heat flux" unit="W/m2" /> 291 <field id="qlatisf_cav" long_name="Ice shelf latent heat flux" unit="W/m2" /> 292 <field id="qlatisf_par" long_name="Ice shelf latent heat flux" unit="W/m2" /> 293 <field id="qhcisf_cav" long_name="Ice shelf heat content flux of injected water" unit="W/m2" /> 294 <field id="qhcisf_par" long_name="Ice shelf heat content flux of injected water" unit="W/m2" /> 295 <field id="fwfisf3d_cav" long_name="Ice shelf melt rate" unit="kg/m2/s" grid_ref="grid_T_3D" /> 296 <field id="fwfisf3d_par" long_name="Ice shelf melt rate" unit="kg/m2/s" grid_ref="grid_T_3D" /> 297 <field id="qoceisf3d_cav" long_name="Ice shelf ocean heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 298 <field id="qoceisf3d_par" long_name="Ice shelf ocean heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 299 <field id="qlatisf3d_cav" long_name="Ice shelf latent heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 300 <field id="qlatisf3d_par" long_name="Ice shelf latent heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 301 <field id="qhcisf3d_cav" long_name="Ice shelf heat content flux of injected water" unit="W/m2" grid_ref="grid_T_3D" /> 302 <field id="qhcisf3d_par" long_name="Ice shelf heat content flux of injected water" unit="W/m2" grid_ref="grid_T_3D" /> 303 <field id="ttbl_cav" long_name="temperature in Losch tbl" unit="degC" /> 304 <field id="ttbl_par" long_name="temperature in the parametrisation boundary layer" unit="degC" /> 305 <field id="isfthermald_cav" long_name="thermal driving of ice shelf melting" unit="degC" /> 306 <field id="isfthermald_par" long_name="thermal driving of ice shelf melting" unit="degC" /> 307 <field id="isfgammat" long_name="Ice shelf heat-transfert velocity" unit="m/s" /> 308 <field id="isfgammas" long_name="Ice shelf salt-transfert velocity" unit="m/s" /> 309 <field id="stbl" long_name="salinity in the Losh tbl" unit="1e-3" /> 310 <field id="utbl" long_name="zonal current in the Losh tbl at T point" unit="m/s" /> 311 <field id="vtbl" long_name="merid current in the Losh tbl at T point" unit="m/s" /> 312 <field id="isfustar" long_name="ustar at T point used in ice shelf melting" unit="m/s" /> 313 <field id="qconisf" long_name="Conductive heat flux through the ice shelf" unit="W/m2" /> 301 314 302 315 <!-- *_oce variables available with ln_blk_clio or ln_blk_core --> -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/cfgs/SHARED/namelist_ice_ref
r12112 r12166 60 60 rn_icebfr = 15. ! maximum bottom stress per unit volume [N/m3] 61 61 rn_lfrelax = 1.e-5 ! relaxation time scale to reach static friction [s-1] 62 rn_tensile = 0. 2! isotropic tensile strength [0-0.5??]62 rn_tensile = 0.05 ! isotropic tensile strength [0-0.5??] 63 63 / 64 64 !------------------------------------------------------------------------------ … … 91 91 !------------------------------------------------------------------------------ 92 92 ln_rhg_EVP = .true. ! EVP rheology 93 ln_aEVP = . false.! adaptive rheology (Kimmritz et al. 2016 & 2017)93 ln_aEVP = .true. ! adaptive rheology (Kimmritz et al. 2016 & 2017) 94 94 rn_creepl = 2.0e-9 ! creep limit [1/s] 95 95 rn_ecc = 2.0 ! eccentricity of the elliptical yield curve -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/cfgs/SHARED/namelist_ref
r12154 r12166 5 5 !! namelists 2 - Surface boundary (namsbc, namsbc_flx, namsbc_blk, namsbc_cpl, 6 6 !! namsbc_sas, namtra_qsr, namsbc_rnf, 7 !! namsbc_isf, namsbc_iscpl, namsbc_apr, 7 !! namsbc_isf, namsbc_iscpl, namsbc_apr, 8 !! namisf, namsbc_apr, 8 9 !! namsbc_ssr, namsbc_wave, namberg) 9 10 !! 3 - lateral boundary (namlbc, namagrif, nambdy, nambdy_tide) … … 51 52 cn_ocerst_out = "restart" ! suffix of ocean restart name (output) 52 53 cn_ocerst_outdir = "." ! directory in which to write output ocean restarts 53 ln_iscpl = .false. ! cavity evolution forcing or coupling to ice sheet model 54 nn_istate = 0 ! output the initial state (1) or not (0) 54 nn_istate = 1 ! output the initial state (1) or not (0) 55 55 ln_rst_list = .false. ! output restarts at list of times using nn_stocklist (T) or at set frequency with nn_stock (F) 56 56 nn_stock = 0 ! used only if ln_rst_list = F: output restart freqeuncy (modulo referenced to 1) … … 72 72 !----------------------------------------------------------------------- 73 73 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 74 rn_isfhmin = 1.00 ! treshold [m] to discriminate grounding ice from floating ice75 74 ! 76 75 rn_rdt = 5400. ! time step for the dynamics and tracer … … 79 78 ln_crs = .false. ! Logical switch for coarsening module (T => fill namcrs) 80 79 ! 81 ln_meshmask = . false. ! =T create a mesh file80 ln_meshmask = .true. ! =T create a mesh file 82 81 / 83 82 !----------------------------------------------------------------------- … … 184 183 !! namsbc_rnf river runoffs (ln_rnf =T) 185 184 !! namsbc_apr Atmospheric Pressure (ln_apr_dyn =T) 186 !! namsbc_isf ice shelf melting/freezing (ln_isfcav =T : read (ln_read_cfg=T) or set or usr_def_zgr )187 !! namsbc_iscpl coupling option between land ice model and ocean (ln_isfcav =T)188 185 !! namsbc_wave external fields from wave model (ln_wave =T) 189 186 !! namberg iceberg floats (ln_icebergs=T) … … 223 220 ln_rnf = .false. ! runoffs (T => fill namsbc_rnf) 224 221 ln_apr_dyn = .false. ! Patm gradient added in ocean & ice Eqs. (T => fill namsbc_apr ) 225 ln_isf = .false. ! ice shelf (T => fill namsbc_isf & namsbc_iscpl)226 222 ln_wave = .false. ! Activate coupling with wave (T => fill namsbc_wave) 227 223 ln_cdgw = .false. ! Neutral drag coefficient read from wave model (T => ln_wave=.true. & fill namsbc_wave) … … 482 478 / 483 479 !----------------------------------------------------------------------- 484 &namsbc_isf ! Top boundary layer (ISF) (ln_isfcav =T : read (ln_read_cfg=T) 485 !----------------------------------------------------------------------- or set or usr_def_zgr ) 486 ! ! type of top boundary layer 487 nn_isf = 1 ! ice shelf melting/freezing 488 ! 1 = presence of ISF ; 2 = bg03 parametrisation 489 ! 3 = rnf file for ISF ; 4 = ISF specified freshwater flux 490 ! options 1 and 4 need ln_isfcav = .true. (domzgr) 491 ! ! nn_isf = 1 or 2 cases: 492 rn_gammat0 = 1.e-4 ! gammat coefficient used in blk formula 493 rn_gammas0 = 1.e-4 ! gammas coefficient used in blk formula 494 ! ! nn_isf = 1 or 4 cases: 495 rn_hisf_tbl = 30. ! thickness of the top boundary layer (Losh et al. 2008) 496 ! ! 0 => thickness of the tbl = thickness of the first wet cell 497 ! ! nn_isf = 1 case 498 nn_isfblk = 1 ! 1 ISOMIP like: 2 equations formulation (Hunter et al., 2006) 499 ! ! 2 ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2015) 500 nn_gammablk = 1 ! 0 = cst Gammat (= gammat/s) 501 ! ! 1 = velocity dependend Gamma (u* * gammat/s) (Jenkins et al. 2010) 502 ! ! 2 = velocity and stability dependent Gamma (Holland et al. 1999) 503 504 !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________! 505 ! ! file name ! frequency (hours) ! variable ! time interp.! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 506 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 507 !* nn_isf = 4 case 508 sn_fwfisf = 'rnfisf' , -12. ,'sowflisf' , .false. , .true. , 'yearly' , '' , '' , '' 509 !* nn_isf = 3 case 510 sn_rnfisf = 'rnfisf' , -12. ,'sofwfisf' , .false. , .true. , 'yearly' , '' , '' , '' 511 !* nn_isf = 2 and 3 cases 512 sn_depmax_isf ='rnfisf' , -12. ,'sozisfmax', .false. , .true. , 'yearly' , '' , '' , '' 513 sn_depmin_isf ='rnfisf' , -12. ,'sozisfmin', .false. , .true. , 'yearly' , '' , '' , '' 514 !* nn_isf = 2 case 515 sn_Leff_isf = 'rnfisf' , -12. ,'Leff' , .false. , .true. , 'yearly' , '' , '' , '' 516 / 517 !----------------------------------------------------------------------- 518 &namsbc_iscpl ! land ice / ocean coupling option (ln_isfcav =T : read (ln_read_cfg=T) 519 !----------------------------------------------------------------------- or set or usr_def_zgr ) 520 nn_drown = 10 ! number of iteration of the extrapolation loop (fill the new wet cells) 521 ln_hsb = .false. ! activate conservation module (conservation exact after a time of rn_fiscpl) 522 nn_fiscpl = 43800 ! (number of time step) conservation period (maybe should be fix to the coupling frequencey of restart frequency) 480 &namisf ! Top boundary layer (ISF) (default: OFF) 481 !----------------------------------------------------------------------- 482 ! 483 ! ---------------- ice shelf load ------------------------------- 484 ! 485 cn_isfload = 'uniform' ! scheme to compute ice shelf load (ln_isfcav = .true. in domain_cfg.nc) 486 rn_isfload_T = -1.9 487 rn_isfload_S = 34.4 488 ! 489 ! ---------------- ice shelf melt formulation ------------------------------- 490 ! 491 ln_isf = .false. ! activate ice shelf module 492 ln_isfdebug = .false. ! add debug print in ISF code (global min/max/sum of specific variable) 493 cn_isfdir = './' ! directory for all ice shelf input file 494 ! 495 ! ---------------- cavities opened ------------------------------- 496 ! 497 ln_isfcav_mlt = .false. ! ice shelf melting into the cavity (need ln_isfcav = .true. in domain_cfg.nc) 498 cn_isfcav_mlt = '3eq' ! ice shelf melting formulation (spe/2eq/3eq/oasis) 499 ! ! spe = fwfisf is read from a forcing field 500 ! ! 2eq = ISOMIP like: 2 equations formulation (Hunter et al., 2006 for a short description) 501 ! ! 3eq = ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2016 for a short description) 502 ! ! oasis = fwfisf is given by oasis and pattern by file sn_isfcav_fwf 503 ! ! cn_isfcav_mlt = 2eq or 3eq cases: 504 cn_gammablk = 'vel' ! scheme to compute gammat/s (spe,ad15,hj99) 505 ! ! spe = constant transfert velocity (rn_gammat0, rn_gammas0) 506 ! ! vel = velocity dependent transfert velocity (u* * gammat/s) (Asay-Davis et al. 2016 for a short description) 507 ! ! vel_stab = velocity and stability dependent transfert coeficient (Holland et al. 1999 for a complete description) 508 rn_gammat0 = 1.4e-2 ! gammat coefficient used in spe, vel and vel_stab gamma computation method 509 rn_gammas0 = 4.0e-4 ! gammas coefficient used in spe, vel and vel_stab gamma computation method 510 ! 511 rn_htbl = 30. ! thickness of the top boundary layer (Losh et al. 2008) 512 ! ! 0 => thickness of the tbl = thickness of the first wet cell 513 ! 514 !* 'spe' and 'oasis' case 515 !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________! 516 ! ! file name ! frequency (hours) ! variable ! time interp.! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 517 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 518 sn_isfcav_fwf = 'isfmlt_cav', -12. , 'fwflisf' , .false. , .true. , 'yearly' , '' , '' , '' 519 ! 520 ! ---------------- cavities parametrised ------------------------------- 521 ! 522 ln_isfpar_mlt = .false. ! ice shelf melting parametrised 523 cn_isfpar_mlt = 'spe' ! ice shelf melting parametrisation (spe/bg03/oasis) 524 ! ! spe = fwfisf is read from a forcing field 525 ! ! bg03 = melt computed using Beckmann and Goosse parametrisation 526 ! ! oasis = fwfisf is given by oasis and pattern by file sn_isfpar_fwf 527 ! 528 !* all cases 529 !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________! 530 ! ! file name ! frequency (hours) ! variable ! time interp.! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 531 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 532 sn_isfpar_zmax = 'isfmlt_par', 0 ,'sozisfmax', .false. , .true. , 'yearly' , '' , '' , '' 533 sn_isfpar_zmin = 'isfmlt_par', 0 ,'sozisfmin', .false. , .true. , 'yearly' , '' , '' , '' 534 !* 'spe' and 'oasis' case 535 sn_isfpar_fwf = 'isfmlt_par' , -12. ,'sofwfisf' , .false. , .true. , 'yearly' , '' , '' , '' 536 !* 'bg03' case 537 sn_isfpar_Leff = 'isfmlt_par', 0. ,'Leff' , .false. , .true. , 'yearly' , '' , '' , '' 538 ! 539 ! ---------------- ice sheet coupling ------------------------------- 540 ! 541 ln_isfcpl = .false. 542 nn_drown = 10 ! number of iteration of the extrapolation loop (fill the new wet cells) 543 ln_isfcpl_cons = .false. 523 544 / 524 545 !----------------------------------------------------------------------- … … 1238 1259 &nam_diatmb ! Top Middle Bottom Output (default: OFF) 1239 1260 !----------------------------------------------------------------------- 1240 ln_diatmb = . false. ! Choose Top Middle and Bottom output or not1261 ln_diatmb = .true. ! Choose Top Middle and Bottom output or not 1241 1262 / 1242 1263 !----------------------------------------------------------------------- -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/cfgs/ref_cfgs.txt
r12154 r12166 12 12 ORCA2_ICE OCE ICE 13 13 SPITZ12 OCE ICE 14 eORCA025_ICE OCE ICE 15 eORCA025_ICE_ABL OCE ICE ABL 16 eORCA025_SAS_ICE_ABL OCE SAS ICE ABL 14 WED025 OCE ICE -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/BDY/bdyvol.F90
r11536 r12166 14 14 USE bdy_oce ! ocean open boundary conditions 15 15 USE sbc_oce ! ocean surface boundary conditions 16 USE isf_oce, ONLY : fwfisf_cav, fwfisf_par ! ice shelf 16 17 USE dom_oce ! ocean space and time domain 17 18 USE phycst ! physical constants 18 USE sbcisf ! ice shelf19 19 ! 20 20 USE in_out_manager ! I/O manager … … 77 77 ! Calculate the cumulate surface Flux z_cflxemp (m3/s) over all the domain 78 78 ! ----------------------------------------------------------------------- 79 IF ( kc == 1 ) z_cflxemp = glob_sum( 'bdyvol', ( emp(:,:) - rnf(:,:) + fwfisf (:,:) ) * bdytmask(:,:) * e1e2t(:,:) ) / rau079 IF ( kc == 1 ) z_cflxemp = glob_sum( 'bdyvol', ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * bdytmask(:,:) * e1e2t(:,:) ) / rau0 80 80 81 81 ! Compute bdy surface each cycle if non linear free surface -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DIA/diahsb.F90
r11536 r12166 17 17 USE phycst ! physical constants 18 18 USE sbc_oce ! surface thermohaline fluxes 19 USE isf_oce ! ice shelf fluxes 19 20 USE sbcrnf ! river runoff 20 USE sbcisf ! ice shelves21 21 USE domvvl ! vertical scale factors 22 22 USE traqsr ! penetrative solar radiation … … 48 48 REAL(wp), DIMENSION(:,:) , ALLOCATABLE :: ssh_hc_loc_ini, ssh_sc_loc_ini ! 49 49 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: hc_loc_ini, sc_loc_ini, e3t_ini ! 50 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: tmask_ini 50 51 51 52 !! * Substitutions … … 91 92 ! 1 - Trends due to forcing ! 92 93 ! ------------------------- ! 93 z_frc_trd_v = r1_rau0 * glob_sum( 'diahsb', - ( emp(:,:) - rnf(:,:) + fwfisf (:,:) ) * surf(:,:) ) ! volume fluxes94 z_frc_trd_v = r1_rau0 * glob_sum( 'diahsb', - ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * surf(:,:) ) ! volume fluxes 94 95 z_frc_trd_t = glob_sum( 'diahsb', sbc_tsc(:,:,jp_tem) * surf(:,:) ) ! heat fluxes 95 96 z_frc_trd_s = glob_sum( 'diahsb', sbc_tsc(:,:,jp_sal) * surf(:,:) ) ! salt fluxes … … 98 99 IF( ln_rnf_sal) z_frc_trd_s = z_frc_trd_s + glob_sum( 'diahsb', rnf_tsc(:,:,jp_sal) * surf(:,:) ) 99 100 ! ! Add ice shelf heat & salt input 100 IF( ln_isf ) z_frc_trd_t = z_frc_trd_t + glob_sum( 'diahsb', risf_tsc(:,:,jp_tem) * surf(:,:) ) 101 IF( ln_isf ) z_frc_trd_t = z_frc_trd_t & 102 & + glob_sum( 'diahsb', ( risf_cav_tsc(:,:,jp_tem) + risf_par_tsc(:,:,jp_tem) ) * surf(:,:) ) 101 103 ! ! Add penetrative solar radiation 102 104 IF( ln_traqsr ) z_frc_trd_t = z_frc_trd_t + r1_rau0_rcp * glob_sum( 'diahsb', qsr (:,:) * surf(:,:) ) … … 155 157 ! 156 158 DO jk = 1, jpkm1 ! volume variation (calculated with scale factors) 157 zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk) - surf_ini(:,:)*e3t_ini(:,:,jk) ) * tmask(:,:,jk)159 zwrk(:,:,jk) = surf(:,:)*e3t_n(:,:,jk)*tmask(:,:,jk) - surf_ini(:,:)*e3t_ini(:,:,jk)*tmask_ini(:,:,jk) 158 160 END DO 159 zdiff_v2 = glob_sum_full( 'diahsb', zwrk(:,:,:) ) 161 zdiff_v2 = glob_sum_full( 'diahsb', zwrk(:,:,:) ) ! glob_sum_full needed as tmask and tmask_ini could be different 160 162 DO jk = 1, jpkm1 ! heat content variation 161 zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk)*tsn(:,:,jk,jp_tem) - surf_ini(:,:)*hc_loc_ini(:,:,jk) ) * tmask(:,:,jk)163 zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk)*tsn(:,:,jk,jp_tem) - surf_ini(:,:)*hc_loc_ini(:,:,jk) ) 162 164 END DO 163 165 zdiff_hc = glob_sum_full( 'diahsb', zwrk(:,:,:) ) 164 166 DO jk = 1, jpkm1 ! salt content variation 165 zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk)*tsn(:,:,jk,jp_sal) - surf_ini(:,:)*sc_loc_ini(:,:,jk) ) * tmask(:,:,jk)167 zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk)*tsn(:,:,jk,jp_sal) - surf_ini(:,:)*sc_loc_ini(:,:,jk) ) 166 168 END DO 167 169 zdiff_sc = glob_sum_full( 'diahsb', zwrk(:,:,:) ) … … 187 189 zwrk(:,:,jk) = surf(:,:) * e3t_n(:,:,jk) * tmask(:,:,jk) 188 190 END DO 189 zvol_tot = glob_sum _full( 'diahsb', zwrk(:,:,:) )191 zvol_tot = glob_sum( 'diahsb', zwrk(:,:,:) ) 190 192 191 193 !!gm to be added ? … … 270 272 CALL iom_get( numror, jpdom_autoglo, 'ssh_ini' , ssh_ini , ldxios = lrxios ) 271 273 CALL iom_get( numror, jpdom_autoglo, 'e3t_ini' , e3t_ini , ldxios = lrxios ) 274 CALL iom_get( numror, jpdom_autoglo, 'tmask_ini' , tmask_ini , ldxios = lrxios ) 272 275 CALL iom_get( numror, jpdom_autoglo, 'hc_loc_ini', hc_loc_ini, ldxios = lrxios ) 273 276 CALL iom_get( numror, jpdom_autoglo, 'sc_loc_ini', sc_loc_ini, ldxios = lrxios ) … … 285 288 ! if ice sheet/oceqn coupling, need to mask ini variables here (mask could change at the next NEMO instance). 286 289 e3t_ini (:,:,jk) = e3t_n(:,:,jk) * tmask(:,:,jk) ! initial vertical scale factors 290 tmask_ini (:,:,jk) = tmask(:,:,jk) ! initial mask 287 291 hc_loc_ini(:,:,jk) = tsn(:,:,jk,jp_tem) * e3t_n(:,:,jk) * tmask(:,:,jk) ! initial heat content 288 292 sc_loc_ini(:,:,jk) = tsn(:,:,jk,jp_sal) * e3t_n(:,:,jk) * tmask(:,:,jk) ! initial salt content … … 325 329 CALL iom_rstput( kt, nitrst, numrow, 'ssh_ini' , ssh_ini , ldxios = lwxios ) 326 330 CALL iom_rstput( kt, nitrst, numrow, 'e3t_ini' , e3t_ini , ldxios = lwxios ) 331 CALL iom_rstput( kt, nitrst, numrow, 'tmask_ini' , tmask_ini , ldxios = lwxios ) 327 332 CALL iom_rstput( kt, nitrst, numrow, 'hc_loc_ini', hc_loc_ini, ldxios = lwxios ) 328 333 CALL iom_rstput( kt, nitrst, numrow, 'sc_loc_ini', sc_loc_ini, ldxios = lwxios ) … … 396 401 ! ------------------- ! 397 402 ALLOCATE( hc_loc_ini(jpi,jpj,jpk), sc_loc_ini(jpi,jpj,jpk), surf_ini(jpi,jpj), & 398 & e3t_ini(jpi,jpj,jpk), surf(jpi,jpj), ssh_ini(jpi,jpj), STAT=ierror )403 & e3t_ini(jpi,jpj,jpk), surf(jpi,jpj), ssh_ini(jpi,jpj), tmask_ini(jpi,jpj,jpk),STAT=ierror ) 399 404 IF( ierror > 0 ) THEN 400 405 CALL ctl_stop( 'dia_hsb_init: unable to allocate hc_loc_ini' ) ; RETURN -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DIA/diawri.F90
r12154 r12166 27 27 USE oce ! ocean dynamics and tracers 28 28 USE abl ! abl variables in case ln_abl = .true. 29 USE isf_oce 30 USE isfcpl 29 31 USE dom_oce ! ocean space and time domain 30 32 USE phycst ! physical constants … … 957 959 CHARACTER (len=* ), INTENT( in ) :: cdfile_name ! name of the file created 958 960 !! 959 INTEGER :: inum 961 INTEGER :: inum, jk 960 962 !!---------------------------------------------------------------------- 961 963 ! … … 981 983 CALL iom_rstput( 0, 0, inum, 'vovecrtz', wn ) ! now k-velocity 982 984 ENDIF 985 CALL iom_rstput( 0, 0, inum, 'risfdep', risfdep ) ! now k-velocity 986 CALL iom_rstput( 0, 0, inum, 'ht_n' , ht_n ) ! now k-velocity 987 988 IF ( ln_isf ) THEN 989 IF (ln_isfcav_mlt) THEN 990 CALL iom_rstput( 0, 0, inum, 'fwfisf_cav', fwfisf_cav ) ! now k-velocity 991 CALL iom_rstput( 0, 0, inum, 'rhisf_cav_tbl', rhisf_tbl_cav ) ! now k-velocity 992 CALL iom_rstput( 0, 0, inum, 'rfrac_cav_tbl', rfrac_tbl_cav ) ! now k-velocity 993 CALL iom_rstput( 0, 0, inum, 'misfkb_cav', REAL(misfkb_cav,8) ) ! now k-velocity 994 CALL iom_rstput( 0, 0, inum, 'misfkt_cav', REAL(misfkt_cav,8) ) ! now k-velocity 995 CALL iom_rstput( 0, 0, inum, 'mskisf_cav', REAL(mskisf_cav,8), ktype = jp_i1 ) 996 END IF 997 IF (ln_isfpar_mlt) THEN 998 CALL iom_rstput( 0, 0, inum, 'isfmsk_par', REAL(mskisf_par,8) ) ! now k-velocity 999 CALL iom_rstput( 0, 0, inum, 'fwfisf_par', fwfisf_par ) ! now k-velocity 1000 CALL iom_rstput( 0, 0, inum, 'rhisf_par_tbl', rhisf_tbl_par ) ! now k-velocity 1001 CALL iom_rstput( 0, 0, inum, 'rfrac_par_tbl', rfrac_tbl_par ) ! now k-velocity 1002 CALL iom_rstput( 0, 0, inum, 'misfkb_par', REAL(misfkb_par,8) ) ! now k-velocity 1003 CALL iom_rstput( 0, 0, inum, 'misfkt_par', REAL(misfkt_par,8) ) ! now k-velocity 1004 CALL iom_rstput( 0, 0, inum, 'mskisf_par', REAL(mskisf_par,8), ktype = jp_i1 ) 1005 END IF 1006 END IF 1007 983 1008 IF( ALLOCATED(ahtu) ) THEN 984 1009 CALL iom_rstput( 0, 0, inum, 'ahtu', ahtu ) ! aht at u-point -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/dom_oce.F90
r10068 r12166 32 32 LOGICAL , PUBLIC :: ln_linssh !: =T linear free surface ==>> model level are fixed in time 33 33 LOGICAL , PUBLIC :: ln_meshmask !: =T create a mesh-mask file (mesh_mask.nc) 34 REAL(wp), PUBLIC :: rn_isfhmin !: threshold to discriminate grounded ice to floating ice35 34 REAL(wp), PUBLIC :: rn_rdt !: time step for the dynamics and tracer 36 35 REAL(wp), PUBLIC :: rn_atfp !: asselin time filter parameter 37 36 INTEGER , PUBLIC :: nn_euler !: =0 start with forward time step or not (=1) 38 LOGICAL , PUBLIC :: ln_iscpl !: coupling with ice sheet39 37 LOGICAL , PUBLIC :: ln_crs !: Apply grid coarsening to dynamical model output or online passive tracers 40 38 … … 158 156 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: e3t_1d , e3w_1d !: reference vertical scale factors at T- and W-pts (m) 159 157 158 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: risfdep, bathy 160 159 161 160 !!---------------------------------------------------------------------- … … 170 169 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tmask_h !: internal domain T-point mask (Figure 8.5 NEMO book) 171 170 172 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: misfdep !: top first ocean level (ISF) 173 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: mikt, miku, mikv, mikf !: top first wet T-, U-, V-, F-level (ISF) 174 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: risfdep !: Iceshelf draft (ISF) 171 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: mikt, miku, mikv, mikf !: top first wet T-, U-, V-, F-level (ISF) 175 172 176 173 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ssmask, ssumask, ssvmask !: surface mask at T-,U-, V- and F-pts … … 274 271 & hu_a(jpi,jpj) , hv_a(jpi,jpj) , r1_hu_a(jpi,jpj) , r1_hv_a(jpi,jpj) , STAT=ierr(6) ) 275 272 ! 276 ! 277 ALLOCATE( gdept_1d(jpk) , gdepw_1d(jpk) , e3t_1d(jpk) , e3w_1d(jpk) , STAT=ierr(7) ) 273 ALLOCATE( risfdep(jpi,jpj) , bathy(jpi,jpj) , STAT=ierr(7) ) 274 ! 275 ALLOCATE( gdept_1d(jpk) , gdepw_1d(jpk) , e3t_1d(jpk) , e3w_1d(jpk) , STAT=ierr(8) ) 278 276 ! 279 277 ALLOCATE( tmask_i(jpi,jpj) , tmask_h(jpi,jpj) , & … … 281 279 & mbkt (jpi,jpj) , mbku (jpi,jpj) , mbkv (jpi,jpj) , STAT=ierr(9) ) 282 280 ! 283 ALLOCATE( misfdep(jpi,jpj) , mikt(jpi,jpj) , miku(jpi,jpj) , & 284 & risfdep(jpi,jpj) , mikv(jpi,jpj) , mikf(jpi,jpj) , STAT=ierr(10) ) 281 ALLOCATE( mikt(jpi,jpj), miku(jpi,jpj), mikv(jpi,jpj), mikf(jpi,jpj), STAT=ierr(10) ) 285 282 ! 286 283 ALLOCATE( tmask(jpi,jpj,jpk) , umask(jpi,jpj,jpk) , & -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/domain.F90
r11536 r12166 140 140 ! Read in masks to define closed seas and lakes 141 141 ! 142 DO jj = 1, jpj ! depth of the iceshelves143 DO ji = 1, jpi144 ik = mikt(ji,jj)145 risfdep(ji,jj) = gdepw_0(ji,jj,ik)146 END DO147 END DO148 !149 142 ht_0(:,:) = 0._wp ! Reference ocean thickness 150 143 hu_0(:,:) = 0._wp … … 192 185 IF( lk_c1d ) CALL cor_c1d ! 1D configuration: Coriolis set at T-point 193 186 ! 194 IF( ln_meshmask .AND. .NOT.ln_iscpl ) CALL dom_wri ! Create a domain file 195 IF( ln_meshmask .AND. ln_iscpl .AND. .NOT.ln_rstart ) CALL dom_wri ! Create a domain file 196 IF( .NOT.ln_rstart ) CALL dom_ctl ! Domain control 197 ! 198 IF( ln_write_cfg ) CALL cfg_write ! create the configuration file 187 IF( ln_meshmask ) CALL dom_wri ! Create a domain file 188 IF( .NOT.ln_rstart ) CALL dom_ctl ! Domain control 189 ! 190 IF( ln_write_cfg ) CALL cfg_write ! create the configuration file 199 191 ! 200 192 IF(lwp) THEN … … 292 284 & nn_it000, nn_itend , nn_date0 , nn_time0 , nn_leapy , nn_istate , & 293 285 & nn_stock, nn_write , ln_mskland , ln_clobber , nn_chunksz, nn_euler , & 294 & ln_cfmeta, ln_ iscpl, ln_xios_read, nn_wxios295 NAMELIST/namdom/ ln_linssh, rn_ isfhmin, rn_rdt, rn_atfp, ln_crs, ln_meshmask286 & ln_cfmeta, ln_xios_read, nn_wxios 287 NAMELIST/namdom/ ln_linssh, rn_rdt, rn_atfp, ln_crs, ln_meshmask 296 288 #if defined key_netcdf4 297 289 NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip … … 343 335 WRITE(numout,*) ' overwrite an existing file ln_clobber = ', ln_clobber 344 336 WRITE(numout,*) ' NetCDF chunksize (bytes) nn_chunksz = ', nn_chunksz 345 WRITE(numout,*) ' IS coupling at the restart step ln_iscpl = ', ln_iscpl346 337 IF( TRIM(Agrif_CFixed()) == '0' ) THEN 347 338 WRITE(numout,*) ' READ restart for a single file using XIOS ln_xios_read =', ln_xios_read … … 417 408 WRITE(numout,*) ' linear free surface (=T) ln_linssh = ', ln_linssh 418 409 WRITE(numout,*) ' create mesh/mask file ln_meshmask = ', ln_meshmask 419 WRITE(numout,*) ' treshold to open the isf cavity rn_isfhmin = ', rn_isfhmin, ' [m]'420 410 WRITE(numout,*) ' ocean time step rn_rdt = ', rn_rdt 421 411 WRITE(numout,*) ' asselin time filter parameter rn_atfp = ', rn_atfp -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/domvvl.F90
r11536 r12166 36 36 37 37 PUBLIC dom_vvl_init ! called by domain.F90 38 PUBLIC dom_vvl_zgr ! called by isfcpl.F90 38 39 PUBLIC dom_vvl_sf_nxt ! called by step.F90 39 40 PUBLIC dom_vvl_sf_swp ! called by step.F90 … … 115 116 !! Reference : Leclair, M., and G. Madec, 2011, Ocean Modelling. 116 117 !!---------------------------------------------------------------------- 118 ! 119 IF(lwp) WRITE(numout,*) 120 IF(lwp) WRITE(numout,*) 'dom_vvl_init : Variable volume activated' 121 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 122 ! 123 CALL dom_vvl_ctl ! choose vertical coordinate (z_star, z_tilde or layer) 124 ! 125 ! ! Allocate module arrays 126 IF( dom_vvl_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'dom_vvl_init : unable to allocate arrays' ) 127 ! 128 ! ! Read or initialize e3t_(b/n), tilde_e3t_(b/n) and hdiv_lf 129 CALL dom_vvl_rst( nit000, 'READ' ) 130 e3t_a(:,:,jpk) = e3t_0(:,:,jpk) ! last level always inside the sea floor set one for all 131 ! 132 CALL dom_vvl_zgr() ! interpolation scale factor, depth and water column 133 ! 134 END SUBROUTINE dom_vvl_init 135 ! 136 SUBROUTINE dom_vvl_zgr() 137 !!---------------------------------------------------------------------- 138 !! *** ROUTINE dom_vvl_init *** 139 !! 140 !! ** Purpose : Interpolation of all scale factors, 141 !! depths and water column heights 142 !! 143 !! ** Method : - interpolate scale factors 144 !! 145 !! ** Action : - e3t_(n/b) and tilde_e3t_(n/b) 146 !! - Regrid: e3(u/v)_n 147 !! e3(u/v)_b 148 !! e3w_n 149 !! e3(u/v)w_b 150 !! e3(u/v)w_n 151 !! gdept_n, gdepw_n and gde3w_n 152 !! - h(t/u/v)_0 153 !! - frq_rst_e3t and frq_rst_hdv 154 !! 155 !! Reference : Leclair, M., and G. Madec, 2011, Ocean Modelling. 156 !!---------------------------------------------------------------------- 117 157 INTEGER :: ji, jj, jk 118 158 INTEGER :: ii0, ii1, ij0, ij1 119 159 REAL(wp):: zcoef 120 160 !!---------------------------------------------------------------------- 121 !122 IF(lwp) WRITE(numout,*)123 IF(lwp) WRITE(numout,*) 'dom_vvl_init : Variable volume activated'124 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~'125 !126 CALL dom_vvl_ctl ! choose vertical coordinate (z_star, z_tilde or layer)127 !128 ! ! Allocate module arrays129 IF( dom_vvl_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'dom_vvl_init : unable to allocate arrays' )130 !131 ! ! Read or initialize e3t_(b/n), tilde_e3t_(b/n) and hdiv_lf132 CALL dom_vvl_rst( nit000, 'READ' )133 e3t_a(:,:,jpk) = e3t_0(:,:,jpk) ! last level always inside the sea floor set one for all134 161 ! 135 162 ! !== Set of all other vertical scale factors ==! (now and before) … … 263 290 ENDIF 264 291 ! 265 END SUBROUTINE dom_vvl_init 266 292 END SUBROUTINE dom_vvl_zgr 267 293 268 294 SUBROUTINE dom_vvl_sf_nxt( kt, kcall ) … … 813 839 id4 = iom_varid( numror, 'tilde_e3t_n', ldstop = .FALSE. ) 814 840 id5 = iom_varid( numror, 'hdiv_lf', ldstop = .FALSE. ) 841 ! 815 842 ! ! --------- ! 816 843 ! ! all cases ! 817 844 ! ! --------- ! 845 ! 818 846 IF( MIN( id1, id2 ) > 0 ) THEN ! all required arrays exist 819 847 CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:), ldxios = lrxios ) … … 1033 1061 ! 1034 1062 IF( ioptio /= 1 ) CALL ctl_stop( 'Choose ONE vertical coordinate in namelist nam_vvl' ) 1035 IF( .NOT. ln_vvl_zstar .AND. ln_isf ) CALL ctl_stop( 'Only vvl_zstar has been tested with ice shelf cavity' )1036 1063 ! 1037 1064 IF(lwp) THEN ! Print the choice -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/domwri.F90
r11532 r12166 16 16 !! dom_stiff : diagnose maximum grid stiffness/hydrostatic consistency (s-coordinate) 17 17 !!---------------------------------------------------------------------- 18 ! 18 19 USE dom_oce ! ocean space and time domain 19 20 USE phycst , ONLY : rsmall … … 155 156 156 157 ! note that mbkt is set to 1 over land ==> use surface tmask 157 zprt(:,:) = ssmask(:,:) *REAL( mbkt(:,:) , wp )158 zprt(:,:) = REAL( mbkt(:,:) , wp ) 158 159 CALL iom_rstput( 0, 0, inum, 'mbathy', zprt, ktype = jp_i4 ) ! ! nb of ocean T-points 159 zprt(:,:) = ssmask(:,:) *REAL( mikt(:,:) , wp )160 zprt(:,:) = REAL( mikt(:,:) , wp ) 160 161 CALL iom_rstput( 0, 0, inum, 'misf', zprt, ktype = jp_i4 ) ! ! nb of ocean T-points 161 zprt(:,:) = ssmask(:,:) * REAL( risfdep(:,:) , wp )162 CALL iom_rstput( 0, 0, inum, 'isfdraft', zprt, ktype = jp_r8 ) ! ! nb of ocean T-points163 162 ! ! vertical mesh 164 163 CALL iom_rstput( 0, 0, inum, 'e3t_1d', e3t_1d, ktype = jp_r8 ) ! ! scale factors -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/domzgr.F90
r10425 r12166 71 71 INTEGER, DIMENSION(:,:), INTENT(out) :: k_top, k_bot ! ocean first and last level indices 72 72 ! 73 INTEGER :: jk ! dummy loop index 73 INTEGER :: ji,jj,jk ! dummy loop index 74 INTEGER :: ikt, ikb ! top/bot index 74 75 INTEGER :: ioptio, ibat, ios ! local integer 75 76 REAL(wp) :: zrefdep ! depth of the reference level (~10m) … … 138 139 ! ! top/bottom ocean level indices for t-, u- and v-points (f-point also for top) 139 140 CALL zgr_top_bot( k_top, k_bot ) ! with a minimum value set to 1 140 141 141 ! 142 ! ! ice shelf draft and bathymetry 143 DO jj = 1,jpj 144 DO ji = 1,jpi 145 ikt = mikt(ji,jj) 146 ikb = mbkt(ji,jj) 147 bathy (ji,jj) = gdepw_0(ji,jj,ikb+1) 148 risfdep(ji,jj) = gdepw_0(ji,jj,ikt ) 149 END DO 150 END DO 151 ! 142 152 ! ! deepest/shallowest W level Above/Below ~10m 143 153 !!gm BUG in s-coordinate this does not work! -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/istate.F90
r10499 r12166 28 28 USE dtauvd ! data: U & V current (dta_uvd routine) 29 29 USE domvvl ! varying vertical mesh 30 USE iscplrst ! ice sheet coupling31 30 USE wet_dry ! wetting and drying (needed for wad_istate) 32 31 USE usrdef_istate ! User defined initial state … … 86 85 ! ! ------------------- 87 86 CALL rst_read ! Read the restart file 88 IF (ln_iscpl) CALL iscpl_stp ! extrapolate restart to wet and dry89 87 CALL day_init ! model calendar (using both namelist and restart infos) 90 88 ! -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/divhor.F90
r10425 r12166 20 20 USE oce ! ocean dynamics and tracers 21 21 USE dom_oce ! ocean space and time domain 22 USE sbc_oce, ONLY : ln_rnf, ln_isf ! surface boundary condition: ocean 23 USE sbcrnf ! river runoff 24 USE sbcisf ! ice shelf 25 USE iscplhsb ! ice sheet / ocean coupling 26 USE iscplini ! ice sheet / ocean coupling 22 USE sbc_oce, ONLY : ln_rnf ! river runoff 23 USE sbcrnf , ONLY : sbc_rnf_div ! river runoff 24 USE isf_oce, ONLY : ln_isf ! ice shelf 25 USE isfhdiv, ONLY : isf_hdiv ! ice shelf 27 26 #if defined key_asminc 28 27 USE asminc ! Assimilation increment … … 64 63 INTEGER :: ji, jj, jk ! dummy loop indices 65 64 REAL(wp) :: zraur, zdep ! local scalars 65 REAL(wp), DIMENSION(jpi,jpj) :: ztmp 66 66 !!---------------------------------------------------------------------- 67 67 ! … … 85 85 END DO 86 86 END DO 87 ! 87 88 #if defined key_agrif 88 89 IF( .NOT. Agrif_Root() ) THEN … … 94 95 #endif 95 96 ! 96 IF( ln_rnf ) CALL sbc_rnf_div( hdivn ) !== runoffs==! (update hdivn field)97 IF( ln_rnf ) CALL sbc_rnf_div( hdivn ) !== runoffs ==! (update hdivn field) 97 98 ! 98 99 #if defined key_asminc … … 100 101 ! 101 102 #endif 102 IF( ln_isf ) CALL sbc_isf_div( hdivn ) !== ice shelf ==! (update hdivn field)103 103 ! 104 IF( ln_is cpl .AND. ln_hsb ) CALL iscpl_div( hdivn ) !== ice sheet==! (update hdivn field)104 IF( ln_isf ) CALL isf_hdiv( kt, hdivn ) !== ice shelf ==! (update hdivn field) 105 105 ! 106 106 CALL lbc_lnk( 'divhor', hdivn, 'T', 1. ) ! (no sign change) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynhpg.F90
r11536 r12166 31 31 !!---------------------------------------------------------------------- 32 32 USE oce ! ocean dynamics and tracers 33 USE isf_oce , ONLY : risfload ! ice shelf (risfload variable) 34 USE isfload , ONLY : isf_load ! ice shelf (isf_load routine ) 33 35 USE sbc_oce ! surface variable (only for the flag with ice shelf) 34 36 USE dom_oce ! ocean space and time domain … … 213 215 ENDIF 214 216 ! 215 IF ( .NOT. ln_isfcav ) THEN !--- no ice shelf load216 riceload(:,:) = 0._wp217 !218 ELSE !--- set an ice shelf load219 !220 IF(lwp) WRITE(numout,*)221 IF(lwp) WRITE(numout,*) ' ice shelf case: set the ice-shelf load'222 ALLOCATE( zts_top(jpi,jpj,jpts) , zrhd(jpi,jpj,jpk) , zrhdtop_isf(jpi,jpj) , ziceload(jpi,jpj) )223 !224 znad = 1._wp !- To use density and not density anomaly225 !226 ! !- assume water displaced by the ice shelf is at T=-1.9 and S=34.4 (rude)227 zts_top(:,:,jp_tem) = -1.9_wp ; zts_top(:,:,jp_sal) = 34.4_wp228 !229 DO jk = 1, jpk !- compute density of the water displaced by the ice shelf230 CALL eos( zts_top(:,:,:), gdept_n(:,:,jk), zrhd(:,:,jk) )231 END DO232 !233 ! !- compute rhd at the ice/oce interface (ice shelf side)234 CALL eos( zts_top , risfdep, zrhdtop_isf )235 !236 ! !- Surface value + ice shelf gradient237 ziceload = 0._wp ! compute pressure due to ice shelf load238 DO jj = 1, jpj ! (used to compute hpgi/j for all the level from 1 to miku/v)239 DO ji = 1, jpi ! divided by 2 later240 ikt = mikt(ji,jj)241 ziceload(ji,jj) = ziceload(ji,jj) + (znad + zrhd(ji,jj,1) ) * e3w_n(ji,jj,1) * (1._wp - tmask(ji,jj,1))242 DO jk = 2, ikt-1243 ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhd(ji,jj,jk-1) + zrhd(ji,jj,jk)) * e3w_n(ji,jj,jk) &244 & * (1._wp - tmask(ji,jj,jk))245 END DO246 IF (ikt >= 2) ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhdtop_isf(ji,jj) + zrhd(ji,jj,ikt-1)) &247 & * ( risfdep(ji,jj) - gdept_n(ji,jj,ikt-1) )248 END DO249 END DO250 riceload(:,:) = ziceload(:,:) ! need to be saved for diaar5251 !252 DEALLOCATE( zts_top , zrhd , zrhdtop_isf , ziceload )253 ENDIF254 !255 217 END SUBROUTINE dyn_hpg_init 256 257 218 258 219 SUBROUTINE hpg_zco( kt ) … … 572 533 !! ua = ua - 1/e1u * zhpi 573 534 !! va = va - 1/e2v * zhpj 574 !! iceload is added and partial cell case are added to the top and bottom535 !! iceload is added 575 536 !! 576 537 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend … … 617 578 & - 0.5_wp * e3w_n(ji,jj,ikt) & 618 579 & * ( 2._wp * znad + rhd(ji,jj,ikt) + zrhdtop_oce(ji,jj) ) & 619 & + ( ri ceload(ji+1,jj) - riceload(ji,jj)) )580 & + ( risfload(ji+1,jj) - risfload(ji,jj)) ) 620 581 zhpj(ji,jj,1) = zcoef0 / e2v(ji,jj) * ( 0.5_wp * e3w_n(ji,jj+1,iktp1j) & 621 582 & * ( 2._wp * znad + rhd(ji,jj+1,iktp1j) + zrhdtop_oce(ji,jj+1) ) & 622 583 & - 0.5_wp * e3w_n(ji,jj,ikt) & 623 584 & * ( 2._wp * znad + rhd(ji,jj,ikt) + zrhdtop_oce(ji,jj) ) & 624 & + ( ri ceload(ji,jj+1) - riceload(ji,jj)) )585 & + ( risfload(ji,jj+1) - risfload(ji,jj)) ) 625 586 ! s-coordinate pressure gradient correction (=0 if z coordinate) 626 587 zuap = -zcoef0 * ( rhd (ji+1,jj,1) + rhd (ji,jj,1) + 2._wp * znad ) & -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynnxt.F90
r12026 r12166 29 29 USE sbc_oce ! Surface boundary condition: ocean fields 30 30 USE sbcrnf ! river runoffs 31 USE sbcisf ! ice shelf32 31 USE phycst ! physical constants 33 32 USE dynadv ! dynamics: vector invariant versus flux form … … 35 34 USE domvvl ! variable volume 36 35 USE bdy_oce , ONLY: ln_bdy 36 USE isf_oce , ONLY: ln_isf ! ice shelf 37 37 USE bdydta ! ocean open boundary conditions 38 38 USE bdydyn ! ocean open boundary conditions … … 41 41 USE trddyn ! trend manager: dynamics 42 42 USE trdken ! trend manager: kinetic energy 43 USE isfdynnxt , ONLY: isf_dynnxt ! ice shelf volume filter correction subroutine 43 44 ! 44 45 USE in_out_manager ! I/O manager … … 243 244 ENDIF 244 245 END IF 245 246 IF ( ln_isf ) THEN ! if ice shelf melting 247 DO jk = 1, jpkm1 ! Deal with isf separetely, as can be through depth too 248 DO jj = 1, jpj 249 DO ji = 1, jpi 250 IF( misfkt(ji,jj) <=jk .and. jk < misfkb(ji,jj) ) THEN 251 e3t_b(ji,jj,jk) = e3t_b(ji,jj,jk) - zcoef * ( fwfisf_b(ji,jj) - fwfisf(ji,jj) ) & 252 & * ( e3t_n(ji,jj,jk) * r1_hisf_tbl(ji,jj) ) * tmask(ji,jj,jk) 253 ELSEIF ( jk==misfkb(ji,jj) ) THEN 254 e3t_b(ji,jj,jk) = e3t_b(ji,jj,jk) - zcoef * ( fwfisf_b(ji,jj) - fwfisf(ji,jj) ) & 255 & * ( e3t_n(ji,jj,jk) * r1_hisf_tbl(ji,jj) ) * ralpha(ji,jj) * tmask(ji,jj,jk) 256 ENDIF 257 END DO 258 END DO 259 END DO 260 END IF 246 ! 247 ! ice shelf melting (deal separatly as it can be in depth) 248 ! PM: we could probably define a generic subroutine to do the in depth correction 249 ! to manage rnf, isf and possibly in the futur icb, tide water glacier (...) 250 ! ...(kt, coef, ktop, kbot, hz, fwf_b, fwf) 251 IF ( ln_isf ) CALL isf_dynnxt( kt, atfp * rdt ) 261 252 ! 262 253 IF( ln_dynadv_vec ) THEN ! Asselin filter applied on velocity -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynspg_ts.F90
r12072 r12166 31 31 USE dom_oce ! ocean space and time domain 32 32 USE sbc_oce ! surface boundary condition: ocean 33 USE isf_oce ! ice shelf variable (fwfisf) 33 34 USE zdf_oce ! vertical physics: variables 34 35 USE zdfdrg ! vertical physics: top/bottom drag coef. 35 USE sbcisf ! ice shelf variable (fwfisf)36 36 USE sbcapr ! surface boundary condition: atmospheric pressure 37 37 USE dynadv , ONLY: ln_dynadv_vec … … 335 335 ! ! --------------------------------------------------- ! 336 336 IF (ln_bt_fw) THEN ! FORWARD integration: use kt+1/2 fluxes (NOW+1/2) 337 zssh_frc(:,:) = r1_rau0 * ( emp(:,:) - rnf(:,:) + fwfisf(:,:))337 zssh_frc(:,:) = r1_rau0 * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) 338 338 ELSE ! CENTRED integration: use kt-1/2 + kt+1/2 fluxes (NOW) 339 339 zztmp = r1_rau0 * r1_2 340 zssh_frc(:,:) = zztmp * ( emp(:,:) + emp_b(:,:) - rnf(:,:) - rnf_b(:,:) + fwfisf(:,:) + fwfisf_b(:,:) ) 340 zssh_frc(:,:) = zztmp * ( emp(:,:) + emp_b(:,:) & 341 & - rnf(:,:) - rnf_b(:,:) & 342 & + fwfisf_cav(:,:) + fwfisf_cav_b(:,:) & 343 & + fwfisf_par(:,:) + fwfisf_par_b(:,:) ) 341 344 ENDIF 342 345 ! != Add Stokes drift divergence =! (if exist) … … 344 347 zssh_frc(:,:) = zssh_frc(:,:) + div_sd(:,:) 345 348 ENDIF 349 ! 350 ! ! ice sheet coupling 351 IF ( ln_isf .AND. ln_isfcpl ) THEN 352 ! 353 ! ice sheet coupling 354 IF( ln_rstart .AND. kt == nit000 ) THEN 355 zssh_frc(:,:) = zssh_frc(:,:) + risfcpl_ssh(:,:) 356 END IF 357 ! 358 ! conservation option 359 IF( ln_isfcpl_cons ) THEN 360 zssh_frc(:,:) = zssh_frc(:,:) + risfcpl_cons_ssh(:,:) 361 END IF 362 ! 363 END IF 346 364 ! 347 365 #if defined key_asminc -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynzdf.F90
r11281 r12166 149 149 ze3va = ( 1._wp - r_vvl ) * e3v_n(ji,jj,ikv) + r_vvl * e3v_a(ji,jj,ikv) 150 150 ua(ji,jj,iku) = ua(ji,jj,iku) + r2dt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) * ua_b(ji,jj) / ze3ua 151 va(ji,jj,ikv) = va(ji,jj,ikv) + r2dt * 0.5*( rCdU_top(ji +1,jj)+rCdU_top(ji,jj) ) * va_b(ji,jj) / ze3va151 va(ji,jj,ikv) = va(ji,jj,ikv) + r2dt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) * va_b(ji,jj) / ze3va 152 152 END DO 153 153 END DO … … 428 428 ikv = mikv(ji,jj) ! (first wet ocean u- and v-points) 429 429 ze3va = ( 1._wp - r_vvl ) * e3v_n(ji,jj,ikv) + r_vvl * e3v_a(ji,jj,ikv) ! after scale factor at T-point 430 zwd(ji,jj,ik u) = zwd(ji,jj,iku) - r2dt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) / ze3va430 zwd(ji,jj,ikv) = zwd(ji,jj,ikv) - r2dt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) / ze3va 431 431 END DO 432 432 END DO -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/sshwzv.F90
r11414 r12166 18 18 !!---------------------------------------------------------------------- 19 19 USE oce ! ocean dynamics and tracers variables 20 USE isf_oce ! ice shelf 20 21 USE dom_oce ! ocean space and time domain variables 21 22 USE sbc_oce ! surface boundary condition: ocean … … 255 256 IF( .NOT.ln_linssh ) THEN ! before <-- with forcing removed 256 257 zcoef = atfp * rdt * r1_rau0 257 sshb(:,:) = sshb(:,:) - zcoef * ( emp_b(:,:) - emp (:,:) & 258 & - rnf_b(:,:) + rnf (:,:) & 259 & + fwfisf_b(:,:) - fwfisf(:,:) ) * ssmask(:,:) 258 sshb(:,:) = sshb(:,:) - zcoef * ( emp_b(:,:) - emp (:,:) & 259 & - rnf_b(:,:) + rnf (:,:) & 260 & + fwfisf_cav_b(:,:) - fwfisf_cav(:,:) & 261 & + fwfisf_par_b(:,:) - fwfisf_par(:,:) ) * ssmask(:,:) 262 263 ! ice sheet coupling 264 IF ( ln_isf .AND. ln_isfcpl .AND. kt == nit000+1) sshb(:,:) = sshb(:,:) - atfp * rdt * ( risfcpl_ssh(:,:) - 0.0 ) * ssmask(:,:) 265 260 266 ENDIF 267 261 268 sshn(:,:) = ssha(:,:) ! now <-- after 262 269 ENDIF -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/IOM/iom.F90
r12154 r12166 401 401 CALL iom_set_rstw_var_active('sshn') 402 402 CALL iom_set_rstw_var_active('rhop') 403 ! extra variable needed for the ice sheet coupling404 IF ( ln_iscpl ) THEN405 CALL iom_set_rstw_var_active('tmask')406 CALL iom_set_rstw_var_active('umask')407 CALL iom_set_rstw_var_active('vmask')408 CALL iom_set_rstw_var_active('smask')409 CALL iom_set_rstw_var_active('e3t_n')410 CALL iom_set_rstw_var_active('e3u_n')411 CALL iom_set_rstw_var_active('e3v_n')412 CALL iom_set_rstw_var_active('gdepw_n')413 END IF414 403 ENDIF 415 404 IF(ln_diurnal) CALL iom_set_rstw_var_active('Dsst') -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/IOM/restart.F90
r11536 r12166 161 161 CALL iom_rstput( kt, nitrst, numrow, 'sshn' , sshn, ldxios = lwxios ) 162 162 CALL iom_rstput( kt, nitrst, numrow, 'rhop' , rhop, ldxios = lwxios ) 163 ! extra variable needed for the ice sheet coupling164 IF ( ln_iscpl ) THEN165 CALL iom_rstput( kt, nitrst, numrow, 'tmask' , tmask, ldxios = lwxios ) ! need to extrapolate T/S166 CALL iom_rstput( kt, nitrst, numrow, 'umask' , umask, ldxios = lwxios ) ! need to correct barotropic velocity167 CALL iom_rstput( kt, nitrst, numrow, 'vmask' , vmask, ldxios = lwxios ) ! need to correct barotropic velocity168 CALL iom_rstput( kt, nitrst, numrow, 'smask' , ssmask, ldxios = lwxios) ! need to correct barotropic velocity169 CALL iom_rstput( kt, nitrst, numrow, 'e3t_n', e3t_n(:,:,:), ldxios = lwxios ) ! need to compute temperature correction170 CALL iom_rstput( kt, nitrst, numrow, 'e3u_n', e3u_n(:,:,:), ldxios = lwxios ) ! need to compute bt conservation171 CALL iom_rstput( kt, nitrst, numrow, 'e3v_n', e3v_n(:,:,:), ldxios = lwxios ) ! need to compute bt conservation172 CALL iom_rstput( kt, nitrst, numrow, 'gdepw_n', gdepw_n(:,:,:), ldxios = lwxios ) ! need to compute extrapolation if vvl173 END IF174 163 ENDIF 175 164 -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/LDF/ldfslp.F90
r10425 r12166 21 21 !!---------------------------------------------------------------------- 22 22 USE oce ! ocean dynamics and tracers 23 USE isf_oce ! ice shelf 23 24 USE dom_oce ! ocean space and time domain 24 25 ! USE ldfdyn ! lateral diffusion: eddy viscosity coef. -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/LDF/ldftra.F90
r12109 r12166 662 662 ! eddies using the isopycnal slopes calculated in ldfslp.F : 663 663 ! T^-1 = sqrt(m_jpk(N^2*(r1^2+r2^2)*e3w)) 664 ze3w = e3w_n(ji,jj,jk) * tmask(ji,jj,jk)664 ze3w = e3w_n(ji,jj,jk) * wmask(ji,jj,jk) 665 665 zah(ji,jj) = zah(ji,jj) + zn2 * wslp2(ji,jj,jk) * ze3w 666 666 zhw(ji,jj) = zhw(ji,jj) + ze3w … … 680 680 ! eddies using the isopycnal slopes calculated in ldfslp.F : 681 681 ! T^-1 = sqrt(m_jpk(N^2*(r1^2+r2^2)*e3w)) 682 ze3w = e3w_n(ji,jj,jk) * tmask(ji,jj,jk)682 ze3w = e3w_n(ji,jj,jk) * wmask(ji,jj,jk) 683 683 zah(ji,jj) = zah(ji,jj) + zn2 * ( wslpi(ji,jj,jk) * wslpi(ji,jj,jk) & 684 684 & + wslpj(ji,jj,jk) * wslpj(ji,jj,jk) ) * ze3w -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbc_oce.F90
r12154 r12166 45 45 LOGICAL , PUBLIC :: ln_dm2dc !: Daily mean to Diurnal Cycle short wave (qsr) 46 46 LOGICAL , PUBLIC :: ln_rnf !: runoffs / runoff mouths 47 LOGICAL , PUBLIC :: ln_isf !: ice shelf melting48 47 LOGICAL , PUBLIC :: ln_ssr !: Sea Surface restoring on SST and/or SSS 49 48 LOGICAL , PUBLIC :: ln_apr_dyn !: Atmospheric pressure forcing used on dynamics (ocean & ice) … … 125 124 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_tot !: total E-P over ocean and ice [Kg/m2/s] 126 125 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fmmflx !: freshwater budget: freezing/melting [Kg/m2/s] 127 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rnf , rnf_b !: river runoff [Kg/m2/s] 128 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fwfisf , fwfisf_b !: ice shelf melting [Kg/m2/s] 129 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fwficb , fwficb_b !: iceberg melting [Kg/m2/s] 130 126 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rnf , rnf_b !: river runoff [Kg/m2/s] 127 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fwficb , fwficb_b !: iceberg melting [Kg/m2/s] 131 128 !! 132 129 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sbc_tsc, sbc_tsc_b !: sbc content trend [K.m/s] jpi,jpj,jpts … … 185 182 & sfx (jpi,jpj) , sfx_b(jpi,jpj) , emp_tot(jpi,jpj), fmmflx(jpi,jpj), STAT=ierr(2) ) 186 183 ! 187 ALLOCATE( fwfisf (jpi,jpj),rnf (jpi,jpj) , sbc_tsc (jpi,jpj,jpts) , qsr_hc (jpi,jpj,jpk) , &188 & fwfisf_b(jpi,jpj),rnf_b(jpi,jpj) , sbc_tsc_b(jpi,jpj,jpts) , qsr_hc_b(jpi,jpj,jpk) , &184 ALLOCATE( rnf (jpi,jpj) , sbc_tsc (jpi,jpj,jpts) , qsr_hc (jpi,jpj,jpk) , & 185 & rnf_b(jpi,jpj) , sbc_tsc_b(jpi,jpj,jpts) , qsr_hc_b(jpi,jpj,jpk) , & 189 186 & fwficb (jpi,jpj), fwficb_b(jpi,jpj), STAT=ierr(3) ) 190 187 ! -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbccpl.F90
r12154 r12166 27 27 USE sbcwave ! surface boundary condition: waves 28 28 USE phycst ! physical constants 29 USE isf_oce , ONLY : l_isfoasis, fwfisf_oasis ! ice shelf boundary condition 29 30 #if defined key_si3 30 31 USE ice ! ice variables … … 36 37 USE eosbn2 ! 37 38 USE sbcrnf , ONLY : l_rnfcpl 38 USE sbcisf , ONLY : l_isfcpl39 39 #if defined key_cice 40 40 USE ice_domain_size, only: ncat … … 474 474 srcv(jpr_icb)%clname = 'OIceberg' ; IF( TRIM( sn_rcv_icb%cldes) == 'coupled' ) srcv(jpr_icb)%laction = .TRUE. 475 475 476 IF( srcv(jpr_isf)%laction .AND. ln_isf) THEN477 l_isf cpl = .TRUE. ! -> no need to read isf in sbcisf476 IF( srcv(jpr_isf)%laction ) THEN 477 l_isfoasis = .TRUE. ! -> isf fwf comes from oasis 478 478 IF(lwp) WRITE(numout,*) 479 479 IF(lwp) WRITE(numout,*) ' iceshelf received from oasis ' 480 CALL ctl_stop('STOP','not coded') 480 481 ENDIF 481 482 ! … … 1404 1405 rnf(:,:) = rnf(:,:) + fwficb(:,:) ! iceberg added to runfofs 1405 1406 ENDIF 1406 IF( srcv(jpr_isf)%laction ) fwfisf(:,:) = - frcv(jpr_isf)%z3(:,:,1) ! fresh water flux from the isf (fwfisf <0 mean melting) 1407 ! 1408 ! ice shelf fwf 1409 IF( srcv(jpr_isf)%laction ) THEN 1410 fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1) ! fresh water flux from the isf (fwfisf <0 mean melting) 1411 END IF 1407 1412 1408 1413 IF( ln_mixcpl ) THEN ; emp(:,:) = emp(:,:) * xcplmask(:,:,0) + zemp(:,:) * zmsk(:,:) … … 1707 1712 ENDIF 1708 1713 IF( srcv(jpr_isf)%laction ) THEN ! iceshelf (fwfisf <0 mean melting) 1709 fwfisf (:,:) = - frcv(jpr_isf)%z3(:,:,1)1714 fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1) 1710 1715 ENDIF 1711 1716 … … 1746 1751 ENDIF 1747 1752 IF( srcv(jpr_isf)%laction ) THEN ! iceshelf (fwfisf <0 mean melting) 1748 fwfisf (:,:) = - frcv(jpr_isf)%z3(:,:,1)1753 fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1) 1749 1754 ENDIF 1750 1755 ! -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcfwb.F90
r10570 r12166 17 17 USE dom_oce ! ocean space and time domain 18 18 USE sbc_oce ! surface ocean boundary condition 19 USE isf_oce , ONLY : fwfisf_cav, fwfisf_par ! ice shelf melting contribution 19 20 USE sbc_ice , ONLY : snwice_mass, snwice_mass_b, snwice_fmass 20 21 USE phycst ! physical constants 21 22 USE sbcrnf ! ocean runoffs 22 USE sbcisf ! ice shelf melting contribution23 23 USE sbcssr ! Sea-Surface damping terms 24 24 ! … … 104 104 ! 105 105 IF( MOD( kt-1, kn_fsbc ) == 0 ) THEN 106 y_fwfnow(1) = local_sum( e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf (:,:) - snwice_fmass(:,:) ) )106 y_fwfnow(1) = local_sum( e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) - snwice_fmass(:,:) ) ) 107 107 CALL mpp_delay_sum( 'sbcfwb', 'fwb', y_fwfnow(:), z_fwfprv(:), kt == nitend - nn_fsbc + 1 ) 108 108 z_fwfprv(1) = z_fwfprv(1) / area … … 159 159 ztmsk_neg(:,:) = tmask_i(:,:) - ztmsk_pos(:,:) 160 160 ! ! fwf global mean (excluding ocean to ice/snow exchanges) 161 z_fwf = glob_sum( 'sbcfwb', e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf (:,:) - snwice_fmass(:,:) ) ) / area161 z_fwf = glob_sum( 'sbcfwb', e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) - snwice_fmass(:,:) ) ) / area 162 162 ! 163 163 IF( z_fwf < 0._wp ) THEN ! spread out over >0 erp area to increase evaporation -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcmod.F90
r12154 r12166 39 39 #endif 40 40 USE sbcice_cice ! surface boundary condition: CICE sea-ice model 41 USE sbcisf ! surface boundary condition: ice-shelf42 41 USE sbccpl ! surface boundary condition: coupled formulation 43 42 USE cpl_oasis3 ! OASIS routines for coupling … … 45 44 USE sbcrnf ! surface boundary condition: runoffs 46 45 USE sbcapr ! surface boundary condition: atmo pressure 47 USE sbcisf ! surface boundary condition: ice shelf48 46 USE sbcfwb ! surface boundary condition: freshwater budget 49 47 USE icbstp ! Icebergs … … 157 155 WRITE(numout,*) ' Patm gradient added in ocean & ice Eqs. ln_apr_dyn = ', ln_apr_dyn 158 156 WRITE(numout,*) ' runoff / runoff mouths ln_rnf = ', ln_rnf 159 WRITE(numout,*) ' iceshelf formulation ln_isf = ', ln_isf160 157 WRITE(numout,*) ' nb of iterations if land-sea-mask applied nn_lsm = ', nn_lsm 161 158 WRITE(numout,*) ' surface wave ln_wave = ', ln_wave … … 259 256 ENDIF 260 257 ! 261 262 258 IF( nn_ice == 0 ) THEN !* No sea-ice in the domain : ice fraction is always zero 263 259 IF( nn_components /= jp_iam_opa ) fr_i(:,:) = 0._wp ! except for OPA in SAS-OPA coupled case … … 354 350 IF( ln_ssr ) CALL sbc_ssr_init ! Sea-Surface Restoring initialization 355 351 ! 356 IF( ln_isf ) CALL sbc_isf_init ! Compute iceshelves357 !358 352 CALL sbc_rnf_init ! Runof initialization 359 353 ! … … 422 416 rnf_b (:,: ) = rnf (:,: ) 423 417 rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:) 424 ENDIF425 IF( ln_isf ) THEN426 fwfisf_b (:,: ) = fwfisf (:,: )427 risf_tsc_b(:,:,:) = risf_tsc(:,:,:)428 418 ENDIF 429 419 ! … … 479 469 IF( .NOT. ln_passive_mode ) CALL lbc_lnk( 'sbcmod', emp, 'T', 1. ) ! ensure restartability with icebergs 480 470 ENDIF 481 482 IF( ln_isf ) CALL sbc_isf( kt ) ! compute iceshelves483 471 484 472 IF( ln_rnf ) CALL sbc_rnf( kt ) ! add runoffs to fresh water fluxes … … 585 573 ! 586 574 IF(ln_ctl) THEN ! print mean trends (used for debugging) 587 CALL prt_ctl(tab2d_1=fr_i , clinfo1=' fr_i- : ', mask1=tmask )588 CALL prt_ctl(tab2d_1=(emp-rnf + fwfisf), clinfo1=' emp-rnf- : ', mask1=tmask )589 CALL prt_ctl(tab2d_1=(sfx-rnf + fwfisf), clinfo1=' sfx-rnf- : ', mask1=tmask )575 CALL prt_ctl(tab2d_1=fr_i , clinfo1=' fr_i - : ', mask1=tmask ) 576 CALL prt_ctl(tab2d_1=(emp-rnf) , clinfo1=' emp-rnf - : ', mask1=tmask ) 577 CALL prt_ctl(tab2d_1=(sfx-rnf) , clinfo1=' sfx-rnf - : ', mask1=tmask ) 590 578 CALL prt_ctl(tab2d_1=qns , clinfo1=' qns - : ', mask1=tmask ) 591 579 CALL prt_ctl(tab2d_1=qsr , clinfo1=' qsr - : ', mask1=tmask ) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcrnf.F90
r12154 r12166 19 19 USE phycst ! physical constants 20 20 USE sbc_oce ! surface boundary condition variables 21 USE sbcisf ! PM we could remove it I think22 21 USE eosbn2 ! Equation Of State 23 22 USE closea ! closed seas … … 141 140 rnf_tsc(:,:,jp_tem) = sst_m(:,:) * rnf(:,:) * r1_rau0 142 141 END WHERE 143 WHERE( sf_t_rnf(1)%fnow(:,:,1) == -222._wp ) ! where fwf comes from melting of ice shelves or iceberg144 rnf_tsc(:,:,jp_tem) = ztfrz(:,:) * rnf(:,:) * r1_rau0 - rnf(:,:) * rLfusisf * r1_rau0_rcp145 END WHERE146 142 ELSE ! use SST as runoffs temperature 147 143 !CEOD River is fresh water so must at least be 0 unless we consider ice -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcssm.F90
r10425 r12166 60 60 ! 61 61 ! !* surface T-, U-, V- ocean level variables (T, S, depth, velocity) 62 DO jj = 1, jpj 63 DO ji = 1, jpi 64 zts(ji,jj,jp_tem) = tsn(ji,jj,mikt(ji,jj),jp_tem) 65 zts(ji,jj,jp_sal) = tsn(ji,jj,mikt(ji,jj),jp_sal) 66 END DO 67 END DO 62 zts(:,:,jp_tem) = tsn(:,:,1,jp_tem) 63 zts(:,:,jp_sal) = tsn(:,:,1,jp_sal) 68 64 ! 69 65 IF( nn_fsbc == 1 ) THEN ! Instantaneous surface fields ! -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/tranxt.F90
r10425 r12166 28 28 USE sbc_oce ! surface boundary condition: ocean 29 29 USE sbcrnf ! river runoffs 30 USE sbcisf! ice shelf melting30 USE isf_oce ! ice shelf melting 31 31 USE zdf_oce ! ocean vertical mixing 32 32 USE domvvl ! variable volume … … 312 312 ztc_f = ztc_n + atfp * ztc_d 313 313 ! 314 IF( jk == mikt(ji,jj) ) THEN ! first level 315 ze3t_f = ze3t_f - zfact2 * ( (emp_b(ji,jj) - emp(ji,jj) ) & 316 & + (fwfisf_b(ji,jj) - fwfisf(ji,jj)) ) 314 IF( jk == 1 ) THEN ! first level 315 ze3t_f = ze3t_f - zfact2 * ( emp_b(ji,jj) - emp(ji,jj) ) 317 316 ztc_f = ztc_f - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 318 317 ENDIF 318 ! 319 ! river runoff 319 320 IF( ln_rnf_depth ) THEN 320 321 ! Rivers are not just at the surface must go down to nk_rnf(ji,jj) 321 IF( mikt(ji,jj) <=jk .and.jk <= nk_rnf(ji,jj) ) THEN322 IF( jk <= nk_rnf(ji,jj) ) THEN 322 323 ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj) ) ) & 323 324 & * ( e3t_n(ji,jj,jk) / h_rnf(ji,jj) ) 324 325 ENDIF 325 326 ELSE 326 IF( jk == mikt(ji,jj)) THEN ! first level327 IF( jk == 1 ) THEN ! first level 327 328 ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj) ) ) 328 329 ENDIF 329 330 ENDIF 330 331 ! 332 IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) ) & 333 & ztc_f = ztc_f - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) & 334 & * e3t_n(ji,jj,jk) / h_rnf(ji,jj) 331 335 ! 332 336 ! solar penetration (temperature only) 333 337 IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr ) & 334 338 & ztc_f = ztc_f - zfact1 * ( qsr_hc(ji,jj,jk) - qsr_hc_b(ji,jj,jk) ) 335 ! 336 ! river runoff 337 IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) ) & 338 & ztc_f = ztc_f - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) & 339 & * e3t_n(ji,jj,jk) / h_rnf(ji,jj) 340 ! 339 ! 341 340 ! ice shelf 342 341 IF( ll_isf ) THEN 343 ! level fully include in the Losch_2008 ice shelf boundary layer 344 IF ( jk >= misfkt(ji,jj) .AND. jk < misfkb(ji,jj) ) & 345 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 346 & * e3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) 347 ! level partially include in Losch_2008 ice shelf boundary layer 348 IF ( jk == misfkb(ji,jj) ) & 349 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 350 & * e3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) * ralpha(ji,jj) 342 ! 343 ! melt in the cavity 344 IF ( ln_isfcav_mlt ) THEN 345 ! level fully include in the Losch_2008 ice shelf boundary layer 346 IF ( jk >= misfkt_cav(ji,jj) .AND. jk < misfkb_cav(ji,jj) ) THEN 347 ztc_f = ztc_f - zfact1 * ( risf_cav_tsc(ji,jj,jn) - risf_cav_tsc_b(ji,jj,jn) ) & 348 & * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) 349 ze3t_f = ze3t_f - zfact2 * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) ) & 350 & * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) 351 END IF 352 ! level partially include in Losch_2008 ice shelf boundary layer 353 IF ( jk == misfkb_cav(ji,jj) ) THEN 354 ztc_f = ztc_f - zfact1 * ( risf_cav_tsc(ji,jj,jn) - risf_cav_tsc_b(ji,jj,jn) ) & 355 & * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) * rfrac_tbl_cav(ji,jj) 356 ze3t_f = ze3t_f - zfact2 * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) ) & 357 & * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) * rfrac_tbl_cav(ji,jj) 358 END IF 359 END IF 360 ! 361 ! parametrised melt (cavity closed) 362 IF ( ln_isfpar_mlt ) THEN 363 ! level fully include in the Losch_2008 ice shelf boundary layer 364 IF ( jk >= misfkt_par(ji,jj) .AND. jk < misfkb_par(ji,jj) ) THEN 365 ztc_f = ztc_f - zfact1 * ( risf_par_tsc(ji,jj,jn) - risf_par_tsc_b(ji,jj,jn) ) & 366 & * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) 367 ze3t_f = ze3t_f - zfact2 * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) ) & 368 & * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) 369 END IF 370 ! level partially include in Losch_2008 ice shelf boundary layer 371 IF ( jk == misfkb_par(ji,jj) ) THEN 372 ztc_f = ztc_f - zfact1 * ( risf_par_tsc(ji,jj,jn) - risf_par_tsc_b(ji,jj,jn) ) & 373 & * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) * rfrac_tbl_par(ji,jj) 374 ze3t_f = ze3t_f - zfact2 * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) ) & 375 & * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) * rfrac_tbl_par(ji,jj) 376 END IF 377 END IF 378 ! 379 ! ice sheet coupling correction 380 IF ( ln_isfcpl ) THEN 381 ! 382 ! at kt = nit000, risfcpl_vol_n = 0 and risfcpl_vol_b = risfcpl_vol so contribution nul 383 IF ( ln_rstart .AND. kt == nit000+1 ) THEN 384 ztc_f = ztc_f + zfact1 * risfcpl_tsc(ji,jj,jk,jn) * r1_e1e2t(ji,jj) 385 ze3t_f = ze3t_f - zfact1 * risfcpl_vol(ji,jj,jk ) * r1_e1e2t(ji,jj) 386 END IF 387 ! 388 END IF 389 ! 351 390 END IF 352 391 ! -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trasbc.F90
r10499 r12166 10 10 !! - ! 2010-09 (C. Ethe, G. Madec) Merge TRA-TRC 11 11 !! 3.6 ! 2014-11 (P. Mathiot) isf melting forcing 12 !! 4.1 ! 2019-09 (P. Mathiot) isf moved in traisf 12 13 !!---------------------------------------------------------------------- 13 14 … … 22 23 USE sbcmod ! ln_rnf 23 24 USE sbcrnf ! River runoff 24 USE sbcisf ! Ice shelf25 USE iscplini ! Ice sheet coupling26 25 USE traqsr ! solar radiation penetration 27 26 USE trd_oce ! trends: ocean variables … … 62 61 !! (1) Fext, external forcing (i.e. flux through the (air+ice)-sea interface); 63 62 !! (2) Fwe , tracer carried with the water that is exchanged with air+ice. 64 !! The input forcing fields (emp, rnf, sfx , isf) contain Fext+Fwe,63 !! The input forcing fields (emp, rnf, sfx) contain Fext+Fwe, 65 64 !! they are simply added to the tracer trend (tsa). 66 65 !! In linear free surface case (ln_linssh=T), the volume of the … … 153 152 IF( lwxios ) CALL iom_swap( cxios_context ) 154 153 ENDIF 155 !156 !----------------------------------------157 ! Ice Shelf effects (ISF)158 ! tbl treated as in Losh (2008) JGR159 !----------------------------------------160 !161 !!gm BUG ? Why no differences between non-linear and linear free surface ?162 !!gm probably taken into account in r1_hisf_tbl : to be verified163 IF( ln_isf ) THEN164 zfact = 0.5_wp165 DO jj = 2, jpj166 DO ji = fs_2, fs_jpim1167 !168 ikt = misfkt(ji,jj)169 ikb = misfkb(ji,jj)170 !171 ! level fully include in the ice shelf boundary layer172 ! sign - because fwf sign of evapo (rnf sign of precip)173 DO jk = ikt, ikb - 1174 ! compute trend175 tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) &176 & + zfact * ( risf_tsc_b(ji,jj,jp_tem) + risf_tsc(ji,jj,jp_tem) ) &177 & * r1_hisf_tbl(ji,jj)178 END DO179 180 ! level partially include in ice shelf boundary layer181 ! compute trend182 tsa(ji,jj,ikb,jp_tem) = tsa(ji,jj,ikb,jp_tem) &183 & + zfact * ( risf_tsc_b(ji,jj,jp_tem) + risf_tsc(ji,jj,jp_tem) ) &184 & * r1_hisf_tbl(ji,jj) * ralpha(ji,jj)185 186 END DO187 END DO188 END IF189 154 ! 190 155 !---------------------------------------- … … 242 207 #endif 243 208 ! 244 !----------------------------------------245 ! Ice Sheet coupling imbalance correction to have conservation246 !----------------------------------------247 !248 IF( ln_iscpl .AND. ln_hsb) THEN ! input of heat and salt due to river runoff249 DO jk = 1,jpk250 DO jj = 2, jpj251 DO ji = fs_2, fs_jpim1252 zdep = 1._wp / e3t_n(ji,jj,jk)253 tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) - htsc_iscpl(ji,jj,jk,jp_tem) * zdep254 tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) - htsc_iscpl(ji,jj,jk,jp_sal) * zdep255 END DO256 END DO257 END DO258 ENDIF259 260 209 IF( l_trdtra ) THEN ! save the horizontal diffusive trends for further diagnostics 261 210 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfmxl.F90
r10425 r12166 12 12 !!---------------------------------------------------------------------- 13 13 USE oce ! ocean dynamics and tracers variables 14 USE isf_oce ! ice shelf 14 15 USE dom_oce ! ocean space and time domain variables 15 16 USE trc_oce , ONLY: l_offline ! ocean space and time domain variables -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/nemogcm.F90
r12109 r12166 61 61 USE diaharm ! tidal harmonics diagnostics (dia_harm_init routine) 62 62 USE step ! NEMO time-stepping (stp routine) 63 USE isfstp ! ice shelf (isf_stp_init routine) 63 64 USE icbini ! handle bergs, initialisation 64 65 USE icbstp ! handle bergs, calving, themodynamics and transport … … 431 432 RETURN ! end of initialization 432 433 ENDIF 434 ! 433 435 434 436 CALL istate_init ! ocean initial state (Dynamics and tracers) … … 471 473 ! ! Icebergs 472 474 CALL icb_init( rdt, nit000) ! initialise icebergs instance 475 476 ! ice shelf 477 CALL isf_init 473 478 474 479 ! ! Misc. options -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/step.F90
r12109 r12166 113 113 IF( ln_apr_dyn ) CALL sbc_apr ( kstp ) ! atmospheric pressure (NB: call before bdy_dta which needs ssh_ib) 114 114 IF( ln_bdy ) CALL bdy_dta ( kstp, kt_offset = +1 ) ! update dynamic & tracer data at open boundaries 115 IF( ln_isf ) CALL isf_stp ( kstp ) ! ice shelf/ocean boundary condition 115 116 CALL sbc ( kstp ) ! Sea Boundary Condition (including sea-ice) 116 117 … … 229 230 CALL tra_sbc ( kstp ) ! surface boundary condition 230 231 IF( ln_traqsr ) CALL tra_qsr ( kstp ) ! penetrative solar radiation qsr 232 IF( ln_isf ) CALL tra_isf ( kstp ) ! ice shelf heat flux 231 233 IF( ln_trabbc ) CALL tra_bbc ( kstp ) ! bottom heat flux 232 234 IF( ln_trabbl ) CALL tra_bbl ( kstp ) ! advective (and/or diffusive) bottom boundary layer scheme -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/step_oce.F90
r10068 r12166 22 22 USE sbcwave ! Wave intialisation 23 23 24 USE isf_oce ! ice shelf boundary condition 25 USE isfstp ! ice shelf boundary condition (isf_stp routine) 26 24 27 USE traqsr ! solar radiation penetration (tra_qsr routine) 28 USE traisf ! ice shelf (tra_isf routine) 25 29 USE trasbc ! surface boundary condition (tra_sbc routine) 26 30 USE trabbc ! bottom boundary condition (tra_bbc routine) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP/EXPREF/file_def_nemo-oce.xml
r9572 r12166 27 27 <field field_ref="ssh" name="sossheig" /> 28 28 <!-- variable for ice shelf --> 29 <field field_ref="qlatisf" name="sohflisf" /> 30 <field field_ref="fwfisf" name="sowflisf" /> 29 <field field_ref="fwfisf_cav" name="sowflisf" /> 31 30 <field field_ref="isfgammat" name="sogammat" /> 32 31 <field field_ref="isfgammas" name="sogammas" /> -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP/EXPREF/namelist_cfg
r11536 r12166 46 46 rn_rdt = 1800. ! time step for the dynamics (and tracer if nn_acc=0) 47 47 / 48 !----------------------------------------------------------------------- 49 &namcfg ! parameters of the configuration (default: use namusr_def in namelist_cfg) 50 !----------------------------------------------------------------------- 51 / 52 !----------------------------------------------------------------------- 53 &namtsd ! Temperature & Salinity Data (init/dmp) (default: OFF) 54 !----------------------------------------------------------------------- 55 56 / 57 !----------------------------------------------------------------------- 58 &namwad ! Wetting and Drying (WaD) (default: OFF) 59 !----------------------------------------------------------------------- 60 / 61 !----------------------------------------------------------------------- 62 &namcrs ! coarsened grid (for outputs and/or TOP) (ln_crs =T) 63 !----------------------------------------------------------------------- 64 / 65 !----------------------------------------------------------------------- 66 &namc1d ! 1D configuration options ("key_c1d" default: PAPA station) 67 !----------------------------------------------------------------------- 68 / 69 !----------------------------------------------------------------------- 70 &namc1d_dyndmp ! U & V newtonian damping ("key_c1d" default: OFF) 71 !----------------------------------------------------------------------- 72 / 73 !----------------------------------------------------------------------- 74 &namc1d_uvd ! data: U & V currents ("key_c1d" default: OFF) 75 !----------------------------------------------------------------------- 76 77 / 78 48 79 !!====================================================================== 49 80 !! *** Surface Boundary Condition namelists *** !! … … 59 90 !! namsbc_rnf river runoffs (ln_rnf =T) 60 91 !! namsbc_apr Atmospheric Pressure (ln_apr_dyn =T) 61 !! namsbc_isf ice shelf melting/freezing (ln_isfcav =T : read (ln_read_cfg=T) or set or usr_def_zgr )62 !! namsbc_iscpl coupling option between land ice model and ocean (ln_isfcav =T)63 92 !! namsbc_wave external fields from wave model (ln_wave =T) 64 93 !! namberg iceberg floats (ln_icebergs=T) … … 66 95 ! 67 96 !----------------------------------------------------------------------- 68 &namsbc ! Surface Boundary Condition (surface module) 69 !----------------------------------------------------------------------- 70 nn_fsbc = 1 ! frequency of surface boundary condition computation 97 &namsbc ! Surface Boundary Condition manager (default: NO selection) 98 !----------------------------------------------------------------------- 99 nn_fsbc = 1 ! frequency of SBC module call 100 ! ! (control sea-ice & iceberg model call) 71 101 ln_usr = .true. ! user defined formulation (T => check usrdef_sbc) 72 ln_isf = .true. ! ice shelf melting/freezing (T => fill namsbc_isf) 73 / 74 !----------------------------------------------------------------------- 75 &namsbc_isf ! Top boundary layer (ISF) (ln_isfcav =T : read (ln_read_cfg=T) 76 !----------------------------------------------------------------------- or set or usr_def_zgr ) 77 ! ! file name ! frequency (hours) ! variable ! time interpol. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 78 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 79 ! nn_isf == 4 80 sn_fwfisf = 'rnfisf' , -12. ,'sowflisf', .false. , .true. , 'yearly' , '' , '' , '' 81 ! nn_isf == 3 82 sn_rnfisf = 'rnfisf' , -12. ,'sofwfisf', .false. , .true. , 'yearly' , '' , '' , '' 83 ! nn_isf == 2 and 3 84 sn_depmax_isf = 'rnfisf' , -12. ,'sozisfmax' , .false. , .true. , 'yearly' , '' , '' , '' 85 sn_depmin_isf = 'rnfisf' , -12. ,'sozisfmin' , .false. , .true. , 'yearly' , '' , '' , '' 86 ! nn_isf == 2 87 sn_Leff_isf = 'rnfisf' , -12. ,'Leff' , .false. , .true. , 'yearly' , '' , '' , '' 88 ! for all case 89 nn_isf = 1 ! ice shelf melting/freezing 90 ! 1 = presence of ISF 2 = bg03 parametrisation 91 ! 3 = rnf file for isf 4 = ISF fwf specified 92 ! option 1 and 4 need ln_isfcav = .true. (domzgr) 93 ! only for nn_isf = 1 or 2 94 rn_gammat0 = 1.0e-4 ! gammat coefficient used in blk formula 95 rn_gammas0 = 1.0e-4 ! gammas coefficient used in blk formula 96 ! only for nn_isf = 1 or 4 97 rn_hisf_tbl = 30. ! thickness of the top boundary layer (Losh et al. 2008) 98 ! 0 => thickness of the tbl = thickness of the first wet cell 99 ! only for nn_isf = 1 100 nn_isfblk = 1 ! 1 ISOMIP like: 2 equations formulation (Hunter et al., 2006) 101 ! 2 ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2015) 102 nn_gammablk = 0 ! 0 = cst Gammat (= gammat/s) 103 ! 1 = velocity dependend Gamma (u* * gammat/s) (Jenkins et al. 2010) 104 ! 2 = velocity and stability dependent Gamma (Holland et al. 1999) 105 / 106 !----------------------------------------------------------------------- 107 &namsbc_iscpl ! land ice / ocean coupling option 108 !----------------------------------------------------------------------- 109 / 102 / 103 !----------------------------------------------------------------------- 104 &namsbc_flx ! surface boundary condition : flux formulation (ln_flx =T) 105 !----------------------------------------------------------------------- 106 / 107 !----------------------------------------------------------------------- 108 &namsbc_blk ! namsbc_blk generic Bulk formula (ln_blk =T) 109 !----------------------------------------------------------------------- 110 111 / 112 !----------------------------------------------------------------------- 113 &namsbc_cpl ! coupled ocean/atmosphere model ("key_oasis3") 114 !----------------------------------------------------------------------- 115 116 / 117 !----------------------------------------------------------------------- 118 &namsbc_sas ! Stand-Alone Surface module: ocean data (SAS_SRC only) 119 !----------------------------------------------------------------------- 120 121 / 122 !----------------------------------------------------------------------- 123 &namsbc_iif ! Ice-IF : use observed ice cover (nn_ice = 1) 124 !----------------------------------------------------------------------- 125 / 126 !----------------------------------------------------------------------- 127 &namtra_qsr ! penetrative solar radiation (ln_traqsr =T) 128 !----------------------------------------------------------------------- 129 130 / 131 !----------------------------------------------------------------------- 132 &namsbc_ssr ! surface boundary condition : sea surface restoring (ln_ssr =T) 133 !----------------------------------------------------------------------- 134 135 / 136 !----------------------------------------------------------------------- 137 &namsbc_rnf ! runoffs (ln_rnf =T) 138 !----------------------------------------------------------------------- 139 140 / 141 !----------------------------------------------------------------------- 142 &namsbc_apr ! Atmospheric pressure used as ocean forcing (ln_apr_dyn =T) 143 !----------------------------------------------------------------------- 144 145 / 146 !----------------------------------------------------------------------- 147 &namisf ! Top boundary layer (ISF) (default: OFF) 148 !----------------------------------------------------------------------- 149 ! 150 ! ---------------- ice shelf load ------------------------------- 151 ! 152 ! 153 ! ---------------- ice shelf melt formulation ------------------------------- 154 ! 155 ln_isf = .true. ! activate ice shelf module 156 cn_isfdir = './' ! directory for all ice shelf input file 157 ! 158 ! ---------------- cavities opened ------------------------------- 159 ! 160 ln_isfcav_mlt = .true. ! ice shelf melting into the cavity (need ln_isfcav = .true. in domain_cfg.nc) 161 cn_isfcav_mlt = '2eq' ! ice shelf melting formulation (spe/2eq/3eq/oasis) 162 ! ! spe = fwfisf is read from a forcing field 163 ! ! 2eq = ISOMIP like: 2 equations formulation (Hunter et al., 2006) 164 ! ! 3eq = ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2015) 165 ! ! oasis = fwfisf is given by oasis and pattern by file sn_isfcav_fwf 166 ! ! cn_isfcav_mlt = 2eq or 3eq cases: 167 cn_gammablk = 'spe' ! scheme to compute gammat/s (spe,ad15,hj99) 168 ! ! ad15 = velocity dependend Gamma (u* * gammat/s) (Jenkins et al. 2010) 169 ! ! hj99 = velocity and stability dependent Gamma (Holland et al. 1999) 170 rn_gammat0 = 1.e-4 ! gammat coefficient used in blk formula 171 rn_gammas0 = 1.e-4 ! gammas coefficient used in blk formula 172 ! 173 rn_htbl = 30. ! thickness of the top boundary layer (Losh et al. 2008) 174 ! ! 0 => thickness of the tbl = thickness of the first wet cell 175 ! 176 / 177 !----------------------------------------------------------------------- 178 &namsbc_wave ! External fields from wave model (ln_wave=T) 179 !----------------------------------------------------------------------- 180 / 181 !----------------------------------------------------------------------- 182 &namberg ! iceberg parameters (default: OFF) 183 !----------------------------------------------------------------------- 184 185 / 186 110 187 !!====================================================================== 111 188 !! *** Lateral boundary condition *** !! … … 124 201 rn_shlat = 0. ! free slip 125 202 / 203 !----------------------------------------------------------------------- 204 &namagrif ! AGRIF zoom ("key_agrif") 205 !----------------------------------------------------------------------- 206 / 207 !----------------------------------------------------------------------- 208 &nam_tide ! tide parameters (default: OFF) 209 !----------------------------------------------------------------------- 210 / 211 !----------------------------------------------------------------------- 212 &nambdy ! unstructured open boundaries (default: OFF) 213 !----------------------------------------------------------------------- 214 / 215 !----------------------------------------------------------------------- 216 &nambdy_dta ! open boundaries - external data (see nam_bdy) 217 !----------------------------------------------------------------------- 218 219 / 220 !----------------------------------------------------------------------- 221 &nambdy_tide ! tidal forcing at open boundaries (default: OFF) 222 !----------------------------------------------------------------------- 223 / 224 126 225 !!====================================================================== 127 226 !! *** Top/Bottom boundary condition *** !! … … 145 244 / 146 245 !----------------------------------------------------------------------- 147 &namdrg_top ! TOP friction (ln_ isfcav=T)246 &namdrg_top ! TOP friction (ln_OFF =F & ln_isfcav=T) 148 247 !----------------------------------------------------------------------- 149 248 rn_Cd0 = 2.5e-3 ! drag coefficient [-] … … 156 255 / 157 256 !----------------------------------------------------------------------- 158 &namdrg_bot ! BOTTOM friction 257 &namdrg_bot ! BOTTOM friction (ln_OFF =F) 159 258 !----------------------------------------------------------------------- 160 259 rn_Cd0 = 1.e-3 ! drag coefficient [-] … … 166 265 rn_boost = 50. ! local boost factor [-] 167 266 / 267 !----------------------------------------------------------------------- 268 &nambbc ! bottom temperature boundary condition (default: OFF) 269 !----------------------------------------------------------------------- 270 271 / 272 !----------------------------------------------------------------------- 273 &nambbl ! bottom boundary layer scheme (default: OFF) 274 !----------------------------------------------------------------------- 275 / 276 168 277 !!====================================================================== 169 278 !! Tracer (T-S) namelists !! … … 178 287 ! 179 288 !----------------------------------------------------------------------- 180 &nameos ! ocean Equation Of Seawater (default: OFF)289 &nameos ! ocean Equation Of Seawater (default: NO selection) 181 290 !----------------------------------------------------------------------- 182 291 ln_eos80 = .true. ! = Use EOS80 equation of state … … 199 308 rn_Ld = 10.e+3 ! lateral diffusive length [m] 200 309 / 310 !----------------------------------------------------------------------- 311 &namtra_mle ! mixed layer eddy parametrisation (Fox-Kemper) (default: OFF) 312 !----------------------------------------------------------------------- 313 / 314 !----------------------------------------------------------------------- 315 &namtra_eiv ! eddy induced velocity param. (default: OFF) 316 !----------------------------------------------------------------------- 317 / 318 !----------------------------------------------------------------------- 319 &namtra_dmp ! tracer: T & S newtonian damping (default: OFF) 320 !----------------------------------------------------------------------- 321 / 322 201 323 !!====================================================================== 202 324 !! *** Dynamics namelists *** !! … … 212 334 ! 213 335 !----------------------------------------------------------------------- 336 &nam_vvl ! vertical coordinate options (default: z-star) 337 !----------------------------------------------------------------------- 338 / 339 !----------------------------------------------------------------------- 214 340 &namdyn_adv ! formulation of the momentum advection (default: NO selection) 215 341 !----------------------------------------------------------------------- … … 218 344 / 219 345 !----------------------------------------------------------------------- 220 &namdyn_vor ! Vorticity / Coriolis scheme (default: OFF)346 &namdyn_vor ! Vorticity / Coriolis scheme (default: NO selection) 221 347 !----------------------------------------------------------------------- 222 348 ln_dynvor_ene = .true. ! energy conserving scheme … … 241 367 rn_Lv = 10.e+3 ! lateral viscous length [m] 242 368 / 369 !----------------------------------------------------------------------- 370 &namdta_dyn ! offline ocean input files (OFF_SRC only) 371 !----------------------------------------------------------------------- 372 373 / 374 243 375 !!====================================================================== 244 376 !! vertical physics namelists !! … … 253 385 ! 254 386 !----------------------------------------------------------------------- 255 &namzdf ! vertical physics 256 !----------------------------------------------------------------------- 257 ! ! type of vertical closure 387 &namzdf ! vertical physics manager (default: NO selection) 388 !----------------------------------------------------------------------- 389 ! ! type of vertical closure (required) 258 390 ln_zdfcst = .true. ! constant mixing 391 ! 392 ! ! convection 259 393 ln_zdfevd = .true. ! enhanced vertical diffusion 260 nn_evdm = 1 ! apply on tracer (=0) or on tracer and momentum (=1)261 rn_evd = 0.1 ! mixing coefficient [m2/s]394 rn_evd = 0.1 ! mixing coefficient [m2/s] 395 ! 262 396 ! ! coefficients 263 rn_avm0 = 1.e-3 ! vertical eddy viscosity [m2/s] 264 rn_avt0 = 5.e-5 ! vertical eddy diffusivity [m2/s] 265 / 397 rn_avm0 = 1.e-3 ! vertical eddy viscosity [m2/s] (background Kz if ln_zdfcst) 398 rn_avt0 = 5.e-5 ! vertical eddy diffusivity [m2/s] (background Kz if ln_zdfcst) 399 / 400 !----------------------------------------------------------------------- 401 &namzdf_ric ! richardson number dependent vertical diffusion (ln_zdfric =T) 402 !----------------------------------------------------------------------- 403 / 404 !----------------------------------------------------------------------- 405 &namzdf_tke ! turbulent eddy kinetic dependent vertical diffusion (ln_zdftke =T) 406 !----------------------------------------------------------------------- 407 / 408 !----------------------------------------------------------------------- 409 &namzdf_gls ! GLS vertical diffusion (ln_zdfgls =T) 410 !----------------------------------------------------------------------- 411 / 412 !----------------------------------------------------------------------- 413 &namzdf_osm ! OSM vertical diffusion (ln_zdfosm =T) 414 !----------------------------------------------------------------------- 415 / 416 !----------------------------------------------------------------------- 417 &namzdf_iwm ! internal wave-driven mixing parameterization (ln_zdfiwm =T) 418 !----------------------------------------------------------------------- 419 / 420 266 421 !!====================================================================== 267 422 !! *** Diagnostics namelists *** !! … … 280 435 !!====================================================================== 281 436 ! 437 !----------------------------------------------------------------------- 438 &namtrd ! trend diagnostics (default: OFF) 439 !----------------------------------------------------------------------- 440 / 441 !----------------------------------------------------------------------- 442 &namptr ! Poleward Transport Diagnostic (default: OFF) 443 !----------------------------------------------------------------------- 444 / 445 !----------------------------------------------------------------------- 446 &namhsb ! Heat and salt budgets (default: OFF) 447 !----------------------------------------------------------------------- 448 / 449 !----------------------------------------------------------------------- 450 &namdiu ! Cool skin and warm layer models (default: OFF) 451 !----------------------------------------------------------------------- 452 / 453 !----------------------------------------------------------------------- 454 &namflo ! float parameters ("key_float") 455 !----------------------------------------------------------------------- 456 / 457 !----------------------------------------------------------------------- 458 &nam_diaharm ! Harmonic analysis of tidal constituents ("key_diaharm") 459 !----------------------------------------------------------------------- 460 / 461 !----------------------------------------------------------------------- 462 &namdct ! transports through some sections ("key_diadct") 463 !----------------------------------------------------------------------- 464 / 465 !----------------------------------------------------------------------- 466 &nam_diatmb ! Top Middle Bottom Output (default: OFF) 467 !----------------------------------------------------------------------- 468 / 469 !----------------------------------------------------------------------- 470 &nam_dia25h ! 25h Mean Output (default: OFF) 471 !----------------------------------------------------------------------- 472 / 473 !----------------------------------------------------------------------- 474 &namnc4 ! netcdf4 chunking and compression settings ("key_netcdf4") 475 !----------------------------------------------------------------------- 476 / 477 282 478 !!====================================================================== 283 479 !! *** Observation & Assimilation *** !! … … 287 483 !!====================================================================== 288 484 ! 485 !----------------------------------------------------------------------- 486 &namobs ! observation usage switch (default: OFF) 487 !----------------------------------------------------------------------- 488 / 489 !----------------------------------------------------------------------- 490 &nam_asminc ! assimilation increments ('key_asminc') 491 !----------------------------------------------------------------------- 492 / 493 289 494 !!====================================================================== 290 495 !! *** Miscellaneous namelists *** !! -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_flux_cen2_cfg
r10075 r12166 32 32 !----------------------------------------------------------------------- 33 33 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 34 !35 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice36 34 ! 37 35 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_flux_ubs_cfg
r11536 r12166 46 46 !----------------------------------------------------------------------- 47 47 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 48 !49 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice50 48 ! 51 49 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_eenH_cfg
r10075 r12166 32 32 !----------------------------------------------------------------------- 33 33 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 34 !35 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice36 34 ! 37 35 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_een_cfg
r10075 r12166 32 32 !----------------------------------------------------------------------- 33 33 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 34 !35 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice36 34 ! 37 35 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_ene_cfg
r10075 r12166 32 32 !----------------------------------------------------------------------- 33 33 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 34 !35 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice36 34 ! 37 35 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_ens_cfg
r10075 r12166 32 32 !----------------------------------------------------------------------- 33 33 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 34 !35 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice36 34 ! 37 35 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_flux_cen2_cfg
r10075 r12166 32 32 !----------------------------------------------------------------------- 33 33 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 34 !35 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice36 34 ! 37 35 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_flux_ubs_cfg
r10075 r12166 32 32 !----------------------------------------------------------------------- 33 33 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 34 !35 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice36 34 ! 37 35 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_eenH_cfg
r10075 r12166 32 32 !----------------------------------------------------------------------- 33 33 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 34 !35 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice36 34 ! 37 35 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_een_cfg
r10075 r12166 32 32 !----------------------------------------------------------------------- 33 33 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 34 !35 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice36 34 ! 37 35 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_ene_cfg
r10075 r12166 32 32 !----------------------------------------------------------------------- 33 33 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 34 !35 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice36 34 ! 37 35 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_ens_cfg
r10075 r12166 32 32 !----------------------------------------------------------------------- 33 33 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 34 !35 rn_isfhmin = 0.00 ! treshold (m) to discriminate grounding ice to floating ice36 34 ! 37 35 rn_rdt = 1. ! time step for the dynamics (and tracer if nn_acc=0) -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/VORTEX/MY_SRC/domvvl.F90
r11536 r12166 36 36 37 37 PUBLIC dom_vvl_init ! called by domain.F90 38 PUBLIC dom_vvl_zgr ! called by isfcpl.F90 38 39 PUBLIC dom_vvl_sf_nxt ! called by step.F90 39 40 PUBLIC dom_vvl_sf_swp ! called by step.F90 … … 115 116 !! Reference : Leclair, M., and G. Madec, 2011, Ocean Modelling. 116 117 !!---------------------------------------------------------------------- 118 ! 119 IF(lwp) WRITE(numout,*) 120 IF(lwp) WRITE(numout,*) 'dom_vvl_init : Variable volume activated' 121 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 122 ! 123 CALL dom_vvl_ctl ! choose vertical coordinate (z_star, z_tilde or layer) 124 ! 125 ! ! Allocate module arrays 126 IF( dom_vvl_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'dom_vvl_init : unable to allocate arrays' ) 127 ! 128 ! ! Read or initialize e3t_(b/n), tilde_e3t_(b/n) and hdiv_lf 129 CALL dom_vvl_rst( nit000, 'READ' ) 130 e3t_a(:,:,jpk) = e3t_0(:,:,jpk) ! last level always inside the sea floor set one for all 131 ! 132 CALL dom_vvl_zgr() ! interpolation scale factor, depth and water column 133 ! 134 END SUBROUTINE dom_vvl_init 135 ! 136 SUBROUTINE dom_vvl_zgr() 137 !!---------------------------------------------------------------------- 138 !! *** ROUTINE dom_vvl_init *** 139 !! 140 !! ** Purpose : Interpolation of all scale factors, 141 !! depths and water column heights 142 !! 143 !! ** Method : - interpolate scale factors 144 !! 145 !! ** Action : - e3t_(n/b) and tilde_e3t_(n/b) 146 !! - Regrid: e3(u/v)_n 147 !! e3(u/v)_b 148 !! e3w_n 149 !! e3(u/v)w_b 150 !! e3(u/v)w_n 151 !! gdept_n, gdepw_n and gde3w_n 152 !! - h(t/u/v)_0 153 !! - frq_rst_e3t and frq_rst_hdv 154 !! 155 !! Reference : Leclair, M., and G. Madec, 2011, Ocean Modelling. 156 !!---------------------------------------------------------------------- 117 157 INTEGER :: ji, jj, jk 118 158 INTEGER :: ii0, ii1, ij0, ij1 119 159 REAL(wp):: zcoef 120 160 !!---------------------------------------------------------------------- 121 !122 IF(lwp) WRITE(numout,*)123 IF(lwp) WRITE(numout,*) 'dom_vvl_init : Variable volume activated'124 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~'125 !126 CALL dom_vvl_ctl ! choose vertical coordinate (z_star, z_tilde or layer)127 !128 ! ! Allocate module arrays129 IF( dom_vvl_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'dom_vvl_init : unable to allocate arrays' )130 !131 ! ! Read or initialize e3t_(b/n), tilde_e3t_(b/n) and hdiv_lf132 CALL dom_vvl_rst( nit000, 'READ' )133 e3t_a(:,:,jpk) = e3t_0(:,:,jpk) ! last level always inside the sea floor set one for all134 161 ! 135 162 ! !== Set of all other vertical scale factors ==! (now and before) … … 263 290 ENDIF 264 291 ! 265 END SUBROUTINE dom_vvl_init 266 292 END SUBROUTINE dom_vvl_zgr 267 293 268 294 SUBROUTINE dom_vvl_sf_nxt( kt, kcall ) … … 1034 1060 ! 1035 1061 IF( ioptio /= 1 ) CALL ctl_stop( 'Choose ONE vertical coordinate in namelist nam_vvl' ) 1036 IF( .NOT. ln_vvl_zstar .AND. ln_isf ) CALL ctl_stop( 'Only vvl_zstar has been tested with ice shelf cavity' )1037 1062 ! 1038 1063 IF(lwp) THEN ! Print the choice -
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/demo_cfgs.txt
r12154 r12166 1 1 CANAL OCE 2 2 ISOMIP OCE 3 ISOMIP+ OCE 3 4 LOCK_EXCHANGE OCE 4 5 OVERFLOW OCE
Note: See TracChangeset
for help on using the changeset viewer.