Changeset 3764 for branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/OPA_SRC/ZDF
- Timestamp:
- 2013-01-23T15:33:04+01:00 (11 years ago)
- Location:
- branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/OPA_SRC/ZDF
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90
r3633 r3764 18 18 !!---------------------------------------------------------------------- 19 19 USE oce ! ocean dynamics and tracers variables 20 USE dom_oce ! ocean space and time domain variables 20 USE dom_oce ! ocean space and time domain variables 21 21 USE zdf_oce ! ocean vertical physics variables 22 22 USE in_out_manager ! I/O manager … … 35 35 36 36 ! !!* Namelist nambfr: bottom friction namelist * 37 INTEGER :: nn_bfr = 0 ! = 0/1/2/3 type of bottom friction38 REAL(wp) :: rn_bfri1 = 4.0e-4_wp ! bottom drag coefficient (linear case)39 REAL(wp) :: rn_bfri2 = 1.0e-3_wp ! bottom drag coefficient (non linear case)40 REAL(wp) :: rn_bfeb2 = 2.5e-3_wp ! background bottom turbulent kinetic energy [m2/s2]41 REAL(wp) :: rn_bfrien = 30._wp ! local factor to enhance coefficient bfri42 LOGICAL :: ln_bfr2d = .false. ! logical switch for 2D enhancement43 LOGICAL :: ln_loglayer = .false. ! switch for log layer bfr coeff.44 REAL(wp) :: rn_bfrz0 = 0.003_wp ! bottom roughness for loglayer bfr coeff45 LOGICAL , PUBLIC :: ln_bfrimp = .false. !switch for implicit bottom friction46 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: bfrcoef2d ! 2D bottom drag coefficient37 INTEGER , PUBLIC :: nn_bfr = 0 ! = 0/1/2/3 type of bottom friction (PUBLIC for TAM) 38 REAL(wp), PUBLIC :: rn_bfri1 = 4.0e-4_wp ! bottom drag coefficient (linear case) (PUBLIC for TAM) 39 REAL(wp), PUBLIC :: rn_bfri2 = 1.0e-3_wp ! bottom drag coefficient (non linear case) (PUBLIC for TAM) 40 REAL(wp), PUBLIC :: rn_bfeb2 = 2.5e-3_wp ! background bottom turbulent kinetic energy [m2/s2] (PUBLIC for TAM) 41 REAL(wp), PUBLIC :: rn_bfrien = 30._wp ! local factor to enhance coefficient bfri (PUBLIC for TAM) 42 LOGICAL , PUBLIC :: ln_bfr2d = .false. ! logical switch for 2D enhancement (PUBLIC for TAM) 43 LOGICAL , PUBLIC :: ln_loglayer = .false. ! switch for log layer bfr coeff. (PUBLIC for TAM) 44 REAL(wp), PUBLIC :: rn_bfrz0 = 0.003_wp ! bottom roughness for loglayer bfr coeff (PUBLIC for TAM) 45 LOGICAL , PUBLIC :: ln_bfrimp = .false. ! logical switch for implicit bottom friction 46 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: bfrcoef2d ! 2D bottom drag coefficient (PUBLIC for TAM) 47 47 48 48 !! * Substitutions … … 70 70 !!---------------------------------------------------------------------- 71 71 !! *** ROUTINE zdf_bfr *** 72 !! 72 !! 73 73 !! ** Purpose : compute the bottom friction coefficient. 74 74 !! 75 !! ** Method : Calculate and store part of the momentum trend due 76 !! to bottom friction following the chosen friction type 75 !! ** Method : Calculate and store part of the momentum trend due 76 !! to bottom friction following the chosen friction type 77 77 !! (free-slip, linear, or quadratic). The component 78 78 !! calculated here is multiplied by the bottom velocity in … … 124 124 DO ji = 2, jpim1 125 125 # endif 126 ikbu = mbku(ji,jj) ! ocean bottom level at u- and v-points 126 ikbu = mbku(ji,jj) ! ocean bottom level at u- and v-points 127 127 ikbv = mbkv(ji,jj) ! (deepest ocean u- and v-points) 128 128 ! … … 135 135 zecv = SQRT( vn(ji,jj,ikbv) * vn(ji,jj,ikbv) + zuv*zuv + rn_bfeb2 ) 136 136 ! 137 bfrua(ji,jj) = - 0.5_wp * ( bfrcoef2d(ji,jj) + bfrcoef2d(ji+1,jj ) ) * zecu 137 bfrua(ji,jj) = - 0.5_wp * ( bfrcoef2d(ji,jj) + bfrcoef2d(ji+1,jj ) ) * zecu 138 138 bfrva(ji,jj) = - 0.5_wp * ( bfrcoef2d(ji,jj) + bfrcoef2d(ji ,jj+1) ) * zecv 139 139 END DO … … 156 156 !!---------------------------------------------------------------------- 157 157 !! *** ROUTINE zdf_bfr_init *** 158 !! 158 !! 159 159 !! ** Purpose : Initialization of the bottom friction 160 160 !! … … 217 217 bfrcoef2d(:,:) = rn_bfri1 ! initialize bfrcoef2d to the namelist variable 218 218 ! 219 IF(ln_bfr2d) THEN 219 IF(ln_bfr2d) THEN 220 220 ! bfr_coef is a coefficient in [0,1] giving the mask where to apply the bfr enhancement 221 221 CALL iom_open('bfr_coef.nc',inum) … … 238 238 239 239 ! 240 IF(ln_bfr2d) THEN 240 IF(ln_bfr2d) THEN 241 241 ! bfr_coef is a coefficient in [0,1] giving the mask where to apply the bfr enhancement 242 242 CALL iom_open('bfr_coef.nc',inum) -
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfkpp.F90
r3625 r3764 247 247 #if defined key_zdfddm 248 248 REAL(wp) :: zrrau, zds, zavdds, zavddt,zinr ! double diffusion mixing 249 REAL(wp), POINTER, DIMENSION(:,:) :: zdifs250 REAL(wp), POINTER, DIMENSION(:) :: za2s, za3s, zkmps249 REAL(wp), POINTER, DIMENSION(:,:) :: zdifs 250 REAL(wp), POINTER, DIMENSION(:) :: za2s, za3s, zkmps 251 251 REAL(wp) :: zkm1s 252 REAL(wp), POINTER, DIMENSION(:,:) :: zblcs252 REAL(wp), POINTER, DIMENSION(:,:) :: zblcs 253 253 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdiffus 254 254 #endif … … 266 266 CALL wrk_alloc( jpi,4, zdepw, zdift, zvisc ) 267 267 CALL wrk_alloc( jpi,jpj, zBo, zBosol, zustar ) 268 CALL wrk_alloc( jpi,jpk, zmask, zblcm, zblct , zblcs)268 CALL wrk_alloc( jpi,jpk, zmask, zblcm, zblct ) 269 269 #if defined key_zdfddm 270 270 CALL wrk_alloc( jpi,4, zdifs ) … … 1081 1081 zdiffut(ji,jj,jk) = zdiffut(ji,jj,jk) * tmask(ji,jj,jk) 1082 1082 #if defined key_zdfddm 1083 zdiffus(ji,jj,jk) = ( 1.0 - zmask(ji,jk) ) 1083 zdiffus(ji,jj,jk) = ( 1.0 - zmask(ji,jk) ) * avs (ji,jj,jk) & ! interior diffusivities 1084 1084 & + zflag * zblcs(ji,jk ) & ! boundary layer diffusivities 1085 1085 & + zmask(ji,jk) * ( 1.0 - zflag ) * zkmps(ji ) ! diffusivity enhancement at W_level near zhbl 1086 1087 1086 zdiffus(ji,jj,jk) = zdiffus(ji,jj,jk) * tmask(ji,jj,jk) 1088 1087 #endif … … 1212 1211 CALL wrk_dealloc( jpi,4, zdepw, zdift, zvisc ) 1213 1212 CALL wrk_dealloc( jpi,jpj, zBo, zBosol, zustar ) 1214 CALL wrk_dealloc( jpi,jpk, zmask, zblcm, zblct , zblcs)1213 CALL wrk_dealloc( jpi,jpk, zmask, zblcm, zblct ) 1215 1214 #if defined key_zdfddm 1216 1215 CALL wrk_dealloc( jpi,4, zdifs )
Note: See TracChangeset
for help on using the changeset viewer.