Changeset 13472 for NEMO/trunk/src/OCE/ZDF/zdfdrg.F90
- Timestamp:
- 2020-09-16T15:05:19+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/ZDF/zdfdrg.F90
r13461 r13472 32 32 USE lib_mpp ! distributed memory computing 33 33 USE prtctl ! Print control 34 USE sbc_oce , ONLY : nn_ice 34 35 35 36 IMPLICIT NONE … … 46 47 LOGICAL :: ln_loglayer ! logarithmic drag: Cd = vkarmn/log(z/z0) 47 48 LOGICAL , PUBLIC :: ln_drgimp ! implicit top/bottom friction flag 48 49 LOGICAL , PUBLIC :: ln_drgice_imp ! implicit ice-ocean drag 49 50 ! !!* Namelist namdrg_top & _bot: TOP or BOTTOM coefficient namelist * 50 51 REAL(wp) :: rn_Cd0 !: drag coefficient [ - ] … … 226 227 INTEGER :: ios, ioptio ! local integers 227 228 !! 228 NAMELIST/namdrg/ ln_drg_OFF, ln_lin, ln_non_lin, ln_loglayer, ln_drgimp 229 NAMELIST/namdrg/ ln_drg_OFF, ln_lin, ln_non_lin, ln_loglayer, ln_drgimp, ln_drgice_imp 229 230 !!---------------------------------------------------------------------- 230 231 ! … … 247 248 WRITE(numout,*) ' logarithmic drag: Cd = vkarmn/log(z/z0) ln_loglayer = ', ln_loglayer 248 249 WRITE(numout,*) ' implicit friction ln_drgimp = ', ln_drgimp 250 WRITE(numout,*) ' implicit ice-ocean drag ln_drgice_imp =', ln_drgice_imp 249 251 ENDIF 250 252 ! … … 257 259 IF( ioptio /= 1 ) CALL ctl_stop( 'zdf_drg_init: Choose ONE type of drag coef in namdrg' ) 258 260 ! 261 IF ( ln_drgice_imp.AND.(.NOT.ln_drgimp) ) & 262 & CALL ctl_stop( 'zdf_drg_init: ln_drgice_imp=T requires ln_drgimp=T' ) 263 ! 264 IF ( ln_drgice_imp.AND.( nn_ice /=2 ) ) & 265 & CALL ctl_stop( 'zdf_drg_init: ln_drgice_imp=T requires si3' ) 259 266 ! 260 267 ! !== BOTTOM drag setting ==! (applied at seafloor) … … 267 274 ! !== TOP drag setting ==! (applied at the top of ocean cavities) 268 275 ! 269 IF( ln_isfcav ) THEN ! Ocean cavities: top friction setting 270 ALLOCATE( rCd0_top(jpi,jpj), rCdU_top(jpi,jpj) ) 276 IF( ln_isfcav.OR.ln_drgice_imp ) THEN ! Ocean cavities: top friction setting 277 ALLOCATE( rCdU_top(jpi,jpj) ) 278 ENDIF 279 ! 280 IF( ln_isfcav ) THEN 281 ALLOCATE( rCd0_top(jpi,jpj)) 271 282 CALL drg_init( 'TOP ' , mikt , & ! <== in 272 283 & r_Cdmin_top, r_Cdmax_top, r_z0_top, r_ke0_top, rCd0_top, rCdU_top ) ! ==> out
Note: See TracChangeset
for help on using the changeset viewer.