- Timestamp:
- 2020-05-19T15:59:10+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/ZDF/zdfdrg.F90
r11536 r12953 46 46 LOGICAL :: ln_loglayer ! logarithmic drag: Cd = vkarmn/log(z/z0) 47 47 LOGICAL , PUBLIC :: ln_drgimp ! implicit top/bottom friction flag 48 LOGICAL , PUBLIC :: ln_drgice_imp ! implicit ice-ocean drag 48 49 49 50 ! !!* Namelist namdrg_top & _bot: TOP or BOTTOM coefficient namelist * … … 71 72 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: rCd0_top, rCd0_bot !: precomputed top/bottom drag coeff. at t-point (>0) 72 73 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: rCdU_top, rCdU_bot !: top/bottom drag coeff. at t-point (<0) [m/s] 74 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: rCdU_ice !: ice-ocean drag (used if ln_drgice_imp=T) 73 75 74 76 !! * Substitutions … … 231 233 INTEGER :: ios, ioptio ! local integers 232 234 !! 233 NAMELIST/namdrg/ ln_OFF, ln_lin, ln_non_lin, ln_loglayer, ln_drgimp 235 NAMELIST/namdrg/ ln_OFF, ln_lin, ln_non_lin, ln_loglayer, ln_drgimp, ln_drgice_imp 234 236 !!---------------------------------------------------------------------- 235 237 ! … … 254 256 WRITE(numout,*) ' logarithmic drag: Cd = vkarmn/log(z/z0) ln_loglayer = ', ln_loglayer 255 257 WRITE(numout,*) ' implicit friction ln_drgimp = ', ln_drgimp 258 WRITE(numout,*) ' implicit ice-ocean drag ln_drgice_imp =', ln_drgice_imp 256 259 ENDIF 257 260 ! … … 264 267 IF( ioptio /= 1 ) CALL ctl_stop( 'zdf_drg_init: Choose ONE type of drag coef in namdrg' ) 265 268 ! 269 IF ( ln_drgice_imp.AND.(.NOT.ln_drgimp) ) & 270 & CALL ctl_stop( 'zdf_drg_init: ln_drgice_imp=T requires ln_drgimp=T' ) 266 271 ! 267 272 ! !== BOTTOM drag setting ==! (applied at seafloor) … … 274 279 ! !== TOP drag setting ==! (applied at the top of ocean cavities) 275 280 ! 276 IF( ln_isfcav ) THEN ! Ocean cavities: top friction setting 277 ALLOCATE( rCd0_top(jpi,jpj), rCdU_top(jpi,jpj) ) 281 IF( ln_isfcav.OR.ln_drgice_imp ) THEN ! Ocean cavities: top friction setting 282 ALLOCATE( rCdU_top(jpi,jpj) ) 283 rCdU_top(:,:) = 0._wp 284 ENDIF 285 ! 286 IF (ln_drgice_imp) ALLOCATE( rCdU_ice(jpi,jpj) ) 287 ! 288 IF( ln_isfcav ) THEN 289 ALLOCATE( rCd0_top(jpi,jpj)) 278 290 CALL drg_init( 'TOP ' , mikt , & ! <== in 279 291 & 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.