Changeset 11489
- Timestamp:
- 2019-09-02T15:30:17+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/ENHANCE-02_ISF_nemo
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/ENHANCE-02_ISF_nemo/cfgs/SHARED/namelist_ref
r11487 r11489 179 179 !! namsbc_rnf river runoffs (ln_rnf =T) 180 180 !! namsbc_apr Atmospheric Pressure (ln_apr_dyn =T) 181 !! namsbc_iscpl coupling option between land ice model and ocean (ln_isfcav =T)182 181 !! namsbc_wave external fields from wave model (ln_wave =T) 183 182 !! namberg iceberg floats (ln_icebergs=T) … … 216 215 ln_rnf = .false. ! runoffs (T => fill namsbc_rnf) 217 216 ln_apr_dyn = .false. ! Patm gradient added in ocean & ice Eqs. (T => fill namsbc_apr ) 218 ln_isf = .false. ! ice shelf (T => fill namsbc_isf & namsbc_iscpl)219 217 ln_wave = .false. ! Activate coupling with wave (T => fill namsbc_wave) 220 218 ln_cdgw = .false. ! Neutral drag coefficient read from wave model (T => ln_wave=.true. & fill namsbc_wave) … … 434 432 / 435 433 !----------------------------------------------------------------------- 436 &namisf ! Top boundary layer (ISF) (ln_isf = T .AND. ln_isfcav: read (ln_read_cfg=T) 437 !----------------------------------------------------------------------- or set or usr_def_zgr ) 438 cn_isfdir = './' 434 &namisf ! Top boundary layer (ISF) (default: OFF) 435 !----------------------------------------------------------------------- 436 ! 437 ! ---------------- general ------------------------------- 438 ! 439 ln_isf = .false. ! activate ice shelf module 440 cn_isfdir = './' ! directory for all ice shelf input file 441 ! 442 ! ---------------- cavities opened ------------------------------- 443 ! 439 444 cn_isfload = 'isomip' 440 445 ! 441 446 ln_isfcav_mlt = .false. ! ice shelf melting into the cavity 442 447 cn_isfcav_mlt = '3eq' ! ice shelf melting formulation (spe/2eq/3eq/oasis) … … 444 449 ! ! 2eq = ISOMIP like: 2 equations formulation (Hunter et al., 2006) 445 450 ! ! 3eq = ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2015) 446 ! ! oasis = fwfisf is given by oasis 451 ! ! oasis = fwfisf is given by oasis and pattern by file sn_isfcav_fwf 447 452 ! ! cn_isfcav_mlt = 2eq or 3eq cases: 448 453 cn_gammablk = 'ad15' ! scheme to compute gammat/s (spe,ad15,hj99) … … 460 465 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 461 466 sn_isfcav_fwf = 'isfmlt_cav', -12 , 'fwflisf' , .false. , .true. , 'yearly' , '' , '' , '' 462 463 467 ! 468 ! ---------------- cavities parametrised ------------------------------- 469 ! 464 470 ln_isfpar_mlt = .false. ! ice shelf melting parametrised 465 471 cn_isfpar_mlt = 'spe' ! ice shelf melting parametrisation (spe/bg03/oasis) 472 ! ! spe = fwfisf is read from a forcing field 473 ! ! bg03 = melt computed using Beckmann and Goosse parametrisation 474 ! ! oasis = fwfisf is given by oasis and pattern by file sn_isfpar_fwf 466 475 ! 467 476 !* all cases … … 475 484 !* 'bg03' case 476 485 sn_isfpar_Leff = 'isfmlt_par', 0 ,'Leff' , .false. , .true. , 'yearly' , '' , '' , '' 477 478 486 ! 487 ! ---------------- ice sheet coupling ------------------------------- 488 ! 479 489 ln_isfcpl = .false. 480 490 nn_drown = 10 ! number of iteration of the extrapolation loop (fill the new wet cells) -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isf.F90
r11423 r11489 30 30 ! 0.1 -------- ice shelf cavity parameter -------------- 31 31 CHARACTER(LEN=256), PUBLIC :: cn_isfdir 32 CHARACTER(LEN=256), PUBLIC :: cn_isfload !: ice shelf load computation method 33 ! 34 ! 0.2 -------- ice shelf cavity melt namelist parameter ------------- 32 ! 33 ! 0.2 -------- ice shelf cavity opened namelist parameter ------------- 35 34 LOGICAL , PUBLIC :: ln_isfcav_mlt !: logical for the use of ice shelf parametrisation 36 35 REAL(wp) , PUBLIC :: rn_gammat0 !: temperature exchange coeficient [] … … 39 38 CHARACTER(LEN=256), PUBLIC :: cn_gammablk !: gamma formulation 40 39 CHARACTER(LEN=256), PUBLIC :: cn_isfcav_mlt !: melt formulation (cavity/param) 40 CHARACTER(LEN=256), PUBLIC :: cn_isfload !: ice shelf load computation method 41 41 TYPE(FLD_N) , PUBLIC :: sn_isfcav_fwf !: information about the isf melting file to be read 42 42 ! 43 ! 0.3 -------- ice shelf param. meltnamelist parameter -------------43 ! 0.3 -------- ice shelf cavity parametrised namelist parameter ------------- 44 44 LOGICAL , PUBLIC :: ln_isfpar_mlt !: logical for the computation of melt inside the cavity 45 45 CHARACTER(LEN=256), PUBLIC :: cn_isfpar_mlt !: melt formulation (cavity/param) -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfstp.F90
r11486 r11489 127 127 INTEGER :: ji, jj 128 128 !!---------------------------------------------------------------------- 129 NAMELIST/namisf/ ln_isfcav_mlt, cn_isfcav_mlt, cn_gammablk, rn_gammat0, rn_gammas0, rn_htbl, sn_isfcav_fwf, & 129 NAMELIST/namisf/ ln_isf , & 130 & ln_isfcav_mlt, cn_isfcav_mlt, cn_gammablk, rn_gammat0, rn_gammas0, rn_htbl, sn_isfcav_fwf, & 130 131 & ln_isfpar_mlt, cn_isfpar_mlt, sn_isfpar_fwf, sn_isfpar_zmin, sn_isfpar_zmax, sn_isfpar_Leff, & 131 132 & ln_isfcpl , nn_drown, ln_isfcpl_cons, & … … 143 144 risf_par_tsc(:,:,:) = 0.0_wp ; risf_par_tsc_b(:,:,:) = 0.0_wp 144 145 ! 145 ! terminate routine now if no ice shelf melt formulation specify146 IF ( .NOT. ln_isf ) RETURN147 !148 146 REWIND( numnam_ref ) ! Namelist namsbc_rnf in reference namelist : Runoffs 149 147 READ ( numnam_ref, namisf, IOSTAT = ios, ERR = 901) … … 161 159 WRITE(numout,*) ' Namelist namisf :' 162 160 ! 163 WRITE(numout,*) ' melt inside the cavity ln_isfcav_mlt = ', ln_isfcav_mlt 164 IF ( ln_isfcav ) THEN 165 WRITE(numout,*) ' melt formulation cn_isfcav_mlt = ', TRIM(cn_isfcav_mlt) 166 WRITE(numout,*) ' thickness of the top boundary layer rn_htbl = ', rn_htbl 167 WRITE(numout,*) ' gamma formulation cn_gammablk = ', TRIM(cn_gammablk) 168 IF ( TRIM(cn_gammablk) .NE. 'spe' ) THEN 169 WRITE(numout,*) ' gammat coefficient rn_gammat0 = ', rn_gammat0 170 WRITE(numout,*) ' gammas coefficient rn_gammas0 = ', rn_gammas0 171 WRITE(numout,*) ' top drag coef. used (from namdrg_top) rn_Cd0 = ', r_Cdmin_top 161 WRITE(numout,*) ' ice shelf cavity (open or parametrised) ln_isf = ', ln_isf 162 ! 163 IF ( ln_isf ) THEN 164 WRITE(numout,*) ' melt inside the cavity ln_isfcav_mlt = ', ln_isfcav_mlt 165 IF ( ln_isfcav ) THEN 166 WRITE(numout,*) ' melt formulation cn_isfcav_mlt = ', TRIM(cn_isfcav_mlt) 167 WRITE(numout,*) ' thickness of the top boundary layer rn_htbl = ', rn_htbl 168 WRITE(numout,*) ' gamma formulation cn_gammablk = ', TRIM(cn_gammablk) 169 IF ( TRIM(cn_gammablk) .NE. 'spe' ) THEN 170 WRITE(numout,*) ' gammat coefficient rn_gammat0 = ', rn_gammat0 171 WRITE(numout,*) ' gammas coefficient rn_gammas0 = ', rn_gammas0 172 WRITE(numout,*) ' top drag coef. used (from namdrg_top) rn_Cd0 = ', r_Cdmin_top 173 END IF 172 174 END IF 173 END IF 174 WRITE(numout,*) '' 175 ! 176 WRITE(numout,*) ' ice shelf melt parametrisation ln_isfpar_mlt = ', ln_isfpar_mlt 177 IF ( ln_isfpar_mlt ) THEN 178 WRITE(numout,*) ' isf parametrisation formulation cn_isfpar_mlt = ', TRIM(cn_isfpar_mlt) 179 END IF 180 WRITE(numout,*) '' 181 ! 182 WRITE(numout,*) ' Coupling to an ice sheet model ln_isfcpl = ', ln_isfcpl 183 IF ( ln_isfcpl ) THEN 184 WRITE(numout,*) ' conservation activated ln_isfcpl_cons = ', ln_isfcpl_cons 185 WRITE(numout,*) ' number of call of the extrapolation loop = ', nn_drown 186 ENDIF 187 ! 188 WRITE(numout,*) ' Ice shelf load method cn_isfload = ', TRIM(cn_isfload) 189 175 WRITE(numout,*) '' 176 ! 177 WRITE(numout,*) ' ice shelf melt parametrisation ln_isfpar_mlt = ', ln_isfpar_mlt 178 IF ( ln_isfpar_mlt ) THEN 179 WRITE(numout,*) ' isf parametrisation formulation cn_isfpar_mlt = ', TRIM(cn_isfpar_mlt) 180 END IF 181 WRITE(numout,*) '' 182 ! 183 WRITE(numout,*) ' Coupling to an ice sheet model ln_isfcpl = ', ln_isfcpl 184 IF ( ln_isfcpl ) THEN 185 WRITE(numout,*) ' conservation activated ln_isfcpl_cons = ', ln_isfcpl_cons 186 WRITE(numout,*) ' number of call of the extrapolation loop = ', nn_drown 187 ENDIF 188 ! 189 WRITE(numout,*) ' Ice shelf load method cn_isfload = ', TRIM(cn_isfload) 190 ELSE 191 IF ( ln_isfcav ) THEN 192 WRITE(numout,*) '' 193 WRITE(numout,*) ' W A R N I N G: ice shelf cavities are open BUT no melt will be computed or read from file !' 194 WRITE(numout,*) '' 195 END IF 196 END IF 197 198 END IF 199 ! 200 !--------------------------------------------------------------------------------------------------------------------- 201 ! initialisation ice shelf load 202 IF ( ln_isfcav ) THEN 203 ! 204 ! compute ice shelf mask 205 mskisf_cav(:,:) = (1._wp - tmask(:,:,1)) * ssmask(:,:) 206 ! 207 ! compute ice shelf load 208 CALL isf_load( risfload ) 209 ! 190 210 END IF 191 211 ! … … 196 216 & CALL ctl_stop('ice shelf melt in the cavity activated (ln_isfcav_mlt) but no cavity detected in domcfg (ln_isfcav), STOP' ) 197 217 ! 218 ! ice sheet coupling without cavity 219 IF ( ln_isfcpl .AND. (.NOT. ln_isfcav) ) & 220 & CALL ctl_stop('coupling with an ice sheet model detected (ln_isfcpl) but no cavity detected in domcfg (ln_isfcav), STOP' ) 221 ! 198 222 IF ( ln_isfcpl .AND. ln_isfcpl_cons .AND. ln_linssh ) & 199 223 & CALL ctl_stop( 'The coupling between NEMO and an ice sheet model with the conservation option does not work with the linssh option' ) … … 219 243 END IF 220 244 ! 221 !--------------------------------------------------------------------------------------------------------------------- 222 ! initialisation ice shelf load 223 IF ( ln_isfcav ) THEN 224 ! 225 ! compute ice shelf mask 226 mskisf_cav(:,:) = (1._wp - tmask(:,:,1)) * ssmask(:,:) 227 ! 228 ! compute ice shelf load 229 CALL isf_load( risfload ) 230 ! 231 END IF 245 ! terminate routine now if no ice shelf melt formulation specify 246 IF ( .NOT. ln_isf ) RETURN 232 247 ! 233 248 ! initialisation useful variable -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/SBC/sbcmod.F90
r11395 r11489 42 42 USE sbcrnf ! surface boundary condition: runoffs 43 43 USE sbcapr ! surface boundary condition: atmo pressure 44 USE isf ! surface boundary condition: ice shelf45 44 USE sbcfwb ! surface boundary condition: freshwater budget 46 45 USE icbstp ! Icebergs … … 90 89 LOGICAL :: ll_purecpl, ll_opa, ll_not_nemo ! local logical 91 90 !! 92 NAMELIST/namsbc/ nn_fsbc , 93 & ln_usr , ln_flx , ln_blk ,&94 & ln_cpl , ln_mixcpl , nn_components,&95 & nn_ice , ln_ice_embd, 96 & ln_traqsr, ln_dm2dc ,&97 & ln_rnf , nn_fwb , ln_ssr , ln_isf , ln_apr_dyn ,&98 & ln_wave , ln_cdgw , ln_sdw , ln_tauwoc , ln_stcor ,&99 & 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 100 99 !!---------------------------------------------------------------------- 101 100 ! … … 152 151 WRITE(numout,*) ' Patm gradient added in ocean & ice Eqs. ln_apr_dyn = ', ln_apr_dyn 153 152 WRITE(numout,*) ' runoff / runoff mouths ln_rnf = ', ln_rnf 154 WRITE(numout,*) ' iceshelf formulation ln_isf = ', ln_isf155 153 WRITE(numout,*) ' nb of iterations if land-sea-mask applied nn_lsm = ', nn_lsm 156 154 WRITE(numout,*) ' surface wave ln_wave = ', ln_wave -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/TRA/trasbc.F90
r11395 r11489 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 … … 60 61 !! (1) Fext, external forcing (i.e. flux through the (air+ice)-sea interface); 61 62 !! (2) Fwe , tracer carried with the water that is exchanged with air+ice. 62 !! The input forcing fields (emp, rnf, sfx , isf) contain Fext+Fwe,63 !! The input forcing fields (emp, rnf, sfx) contain Fext+Fwe, 63 64 !! they are simply added to the tracer trend (tsa). 64 65 !! In linear free surface case (ln_linssh=T), the volume of the
Note: See TracChangeset
for help on using the changeset viewer.