Changeset 12721 for NEMO/branches/UKMO
- Timestamp:
- 2020-04-08T20:42:57+02:00 (4 years ago)
- Location:
- NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo
- Files:
-
- 55 added
- 4 deleted
- 45 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/cfgs/SHARED/field_def_nemo-oce.xml
r12660 r12721 314 314 315 315 <!-- * variable related to ice shelf forcing * --> 316 <field id="fwfisf" long_name="Ice shelf melting" unit="kg/m2/s" /> 317 <field id="fwfisf3d" long_name="Ice shelf melting" unit="kg/m2/s" grid_ref="grid_T_3D" /> 318 <field id="qlatisf" long_name="Ice shelf latent heat flux" unit="W/m2" /> 319 <field id="qlatisf3d" long_name="Ice shelf latent heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 320 <field id="qhcisf" long_name="Ice shelf heat content flux" unit="W/m2" /> 321 <field id="qhcisf3d" long_name="Ice shelf heat content flux" unit="W/m2" grid_ref="grid_T_3D" /> 322 <field id="isfgammat" long_name="transfert coefficient for isf (temperature) " unit="m/s" /> 323 <field id="isfgammas" long_name="transfert coefficient for isf (salinity) " unit="m/s" /> 324 <field id="stbl" long_name="salinity in the Losh tbl " unit="PSU" /> 325 <field id="ttbl" long_name="temperature in the Losh tbl " unit="C" /> 326 <field id="utbl" long_name="zonal current in the Losh tbl at T point " unit="m/s" /> 327 <field id="vtbl" long_name="merid current in the Losh tbl at T point " unit="m/s" /> 328 <field id="thermald" long_name="thermal driving of ice shelf melting " unit="C" /> 329 <field id="tfrz" long_name="top freezing point (used to compute melt) " unit="C" /> 330 <field id="tinsitu" long_name="top insitu temperature (used to cmpt melt) " unit="C" /> 331 <field id="ustar" long_name="ustar at T point used in ice shelf melting " unit="m/s" /> 316 <field id="isftfrz_cav" long_name="freezing point temperature at ocean/isf interface" unit="degC" /> 317 <field id="isftfrz_par" long_name="freezing point temperature in the parametrization boundary layer" unit="degC" /> 318 <field id="fwfisf_cav" long_name="Ice shelf melt rate" unit="kg/m2/s" /> 319 <field id="fwfisf_par" long_name="Ice shelf melt rate" unit="kg/m2/s" /> 320 <field id="qoceisf_cav" long_name="Ice shelf ocean heat flux" unit="W/m2" /> 321 <field id="qoceisf_par" long_name="Ice shelf ocean heat flux" unit="W/m2" /> 322 <field id="qlatisf_cav" long_name="Ice shelf latent heat flux" unit="W/m2" /> 323 <field id="qlatisf_par" long_name="Ice shelf latent heat flux" unit="W/m2" /> 324 <field id="qhcisf_cav" long_name="Ice shelf heat content flux of injected water" unit="W/m2" /> 325 <field id="qhcisf_par" long_name="Ice shelf heat content flux of injected water" unit="W/m2" /> 326 <field id="fwfisf3d_cav" long_name="Ice shelf melt rate" unit="kg/m2/s" grid_ref="grid_T_3D" /> 327 <field id="fwfisf3d_par" long_name="Ice shelf melt rate" unit="kg/m2/s" grid_ref="grid_T_3D" /> 328 <field id="qoceisf3d_cav" long_name="Ice shelf ocean heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 329 <field id="qoceisf3d_par" long_name="Ice shelf ocean heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 330 <field id="qlatisf3d_cav" long_name="Ice shelf latent heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 331 <field id="qlatisf3d_par" long_name="Ice shelf latent heat flux" unit="W/m2" grid_ref="grid_T_3D" /> 332 <field id="qhcisf3d_cav" long_name="Ice shelf heat content flux of injected water" unit="W/m2" grid_ref="grid_T_3D" /> 333 <field id="qhcisf3d_par" long_name="Ice shelf heat content flux of injected water" unit="W/m2" grid_ref="grid_T_3D" /> 334 <field id="ttbl_cav" long_name="temperature in Losch tbl" unit="degC" /> 335 <field id="ttbl_par" long_name="temperature in the parametrisation boundary layer" unit="degC" /> 336 <field id="isfthermald_cav" long_name="thermal driving of ice shelf melting" unit="degC" /> 337 <field id="isfthermald_par" long_name="thermal driving of ice shelf melting" unit="degC" /> 338 <field id="isfgammat" long_name="Ice shelf heat-transfert velocity" unit="m/s" /> 339 <field id="isfgammas" long_name="Ice shelf salt-transfert velocity" unit="m/s" /> 340 <field id="stbl" long_name="salinity in the Losh tbl" unit="1e-3" /> 341 <field id="utbl" long_name="zonal current in the Losh tbl at T point" unit="m/s" /> 342 <field id="vtbl" long_name="merid current in the Losh tbl at T point" unit="m/s" /> 343 <field id="isfustar" long_name="ustar at T point used in ice shelf melting" unit="m/s" /> 344 <field id="qconisf" long_name="Conductive heat flux through the ice shelf" unit="W/m2" /> 332 345 333 346 <!-- *_oce variables available with ln_blk_clio or ln_blk_core --> -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/cfgs/SHARED/namelist_ref
r12660 r12721 5 5 !! namelists 2 - Surface boundary (namsbc, namsbc_flx, namsbc_blk, namsbc_cpl, 6 6 !! namsbc_sas, namtra_qsr, namsbc_rnf, 7 !! nam sbc_isf, namsbc_iscpl, namsbc_apr,7 !! namisf, namsbc_apr, 8 8 !! namsbc_ssr, namsbc_wave, namberg) 9 9 !! 3 - lateral boundary (namlbc, namagrif, nambdy, nambdy_tide) … … 51 51 cn_ocerst_out = "restart" ! suffix of ocean restart name (output) 52 52 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) 53 nn_istate = 1 ! output the initial state (1) or not (0) 55 54 ln_rst_list = .false. ! output restarts at list of times using nn_stocklist (T) or at set frequency with nn_stock (F) 56 55 nn_stock = 0 ! used only if ln_rst_list = F: output restart freqeuncy (modulo referenced to 1) … … 73 72 !----------------------------------------------------------------------- 74 73 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 75 rn_isfhmin = 1.00 ! treshold [m] to discriminate grounding ice from floating ice76 74 ! 77 75 rn_rdt = 5400. ! time step for the dynamics and tracer … … 185 183 !! namsbc_rnf river runoffs (ln_rnf =T) 186 184 !! namsbc_apr Atmospheric Pressure (ln_apr_dyn =T) 187 !! namsbc_isf ice shelf melting/freezing (ln_isfcav =T : read (ln_read_cfg=T) or set or usr_def_zgr )188 !! namsbc_iscpl coupling option between land ice model and ocean (ln_isfcav =T)189 185 !! namsbc_wave external fields from wave model (ln_wave =T) 190 186 !! namberg iceberg floats (ln_icebergs=T) … … 223 219 ln_rnf = .false. ! runoffs (T => fill namsbc_rnf) 224 220 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 221 ln_wave = .false. ! Activate coupling with wave (T => fill namsbc_wave) 227 222 ln_cdgw = .false. ! Neutral drag coefficient read from wave model (T => ln_wave=.true. & fill namsbc_wave) … … 443 438 / 444 439 !----------------------------------------------------------------------- 445 &namsbc_isf ! Top boundary layer (ISF) (ln_isfcav =T : read (ln_read_cfg=T) 446 !----------------------------------------------------------------------- or set or usr_def_zgr ) 447 ! ! type of top boundary layer 448 nn_isf = 1 ! ice shelf melting/freezing 449 ! 1 = presence of ISF ; 2 = bg03 parametrisation 450 ! 3 = rnf file for ISF ; 4 = ISF specified freshwater flux 451 ! options 1 and 4 need ln_isfcav = .true. (domzgr) 452 ! ! nn_isf = 1 or 2 cases: 453 rn_gammat0 = 1.e-4 ! gammat coefficient used in blk formula 454 rn_gammas0 = 1.e-4 ! gammas coefficient used in blk formula 455 ! ! nn_isf = 1 or 4 cases: 456 rn_hisf_tbl = 30. ! thickness of the top boundary layer (Losh et al. 2008) 457 ! ! 0 => thickness of the tbl = thickness of the first wet cell 458 ! ! nn_isf = 1 case 459 nn_isfblk = 1 ! 1 ISOMIP like: 2 equations formulation (Hunter et al., 2006) 460 ! ! 2 ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2015) 461 nn_gammablk = 1 ! 0 = cst Gammat (= gammat/s) 462 ! ! 1 = velocity dependend Gamma (u* * gammat/s) (Jenkins et al. 2010) 463 ! ! 2 = velocity and stability dependent Gamma (Holland et al. 1999) 464 465 !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________! 466 ! ! file name ! frequency (hours) ! variable ! time interp.! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 467 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 468 !* nn_isf = 4 case 469 sn_fwfisf = 'rnfisf' , -12. ,'sowflisf' , .false. , .true. , 'yearly' , '' , '' , '' 470 !* nn_isf = 3 case 471 sn_rnfisf = 'rnfisf' , -12. ,'sofwfisf' , .false. , .true. , 'yearly' , '' , '' , '' 472 !* nn_isf = 2 and 3 cases 473 sn_depmax_isf ='rnfisf' , -12. ,'sozisfmax', .false. , .true. , 'yearly' , '' , '' , '' 474 sn_depmin_isf ='rnfisf' , -12. ,'sozisfmin', .false. , .true. , 'yearly' , '' , '' , '' 475 !* nn_isf = 2 case 476 sn_Leff_isf = 'rnfisf' , -12. ,'Leff' , .false. , .true. , 'yearly' , '' , '' , '' 477 / 478 !----------------------------------------------------------------------- 479 &namsbc_iscpl ! land ice / ocean coupling option (ln_isfcav =T : read (ln_read_cfg=T) 480 !----------------------------------------------------------------------- or set or usr_def_zgr ) 481 nn_drown = 10 ! number of iteration of the extrapolation loop (fill the new wet cells) 482 ln_hsb = .false. ! activate conservation module (conservation exact after a time of rn_fiscpl) 483 nn_fiscpl = 43800 ! (number of time step) conservation period (maybe should be fix to the coupling frequencey of restart frequency) 440 &namisf ! Top boundary layer (ISF) (default: OFF) 441 !----------------------------------------------------------------------- 442 ! 443 ! ---------------- ice shelf load ------------------------------- 444 ! 445 cn_isfload = 'uniform' ! scheme to compute ice shelf load (ln_isfcav = .true. in domain_cfg.nc) 446 rn_isfload_T = -1.9 447 rn_isfload_S = 34.4 448 ! 449 ! ---------------- ice shelf melt formulation ------------------------------- 450 ! 451 ln_isf = .false. ! activate ice shelf module 452 ln_isfdebug = .false. ! add debug print in ISF code (global min/max/sum of specific variable) 453 cn_isfdir = './' ! directory for all ice shelf input file 454 ! 455 ! ---------------- cavities opened ------------------------------- 456 ! 457 ln_isfcav_mlt = .false. ! ice shelf melting into the cavity (need ln_isfcav = .true. in domain_cfg.nc) 458 cn_isfcav_mlt = '3eq' ! ice shelf melting formulation (spe/2eq/3eq/oasis) 459 ! ! spe = fwfisf is read from a forcing field 460 ! ! 2eq = ISOMIP like: 2 equations formulation (Hunter et al., 2006 for a short description) 461 ! ! 3eq = ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2016 for a short description) 462 ! ! oasis = fwfisf is given by oasis and pattern by file sn_isfcav_fwf 463 ! ! cn_isfcav_mlt = 2eq or 3eq cases: 464 cn_gammablk = 'vel' ! scheme to compute gammat/s (spe,ad15,hj99) 465 ! ! spe = constant transfert velocity (rn_gammat0, rn_gammas0) 466 ! ! vel = velocity dependent transfert velocity (u* * gammat/s) (Asay-Davis et al. 2016 for a short description) 467 ! ! vel_stab = velocity and stability dependent transfert coeficient (Holland et al. 1999 for a complete description) 468 rn_gammat0 = 1.4e-2 ! gammat coefficient used in spe, vel and vel_stab gamma computation method 469 rn_gammas0 = 4.0e-4 ! gammas coefficient used in spe, vel and vel_stab gamma computation method 470 ! 471 rn_htbl = 30. ! thickness of the top boundary layer (Losh et al. 2008) 472 ! ! 0 => thickness of the tbl = thickness of the first wet cell 473 ! 474 !* 'spe' and 'oasis' case 475 !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________! 476 ! ! file name ! frequency (hours) ! variable ! time interp.! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 477 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 478 sn_isfcav_fwf = 'isfmlt_cav', -12. , 'fwflisf' , .false. , .true. , 'yearly' , '' , '' , '' 479 ! 480 ! ---------------- cavities parametrised ------------------------------- 481 ! 482 ln_isfpar_mlt = .false. ! ice shelf melting parametrised 483 cn_isfpar_mlt = 'spe' ! ice shelf melting parametrisation (spe/bg03/oasis) 484 ! ! spe = fwfisf is read from a forcing field 485 ! ! bg03 = melt computed using Beckmann and Goosse parametrisation 486 ! ! oasis = fwfisf is given by oasis and pattern by file sn_isfpar_fwf 487 ! 488 !* all cases 489 !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________! 490 ! ! file name ! frequency (hours) ! variable ! time interp.! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 491 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 492 sn_isfpar_zmax = 'isfmlt_par', 0 ,'sozisfmax', .false. , .true. , 'yearly' , '' , '' , '' 493 sn_isfpar_zmin = 'isfmlt_par', 0 ,'sozisfmin', .false. , .true. , 'yearly' , '' , '' , '' 494 !* 'spe' and 'oasis' case 495 sn_isfpar_fwf = 'isfmlt_par' , -12. ,'sofwfisf' , .false. , .true. , 'yearly' , '' , '' , '' 496 !* 'bg03' case 497 sn_isfpar_Leff = 'isfmlt_par', 0. ,'Leff' , .false. , .true. , 'yearly' , '' , '' , '' 498 ! 499 ! ---------------- ice sheet coupling ------------------------------- 500 ! 501 ln_isfcpl = .false. 502 nn_drown = 10 ! number of iteration of the extrapolation loop (fill the new wet cells) 503 ln_isfcpl_cons = .false. 484 504 / 485 505 !----------------------------------------------------------------------- -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/cfgs/ref_cfgs.txt
r12658 r12721 9 9 ORCA2_ICE_PISCES OCE TOP ICE NST 10 10 SPITZ12 OCE ICE 11 WED025 OCE ICE -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/BDY/bdyvol.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DIA/diahsb.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DIA/diawri.F90
r12660 r12721 26 26 !!---------------------------------------------------------------------- 27 27 USE oce ! ocean dynamics and tracers 28 USE isf_oce 29 USE isfcpl 28 30 USE dom_oce ! ocean space and time domain 29 31 USE phycst ! physical constants … … 923 925 CALL iom_rstput( 0, 0, inum, 'vovecrtz', wn ) ! now k-velocity 924 926 ENDIF 927 CALL iom_rstput( 0, 0, inum, 'risfdep', risfdep ) ! now k-velocity 928 CALL iom_rstput( 0, 0, inum, 'ht_n' , ht_n ) ! now k-velocity 929 930 IF ( ln_isf ) THEN 931 IF (ln_isfcav_mlt) THEN 932 CALL iom_rstput( 0, 0, inum, 'fwfisf_cav', fwfisf_cav ) ! now k-velocity 933 CALL iom_rstput( 0, 0, inum, 'rhisf_cav_tbl', rhisf_tbl_cav ) ! now k-velocity 934 CALL iom_rstput( 0, 0, inum, 'rfrac_cav_tbl', rfrac_tbl_cav ) ! now k-velocity 935 CALL iom_rstput( 0, 0, inum, 'misfkb_cav', REAL(misfkb_cav,8) ) ! now k-velocity 936 CALL iom_rstput( 0, 0, inum, 'misfkt_cav', REAL(misfkt_cav,8) ) ! now k-velocity 937 CALL iom_rstput( 0, 0, inum, 'mskisf_cav', REAL(mskisf_cav,8), ktype = jp_i1 ) 938 END IF 939 IF (ln_isfpar_mlt) THEN 940 CALL iom_rstput( 0, 0, inum, 'isfmsk_par', REAL(mskisf_par,8) ) ! now k-velocity 941 CALL iom_rstput( 0, 0, inum, 'fwfisf_par', fwfisf_par ) ! now k-velocity 942 CALL iom_rstput( 0, 0, inum, 'rhisf_par_tbl', rhisf_tbl_par ) ! now k-velocity 943 CALL iom_rstput( 0, 0, inum, 'rfrac_par_tbl', rfrac_tbl_par ) ! now k-velocity 944 CALL iom_rstput( 0, 0, inum, 'misfkb_par', REAL(misfkb_par,8) ) ! now k-velocity 945 CALL iom_rstput( 0, 0, inum, 'misfkt_par', REAL(misfkt_par,8) ) ! now k-velocity 946 CALL iom_rstput( 0, 0, inum, 'mskisf_par', REAL(mskisf_par,8), ktype = jp_i1 ) 947 END IF 948 END IF 949 925 950 IF( ALLOCATED(ahtu) ) THEN 926 951 CALL iom_rstput( 0, 0, inum, 'ahtu', ahtu ) ! aht at u-point -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DOM/dom_oce.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DOM/domain.F90
r12660 r12721 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 … … 294 286 & ln_cfmeta, ln_iscpl, ln_xios_read, nn_wxios, ln_rstdate, ln_rst_eos 295 287 296 NAMELIST/namdom/ ln_linssh, rn_isfhmin, rn_rdt, rn_atfp, ln_crs, ln_meshmask 288 NAMELIST/namdom/ ln_linssh, rn_rdt, rn_atfp, ln_crs, ln_meshmask 289 297 290 #if defined key_netcdf4 298 291 NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip … … 345 338 WRITE(numout,*) ' overwrite an existing file ln_clobber = ', ln_clobber 346 339 WRITE(numout,*) ' NetCDF chunksize (bytes) nn_chunksz = ', nn_chunksz 347 WRITE(numout,*) ' IS coupling at the restart step ln_iscpl = ', ln_iscpl348 340 WRITE(numout,*) ' check restart equation of state ln_rst_eos = ', ln_rst_eos 349 341 … … 421 413 WRITE(numout,*) ' linear free surface (=T) ln_linssh = ', ln_linssh 422 414 WRITE(numout,*) ' create mesh/mask file ln_meshmask = ', ln_meshmask 423 WRITE(numout,*) ' treshold to open the isf cavity rn_isfhmin = ', rn_isfhmin, ' [m]'424 415 WRITE(numout,*) ' ocean time step rn_rdt = ', rn_rdt 425 416 WRITE(numout,*) ' asselin time filter parameter rn_atfp = ', rn_atfp -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DOM/domvvl.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DOM/domwri.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DOM/domzgr.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DOM/istate.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DYN/divhor.F90
r12658 r12721 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 … … 86 85 END DO 87 86 END DO 87 ! 88 88 #if defined key_agrif 89 89 IF( .NOT. Agrif_Root() ) THEN … … 95 95 #endif 96 96 ! 97 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) 98 98 ! 99 99 #if defined key_asminc … … 101 101 ! 102 102 #endif 103 IF( ln_isf ) CALL sbc_isf_div( hdivn ) !== ice shelf ==! (update hdivn field)104 103 ! 105 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) 106 105 ! 107 106 CALL lbc_lnk( 'divhor', hdivn, 'T', 1. ) ! (no sign change) -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DYN/dynhpg.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DYN/dynspg_ts.F90
r12658 r12721 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 … … 331 331 ! ! --------------------------------------------------- ! 332 332 IF (ln_bt_fw) THEN ! FORWARD integration: use kt+1/2 fluxes (NOW+1/2) 333 zssh_frc(:,:) = r1_rau0 * ( emp(:,:) - rnf(:,:) + fwfisf(:,:))333 zssh_frc(:,:) = r1_rau0 * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) 334 334 ELSE ! CENTRED integration: use kt-1/2 + kt+1/2 fluxes (NOW) 335 335 zztmp = r1_rau0 * r1_2 336 zssh_frc(:,:) = zztmp * ( emp(:,:) + emp_b(:,:) - rnf(:,:) - rnf_b(:,:) + fwfisf(:,:) + fwfisf_b(:,:) ) 336 zssh_frc(:,:) = zztmp * ( emp(:,:) + emp_b(:,:) & 337 & - rnf(:,:) - rnf_b(:,:) & 338 & + fwfisf_cav(:,:) + fwfisf_cav_b(:,:) & 339 & + fwfisf_par(:,:) + fwfisf_par_b(:,:) ) 337 340 ENDIF 338 341 ! != Add Stokes drift divergence =! (if exist) … … 340 343 zssh_frc(:,:) = zssh_frc(:,:) + div_sd(:,:) 341 344 ENDIF 345 ! 346 ! ! ice sheet coupling 347 IF ( ln_isf .AND. ln_isfcpl ) THEN 348 ! 349 ! ice sheet coupling 350 IF( ln_rstart .AND. kt == nit000 ) THEN 351 zssh_frc(:,:) = zssh_frc(:,:) + risfcpl_ssh(:,:) 352 END IF 353 ! 354 ! conservation option 355 IF( ln_isfcpl_cons ) THEN 356 zssh_frc(:,:) = zssh_frc(:,:) + risfcpl_cons_ssh(:,:) 357 END IF 358 ! 359 END IF 342 360 ! 343 361 #if defined key_asminc -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/DYN/sshwzv.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/IOM/iom.F90
r12660 r12721 384 384 CALL iom_set_rstw_var_active('sshn') 385 385 CALL iom_set_rstw_var_active('rhop') 386 ! extra variable needed for the ice sheet coupling387 IF ( ln_iscpl ) THEN388 CALL iom_set_rstw_var_active('tmask')389 CALL iom_set_rstw_var_active('umask')390 CALL iom_set_rstw_var_active('vmask')391 CALL iom_set_rstw_var_active('smask')392 CALL iom_set_rstw_var_active('e3t_n')393 CALL iom_set_rstw_var_active('e3u_n')394 CALL iom_set_rstw_var_active('e3v_n')395 CALL iom_set_rstw_var_active('gdepw_n')396 END IF397 386 ENDIF 398 387 IF(ln_diurnal) CALL iom_set_rstw_var_active('Dsst') -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/IOM/restart.F90
r12660 r12721 172 172 CALL iom_rstput( kt, nitrst, numrow, 'sshn' , sshn, ldxios = lwxios ) 173 173 CALL iom_rstput( kt, nitrst, numrow, 'rhop' , rhop, ldxios = lwxios ) 174 ! extra variable needed for the ice sheet coupling175 IF ( ln_iscpl ) THEN176 CALL iom_rstput( kt, nitrst, numrow, 'tmask' , tmask, ldxios = lwxios ) ! need to extrapolate T/S177 CALL iom_rstput( kt, nitrst, numrow, 'umask' , umask, ldxios = lwxios ) ! need to correct barotropic velocity178 CALL iom_rstput( kt, nitrst, numrow, 'vmask' , vmask, ldxios = lwxios ) ! need to correct barotropic velocity179 CALL iom_rstput( kt, nitrst, numrow, 'smask' , ssmask, ldxios = lwxios) ! need to correct barotropic velocity180 CALL iom_rstput( kt, nitrst, numrow, 'e3t_n', e3t_n(:,:,:), ldxios = lwxios ) ! need to compute temperature correction181 CALL iom_rstput( kt, nitrst, numrow, 'e3u_n', e3u_n(:,:,:), ldxios = lwxios ) ! need to compute bt conservation182 CALL iom_rstput( kt, nitrst, numrow, 'e3v_n', e3v_n(:,:,:), ldxios = lwxios ) ! need to compute bt conservation183 CALL iom_rstput( kt, nitrst, numrow, 'gdepw_n', gdepw_n(:,:,:), ldxios = lwxios ) ! need to compute extrapolation if vvl184 END IF185 174 ENDIF 186 175 CALL iom_rstput( kt, nitrst, numrow, 'neos' , REAL(neos) , ldxios = lwxios) ! equation of state -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/LDF/ldfslp.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/SBC/sbc_oce.F90
r12658 r12721 43 43 LOGICAL , PUBLIC :: ln_dm2dc !: Daily mean to Diurnal Cycle short wave (qsr) 44 44 LOGICAL , PUBLIC :: ln_rnf !: runoffs / runoff mouths 45 LOGICAL , PUBLIC :: ln_isf !: ice shelf melting46 45 LOGICAL , PUBLIC :: ln_ssr !: Sea Surface restoring on SST and/or SSS 47 46 LOGICAL , PUBLIC :: ln_apr_dyn !: Atmospheric pressure forcing used on dynamics (ocean & ice) … … 122 121 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_tot !: total E-P over ocean and ice [Kg/m2/s] 123 122 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fmmflx !: freshwater budget: freezing/melting [Kg/m2/s] 124 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rnf , rnf_b !: river runoff [Kg/m2/s] 125 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fwfisf , fwfisf_b !: ice shelf melting [Kg/m2/s] 126 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fwficb , fwficb_b !: iceberg melting [Kg/m2/s] 127 123 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rnf , rnf_b !: river runoff [Kg/m2/s] 124 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fwficb , fwficb_b !: iceberg melting [Kg/m2/s] 128 125 !! 129 126 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sbc_tsc, sbc_tsc_b !: sbc content trend [K.m/s] jpi,jpj,jpts … … 174 171 & sfx (jpi,jpj) , sfx_b(jpi,jpj) , emp_tot(jpi,jpj), fmmflx(jpi,jpj), STAT=ierr(2) ) 175 172 ! 176 ALLOCATE( fwfisf (jpi,jpj),rnf (jpi,jpj) , sbc_tsc (jpi,jpj,jpts) , qsr_hc (jpi,jpj,jpk) , &177 & fwfisf_b(jpi,jpj),rnf_b(jpi,jpj) , sbc_tsc_b(jpi,jpj,jpts) , qsr_hc_b(jpi,jpj,jpk) , &173 ALLOCATE( rnf (jpi,jpj) , sbc_tsc (jpi,jpj,jpts) , qsr_hc (jpi,jpj,jpk) , & 174 & rnf_b(jpi,jpj) , sbc_tsc_b(jpi,jpj,jpts) , qsr_hc_b(jpi,jpj,jpk) , & 178 175 & fwficb (jpi,jpj), fwficb_b(jpi,jpj), STAT=ierr(3) ) 179 176 ! -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/SBC/sbccpl.F90
r12658 r12721 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 ! … … 1401 1402 rnf(:,:) = rnf(:,:) + fwficb(:,:) ! iceberg added to runfofs 1402 1403 ENDIF 1403 IF( srcv(jpr_isf)%laction ) fwfisf(:,:) = - frcv(jpr_isf)%z3(:,:,1) ! fresh water flux from the isf (fwfisf <0 mean melting) 1404 ! 1405 ! ice shelf fwf 1406 IF( srcv(jpr_isf)%laction ) THEN 1407 fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1) ! fresh water flux from the isf (fwfisf <0 mean melting) 1408 END IF 1404 1409 1405 1410 IF( ln_mixcpl ) THEN ; emp(:,:) = emp(:,:) * xcplmask(:,:,0) + zemp(:,:) * zmsk(:,:) … … 1704 1709 ENDIF 1705 1710 IF( srcv(jpr_isf)%laction ) THEN ! iceshelf (fwfisf <0 mean melting) 1706 fwfisf (:,:) = - frcv(jpr_isf)%z3(:,:,1)1711 fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1) 1707 1712 ENDIF 1708 1713 … … 1743 1748 ENDIF 1744 1749 IF( srcv(jpr_isf)%laction ) THEN ! iceshelf (fwfisf <0 mean melting) 1745 fwfisf (:,:) = - frcv(jpr_isf)%z3(:,:,1)1750 fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1) 1746 1751 ENDIF 1747 1752 ! -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/SBC/sbcfwb.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/SBC/sbcmod.F90
r12658 r12721 37 37 #endif 38 38 USE sbcice_cice ! surface boundary condition: CICE sea-ice model 39 USE sbcisf ! surface boundary condition: ice-shelf40 39 USE sbccpl ! surface boundary condition: coupled formulation 41 40 USE cpl_oasis3 ! OASIS routines for coupling … … 43 42 USE sbcrnf ! surface boundary condition: runoffs 44 43 USE sbcapr ! surface boundary condition: atmo pressure 45 USE sbcisf ! surface boundary condition: ice shelf46 44 USE sbcfwb ! surface boundary condition: freshwater budget 47 45 USE icbstp ! Icebergs … … 91 89 LOGICAL :: ll_purecpl, ll_opa, ll_not_nemo ! local logical 92 90 !! 93 NAMELIST/namsbc/ nn_fsbc , 94 & ln_usr , ln_flx , ln_blk ,&95 & ln_cpl , ln_mixcpl , nn_components,&96 & nn_ice , ln_ice_embd, 97 & ln_traqsr, ln_dm2dc ,&98 & ln_rnf , nn_fwb , ln_ssr , ln_isf , ln_apr_dyn ,&99 & ln_wave , ln_cdgw , ln_sdw , ln_tauwoc , ln_stcor ,&100 & ln_tauw , nn_lsm , nn_sdrift91 NAMELIST/namsbc/ nn_fsbc , & 92 & ln_usr , ln_flx , ln_blk , & 93 & ln_cpl , ln_mixcpl , nn_components, & 94 & nn_ice , ln_ice_embd, & 95 & ln_traqsr, ln_dm2dc , & 96 & ln_rnf , nn_fwb , ln_ssr , ln_apr_dyn, & 97 & ln_wave , ln_cdgw , ln_sdw , ln_tauwoc , ln_stcor, & 98 & ln_tauw , nn_lsm , nn_sdrift 101 99 !!---------------------------------------------------------------------- 102 100 ! … … 153 151 WRITE(numout,*) ' Patm gradient added in ocean & ice Eqs. ln_apr_dyn = ', ln_apr_dyn 154 152 WRITE(numout,*) ' runoff / runoff mouths ln_rnf = ', ln_rnf 155 WRITE(numout,*) ' iceshelf formulation ln_isf = ', ln_isf156 153 WRITE(numout,*) ' nb of iterations if land-sea-mask applied nn_lsm = ', nn_lsm 157 154 WRITE(numout,*) ' surface wave ln_wave = ', ln_wave … … 239 236 #endif 240 237 ! 241 IF( .NOT.ln_isf ) THEN !* No ice-shelf in the domain : allocate and set to zero242 IF( sbc_isf_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'sbc_init : unable to allocate sbc_isf arrays' )243 fwfisf (:,:) = 0._wp ; risf_tsc (:,:,:) = 0._wp244 fwfisf_b(:,:) = 0._wp ; risf_tsc_b(:,:,:) = 0._wp245 END IF246 238 ! 247 239 IF( sbc_ssr_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'sbc_init : unable to allocate sbc_ssr arrays' ) … … 341 333 IF( ln_ssr ) CALL sbc_ssr_init ! Sea-Surface Restoring initialization 342 334 ! 343 IF( ln_isf ) CALL sbc_isf_init ! Compute iceshelves344 !345 335 CALL sbc_rnf_init ! Runof initialization 346 336 ! … … 409 399 rnf_b (:,: ) = rnf (:,: ) 410 400 rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:) 411 ENDIF412 IF( ln_isf ) THEN413 fwfisf_b (:,: ) = fwfisf (:,: )414 risf_tsc_b(:,:,:) = risf_tsc(:,:,:)415 401 ENDIF 416 402 ! … … 462 448 IF( .NOT. ln_passive_mode ) CALL lbc_lnk( 'sbcmod', emp, 'T', 1. ) ! ensure restartability with icebergs 463 449 ENDIF 464 465 IF( ln_isf ) CALL sbc_isf( kt ) ! compute iceshelves466 450 467 451 IF( ln_rnf ) CALL sbc_rnf( kt ) ! add runoffs to fresh water fluxes … … 568 552 ! 569 553 IF(ln_ctl) THEN ! print mean trends (used for debugging) 570 CALL prt_ctl(tab2d_1=fr_i , clinfo1=' fr_i- : ', mask1=tmask )571 CALL prt_ctl(tab2d_1=(emp-rnf + fwfisf), clinfo1=' emp-rnf- : ', mask1=tmask )572 CALL prt_ctl(tab2d_1=(sfx-rnf + fwfisf), clinfo1=' sfx-rnf- : ', mask1=tmask )554 CALL prt_ctl(tab2d_1=fr_i , clinfo1=' fr_i - : ', mask1=tmask ) 555 CALL prt_ctl(tab2d_1=(emp-rnf) , clinfo1=' emp-rnf - : ', mask1=tmask ) 556 CALL prt_ctl(tab2d_1=(sfx-rnf) , clinfo1=' sfx-rnf - : ', mask1=tmask ) 573 557 CALL prt_ctl(tab2d_1=qns , clinfo1=' qns - : ', mask1=tmask ) 574 558 CALL prt_ctl(tab2d_1=qsr , clinfo1=' qsr - : ', mask1=tmask ) -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/SBC/sbcssm.F90
r12660 r12721 70 70 ! 71 71 ! !* surface T-, U-, V- ocean level variables (T, S, depth, velocity) 72 DO jj = 1, jpj 73 DO ji = 1, jpi 74 zts(ji,jj,jp_tem) = tsn(ji,jj,mikt(ji,jj),jp_tem) 75 zts(ji,jj,jp_sal) = tsn(ji,jj,mikt(ji,jj),jp_sal) 76 END DO 77 END DO 72 zts(:,:,jp_tem) = tsn(:,:,1,jp_tem) 73 zts(:,:,jp_sal) = tsn(:,:,1,jp_sal) 78 74 ! 79 75 IF( nn_fsbc == 1 ) THEN ! Instantaneous surface fields ! -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/TRA/tranxt.F90
r12658 r12721 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 zscale = zfact2 * e3t_n(ji,jj,jk) / ( ht_n(ji,jj) + 1._wp - ssmask(ji,jj) ) 315 ze3t_f = ze3t_f - zscale * ( emp_b(ji,jj) - emp(ji,jj) ) 316 IF ( ll_rnf ) ze3t_f = ze3t_f + zscale * ( rnf_b(ji,jj) - rnf(ji,jj) ) 317 IF ( ll_isf ) ze3t_f = ze3t_f - zscale * ( fwfisf_b(ji,jj) - fwfisf(ji,jj) ) 318 319 IF( jk == mikt(ji,jj) ) THEN ! first level 314 IF( jk == 1 ) THEN ! first level 315 ze3t_f = ze3t_f - zfact2 * ( emp_b(ji,jj) - emp(ji,jj) ) 320 316 ztc_f = ztc_f - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 317 ENDIF 318 ! 319 ! river runoff 320 IF( ln_rnf_depth ) THEN 321 ! Rivers are not just at the surface must go down to nk_rnf(ji,jj) 322 IF( jk <= nk_rnf(ji,jj) ) THEN 323 ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj) ) ) & 324 & * ( e3t_n(ji,jj,jk) / h_rnf(ji,jj) ) 325 ENDIF 326 ELSE 327 IF( jk == 1 ) THEN ! first level 328 ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj) ) ) 329 ENDIF 321 330 ENDIF 322 331 ! … … 324 333 IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr ) & 325 334 & ztc_f = ztc_f - zfact1 * ( qsr_hc(ji,jj,jk) - qsr_hc_b(ji,jj,jk) ) 326 ! 327 ! river runoff 335 ! 328 336 IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) ) & 329 337 & ztc_f = ztc_f - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) & 330 338 & * e3t_n(ji,jj,jk) / h_rnf(ji,jj) 331 339 ! 332 340 ! ice shelf 333 341 IF( ll_isf ) THEN 334 ! level fully include in the Losch_2008 ice shelf boundary layer 335 IF ( jk >= misfkt(ji,jj) .AND. jk < misfkb(ji,jj) ) & 336 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 337 & * e3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) 338 ! level partially include in Losch_2008 ice shelf boundary layer 339 IF ( jk == misfkb(ji,jj) ) & 340 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 341 & * 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 ! 342 390 END IF 343 391 ! -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/TRA/trasbc.F90
r12658 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/ZDF/zdfmxl.F90
r12660 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/nemogcm.F90
r12658 r12721 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 … … 430 431 RETURN ! end of initialization 431 432 ENDIF 433 ! 432 434 433 435 CALL istate_init ! ocean initial state (Dynamics and tracers) … … 470 472 ! ! Icebergs 471 473 CALL icb_init( rdt, nit000) ! initialise icebergs instance 474 475 ! ice shelf 476 CALL isf_init 472 477 473 478 ! ! Misc. options -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/step.F90
r12660 r12721 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 … … 230 231 CALL tra_sbc ( kstp ) ! surface boundary condition 231 232 IF( ln_traqsr ) CALL tra_qsr ( kstp ) ! penetrative solar radiation qsr 233 IF( ln_isf ) CALL tra_isf ( kstp ) ! ice shelf heat flux 232 234 IF( ln_trabbc ) CALL tra_bbc ( kstp ) ! bottom heat flux 233 235 IF( ln_trabbl ) CALL tra_bbl ( kstp ) ! advective (and/or diffusive) bottom boundary layer scheme -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/src/OCE/step_oce.F90
r12660 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/ISOMIP/EXPREF/file_def_nemo-oce.xml
r9572 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/ISOMIP/EXPREF/namelist_cfg
r12206 r12721 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 *** !! … … 66 97 ! 67 98 !----------------------------------------------------------------------- 68 &namsbc ! Surface Boundary Condition (surface module) 69 !----------------------------------------------------------------------- 70 nn_fsbc = 1 ! frequency of surface boundary condition computation 99 &namsbc ! Surface Boundary Condition manager (default: NO selection) 100 !----------------------------------------------------------------------- 101 nn_fsbc = 1 ! frequency of SBC module call 102 ! ! (control sea-ice & iceberg model call) 71 103 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 / 104 / 105 !----------------------------------------------------------------------- 106 &namsbc_flx ! surface boundary condition : flux formulation (ln_flx =T) 107 !----------------------------------------------------------------------- 108 / 109 !----------------------------------------------------------------------- 110 &namsbc_blk ! namsbc_blk generic Bulk formula (ln_blk =T) 111 !----------------------------------------------------------------------- 112 113 / 114 !----------------------------------------------------------------------- 115 &namsbc_cpl ! coupled ocean/atmosphere model ("key_oasis3") 116 !----------------------------------------------------------------------- 117 118 / 119 !----------------------------------------------------------------------- 120 &namsbc_sas ! Stand-Alone Surface module: ocean data (SAS_SRC only) 121 !----------------------------------------------------------------------- 122 123 / 124 !----------------------------------------------------------------------- 125 &namsbc_iif ! Ice-IF : use observed ice cover (nn_ice = 1) 126 !----------------------------------------------------------------------- 127 / 128 !----------------------------------------------------------------------- 129 &namtra_qsr ! penetrative solar radiation (ln_traqsr =T) 130 !----------------------------------------------------------------------- 131 132 / 133 !----------------------------------------------------------------------- 134 &namsbc_ssr ! surface boundary condition : sea surface restoring (ln_ssr =T) 135 !----------------------------------------------------------------------- 136 137 / 138 !----------------------------------------------------------------------- 139 &namsbc_rnf ! runoffs (ln_rnf =T) 140 !----------------------------------------------------------------------- 141 142 / 143 !----------------------------------------------------------------------- 144 &namsbc_apr ! Atmospheric pressure used as ocean forcing (ln_apr_dyn =T) 145 !----------------------------------------------------------------------- 146 147 / 148 !----------------------------------------------------------------------- 149 &namisf ! Top boundary layer (ISF) (default: OFF) 150 !----------------------------------------------------------------------- 151 ! 152 ! ---------------- ice shelf load ------------------------------- 153 ! 154 ! 155 ! ---------------- ice shelf melt formulation ------------------------------- 156 ! 157 ln_isf = .true. ! activate ice shelf module 158 cn_isfdir = './' ! directory for all ice shelf input file 159 ! 160 ! ---------------- cavities opened ------------------------------- 161 ! 162 ln_isfcav_mlt = .true. ! ice shelf melting into the cavity (need ln_isfcav = .true. in domain_cfg.nc) 163 cn_isfcav_mlt = '2eq' ! ice shelf melting formulation (spe/2eq/3eq/oasis) 164 ! ! spe = fwfisf is read from a forcing field 165 ! ! 2eq = ISOMIP like: 2 equations formulation (Hunter et al., 2006) 166 ! ! 3eq = ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2015) 167 ! ! oasis = fwfisf is given by oasis and pattern by file sn_isfcav_fwf 168 ! ! cn_isfcav_mlt = 2eq or 3eq cases: 169 cn_gammablk = 'spe' ! scheme to compute gammat/s (spe,ad15,hj99) 170 ! ! ad15 = velocity dependend Gamma (u* * gammat/s) (Jenkins et al. 2010) 171 ! ! hj99 = velocity and stability dependent Gamma (Holland et al. 1999) 172 rn_gammat0 = 1.e-4 ! gammat coefficient used in blk formula 173 rn_gammas0 = 1.e-4 ! gammas coefficient used in blk formula 174 ! 175 rn_htbl = 30. ! thickness of the top boundary layer (Losh et al. 2008) 176 ! ! 0 => thickness of the tbl = thickness of the first wet cell 177 ! 178 / 179 !----------------------------------------------------------------------- 180 &namsbc_wave ! External fields from wave model (ln_wave=T) 181 !----------------------------------------------------------------------- 182 / 183 !----------------------------------------------------------------------- 184 &namberg ! iceberg parameters (default: OFF) 185 !----------------------------------------------------------------------- 186 187 / 188 110 189 !!====================================================================== 111 190 !! *** Lateral boundary condition *** !! … … 124 203 rn_shlat = 0. ! free slip 125 204 / 205 !----------------------------------------------------------------------- 206 &namagrif ! AGRIF zoom ("key_agrif") 207 !----------------------------------------------------------------------- 208 / 209 !----------------------------------------------------------------------- 210 &nam_tide ! tide parameters (default: OFF) 211 !----------------------------------------------------------------------- 212 / 213 !----------------------------------------------------------------------- 214 &nambdy ! unstructured open boundaries (default: OFF) 215 !----------------------------------------------------------------------- 216 / 217 !----------------------------------------------------------------------- 218 &nambdy_dta ! open boundaries - external data (see nam_bdy) 219 !----------------------------------------------------------------------- 220 221 / 222 !----------------------------------------------------------------------- 223 &nambdy_tide ! tidal forcing at open boundaries (default: OFF) 224 !----------------------------------------------------------------------- 225 / 226 126 227 !!====================================================================== 127 228 !! *** Top/Bottom boundary condition *** !! … … 145 246 / 146 247 !----------------------------------------------------------------------- 147 &namdrg_top ! TOP friction (ln_ isfcav=T)248 &namdrg_top ! TOP friction (ln_OFF =F & ln_isfcav=T) 148 249 !----------------------------------------------------------------------- 149 250 rn_Cd0 = 2.5e-3 ! drag coefficient [-] … … 156 257 / 157 258 !----------------------------------------------------------------------- 158 &namdrg_bot ! BOTTOM friction 259 &namdrg_bot ! BOTTOM friction (ln_OFF =F) 159 260 !----------------------------------------------------------------------- 160 261 rn_Cd0 = 1.e-3 ! drag coefficient [-] … … 166 267 rn_boost = 50. ! local boost factor [-] 167 268 / 269 !----------------------------------------------------------------------- 270 &nambbc ! bottom temperature boundary condition (default: OFF) 271 !----------------------------------------------------------------------- 272 273 / 274 !----------------------------------------------------------------------- 275 &nambbl ! bottom boundary layer scheme (default: OFF) 276 !----------------------------------------------------------------------- 277 / 278 168 279 !!====================================================================== 169 280 !! Tracer (T-S) namelists !! … … 178 289 ! 179 290 !----------------------------------------------------------------------- 180 &nameos ! ocean Equation Of Seawater (default: OFF)291 &nameos ! ocean Equation Of Seawater (default: NO selection) 181 292 !----------------------------------------------------------------------- 182 293 ln_eos80 = .true. ! = Use EOS80 equation of state … … 199 310 rn_Ld = 10.e+3 ! lateral diffusive length [m] 200 311 / 312 !----------------------------------------------------------------------- 313 &namtra_mle ! mixed layer eddy parametrisation (Fox-Kemper) (default: OFF) 314 !----------------------------------------------------------------------- 315 / 316 !----------------------------------------------------------------------- 317 &namtra_eiv ! eddy induced velocity param. (default: OFF) 318 !----------------------------------------------------------------------- 319 / 320 !----------------------------------------------------------------------- 321 &namtra_dmp ! tracer: T & S newtonian damping (default: OFF) 322 !----------------------------------------------------------------------- 323 / 324 201 325 !!====================================================================== 202 326 !! *** Dynamics namelists *** !! … … 212 336 ! 213 337 !----------------------------------------------------------------------- 338 &nam_vvl ! vertical coordinate options (default: z-star) 339 !----------------------------------------------------------------------- 340 / 341 !----------------------------------------------------------------------- 214 342 &namdyn_adv ! formulation of the momentum advection (default: NO selection) 215 343 !----------------------------------------------------------------------- … … 218 346 / 219 347 !----------------------------------------------------------------------- 220 &namdyn_vor ! Vorticity / Coriolis scheme (default: OFF)348 &namdyn_vor ! Vorticity / Coriolis scheme (default: NO selection) 221 349 !----------------------------------------------------------------------- 222 350 ln_dynvor_ene = .true. ! energy conserving scheme … … 241 369 rn_Lv = 10.e+3 ! lateral viscous length [m] 242 370 / 371 !----------------------------------------------------------------------- 372 &namdta_dyn ! offline ocean input files (OFF_SRC only) 373 !----------------------------------------------------------------------- 374 375 / 376 243 377 !!====================================================================== 244 378 !! vertical physics namelists !! … … 253 387 ! 254 388 !----------------------------------------------------------------------- 255 &namzdf ! vertical physics 256 !----------------------------------------------------------------------- 257 ! ! type of vertical closure 389 &namzdf ! vertical physics manager (default: NO selection) 390 !----------------------------------------------------------------------- 391 ! ! type of vertical closure (required) 258 392 ln_zdfcst = .true. ! constant mixing 393 ! 394 ! ! convection 259 395 ln_zdfevd = .true. ! enhanced vertical diffusion 260 396 nn_evdm = 1 ! apply on tracer (=0) or on tracer and momentum (=1) 261 397 rn_evd = 0.1 ! mixing coefficient [m2/s] 262 398 ! ! coefficients 263 rn_avm0 = 1.e-3 ! vertical eddy viscosity [m2/s] 264 rn_avt0 = 5.e-5 ! vertical eddy diffusivity [m2/s] 265 / 399 rn_avm0 = 1.e-3 ! vertical eddy viscosity [m2/s] (background Kz if ln_zdfcst) 400 rn_avt0 = 5.e-5 ! vertical eddy diffusivity [m2/s] (background Kz if ln_zdfcst) 401 / 402 !----------------------------------------------------------------------- 403 &namzdf_ric ! richardson number dependent vertical diffusion (ln_zdfric =T) 404 !----------------------------------------------------------------------- 405 / 406 !----------------------------------------------------------------------- 407 &namzdf_tke ! turbulent eddy kinetic dependent vertical diffusion (ln_zdftke =T) 408 !----------------------------------------------------------------------- 409 / 410 !----------------------------------------------------------------------- 411 &namzdf_gls ! GLS vertical diffusion (ln_zdfgls =T) 412 !----------------------------------------------------------------------- 413 / 414 !----------------------------------------------------------------------- 415 &namzdf_osm ! OSM vertical diffusion (ln_zdfosm =T) 416 !----------------------------------------------------------------------- 417 / 418 !----------------------------------------------------------------------- 419 &namzdf_iwm ! internal wave-driven mixing parameterization (ln_zdfiwm =T) 420 !----------------------------------------------------------------------- 421 / 422 266 423 !!====================================================================== 267 424 !! *** Diagnostics namelists *** !! … … 279 436 !!====================================================================== 280 437 ! 438 !----------------------------------------------------------------------- 439 &namtrd ! trend diagnostics (default: OFF) 440 !----------------------------------------------------------------------- 441 / 442 !----------------------------------------------------------------------- 443 &namptr ! Poleward Transport Diagnostic (default: OFF) 444 !----------------------------------------------------------------------- 445 / 446 !----------------------------------------------------------------------- 447 &namhsb ! Heat and salt budgets (default: OFF) 448 !----------------------------------------------------------------------- 449 / 450 !----------------------------------------------------------------------- 451 &namdiu ! Cool skin and warm layer models (default: OFF) 452 !----------------------------------------------------------------------- 453 / 454 !----------------------------------------------------------------------- 455 &namflo ! float parameters ("key_float") 456 !----------------------------------------------------------------------- 457 / 458 !----------------------------------------------------------------------- 459 &nam_diaharm ! Harmonic analysis of tidal constituents ("key_diaharm") 460 !----------------------------------------------------------------------- 461 / 462 !----------------------------------------------------------------------- 463 &namdct ! transports through some sections ("key_diadct") 464 !----------------------------------------------------------------------- 465 / 466 !----------------------------------------------------------------------- 467 &nam_diatmb ! Top Middle Bottom Output (default: OFF) 468 !----------------------------------------------------------------------- 469 / 470 !----------------------------------------------------------------------- 471 &nam_dia25h ! 25h Mean Output (default: OFF) 472 !----------------------------------------------------------------------- 473 / 474 !----------------------------------------------------------------------- 475 &namnc4 ! netcdf4 chunking and compression settings ("key_netcdf4") 476 !----------------------------------------------------------------------- 477 / 478 281 479 !!====================================================================== 282 480 !! *** Observation & Assimilation *** !! … … 286 484 !!====================================================================== 287 485 ! 486 !----------------------------------------------------------------------- 487 &namobs ! observation usage switch (default: OFF) 488 !----------------------------------------------------------------------- 489 / 490 !----------------------------------------------------------------------- 491 &nam_asminc ! assimilation increments ('key_asminc') 492 !----------------------------------------------------------------------- 493 / 494 288 495 !!====================================================================== 289 496 !! *** Miscellaneous namelists *** !! -
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_flux_cen2_cfg
r10075 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_flux_ubs_cfg
r12206 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_eenH_cfg
r10075 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_een_cfg
r10075 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_ene_cfg
r10075 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_ens_cfg
r10075 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_flux_cen2_cfg
r10075 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_flux_ubs_cfg
r10075 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_eenH_cfg
r10075 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_een_cfg
r10075 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_ene_cfg
r10075 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_ens_cfg
r10075 r12721 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/UKMO/NEMO_4.0.2_GO8_package_ENHANCE-02_ISF_nemo/tests/demo_cfgs.txt
r10516 r12721 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.