Changeset 6870
- Timestamp:
- 2016-08-17T10:58:50+02:00 (8 years ago)
- Location:
- branches/UKMO/dev_r5518_convadj_clean/NEMOGCM
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/CONFIG/SHARED/namelist_ref
r5501 r6870 921 921 ln_zdfexp = .false. ! time-stepping: split-explicit (T) or implicit (F) time stepping 922 922 nn_zdfexp = 3 ! number of sub-timestep for ln_zdfexp=T 923 / 924 !----------------------------------------------------------------------- 925 &namzdf_convadj ! Convective adjustment (cliff) parameterization 926 !----------------------------------------------------------------------- 927 ln_convadj = .false. ! Use convective adjustment or not 928 cn_convadj_mask = 'convadj.nc' ! Name of mask file defining grid points where scheme should be used 929 nn_con = 5 ! Number of iterations at each timestep 923 930 / 924 931 !----------------------------------------------------------------------- -
branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
r6869 r6870 32 32 USE wrk_nemo ! Memory Allocation 33 33 USE timing ! Timing 34 USE zdfconvadj 35 USE zdfmxl, ONLY : nmln 34 36 35 37 IMPLICIT NONE … … 103 105 REAL(wp) , INTENT(in ) :: pahtb0 ! background diffusion coef 104 106 ! 107 INTEGER :: zconvadjw, zconvadju, zconvadjv 105 108 INTEGER :: ji, jj, jk, jn ! dummy loop indices 106 109 INTEGER :: ikt … … 212 215 zcof2 = - fsahtv(ji,jj,jk) * e1v(ji,jj) * vslp(ji,jj,jk) * zmskv 213 216 ! 214 zftu(ji,jj,jk ) = ( zabe1 * zdit(ji,jj,jk) & 217 IF(ln_convadj .AND. (jk .GT. nmln(ji,jj)) ) THEN 218 zconvadju = 1 - MAX( convadj_mask(ji,jj), convadj_mask(ji+1,jj) ) 219 zconvadjv = 1 - MAX( convadj_mask(ji,jj), convadj_mask(ji,jj+1) ) 220 ELSE 221 zconvadju = 1 222 zconvadjv = 1 223 END IF 224 zftu(ji,jj,jk ) = zconvadju * ( zabe1 * zdit(ji,jj,jk) & 215 225 & + zcof1 * ( zdkt (ji+1,jj,jk) + zdk1t(ji,jj,jk) & 216 226 & + zdk1t(ji+1,jj,jk) + zdkt (ji,jj,jk) ) ) * umask(ji,jj,jk) 217 zftv(ji,jj,jk) = ( zabe2 * zdjt(ji,jj,jk) &227 zftv(ji,jj,jk) = zconvadjv * ( zabe2 * zdjt(ji,jj,jk) & 218 228 & + zcof2 * ( zdkt (ji,jj+1,jk) + zdk1t(ji,jj,jk) & 219 229 & + zdk1t(ji,jj+1,jk) + zdkt (ji,jj,jk) ) ) * vmask(ji,jj,jk) … … 296 306 & + vmask(ji,jj-1,jk-1) + vmask(ji,jj ,jk), 1. ) 297 307 ! 298 zcoef3 = zcoef0 * e2t(ji,jj) * zmsku * wslpi (ji,jj,jk) 299 zcoef4 = zcoef0 * e1t(ji,jj) * zmskv * wslpj (ji,jj,jk) 308 IF(ln_convadj .AND. ( jk .GT. nmln(ji,jj)) ) THEN 309 zconvadjw = 1 - convadj_mask(ji,jj) 310 ELSE 311 zconvadjw = 1 312 ENDIF 313 zcoef3 = zcoef0 * e2t(ji,jj) * zmsku * wslpi (ji,jj,jk) * zconvadjw 314 zcoef4 = zcoef0 * e1t(ji,jj) * zmskv * wslpj (ji,jj,jk) * zconvadjw 300 315 ! 301 316 ztfw(ji,jj,jk) = zcoef3 * ( zdit(ji ,jj ,jk-1) + zdit(ji-1,jj ,jk) & -
branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r6869 r6870 74 74 REAL(wp) :: rn_emin0 ! surface minimum value of tke [m2/s2] 75 75 REAL(wp) :: rn_bshear ! background shear (>0) currently a numerical threshold (do not change it) 76 INTEGER :: nn_etau ! type of depth penetration of surface tke (=0/1/2/3)76 INTEGER, PUBLIC :: nn_etau ! type of depth penetration of surface tke (=0/1/2/3) 77 77 INTEGER :: nn_htau ! type of tke profile of penetration (=0/1) 78 78 REAL(wp) :: rn_efr ! fraction of TKE surface value which penetrates in the ocean -
branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r6869 r6870 413 413 IF( lk_zdfddm .AND. .NOT. lk_zdfkpp ) & 414 414 & CALL zdf_ddm_init ! double diffusive mixing 415 CALL zdf_convadj_init !Convective adjustment (cliff scheme) 415 416 ! ! Lateral physics 416 417 CALL ldf_tra_init ! Lateral ocean tracer physics -
branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/NEMO/OPA_SRC/step.F90
r6869 r6870 98 98 99 99 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 100 ! Update data, open boundaries, surface boundary condition (including sea-ice) 100 ! Update data, open boundaries, surface boundary condition (including sea-ice), convective adjustment (cliff) 101 101 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 102 102 IF( lk_tide ) CALL sbc_tide( kstp ) … … 105 105 CALL bdy_dta ( kstp, time_offset=+1 ) ! update dynamic & tracer data at open boundaries 106 106 ENDIF 107 108 IF( ln_convadj ) CALL zdf_convadj( kstp ) ! Called here so that tsn is updated before rest of physics is called 109 110 107 111 CALL sbc ( kstp ) ! Sea Boundary Condition (including sea-ice) 108 112 ! clem: moved here for bdy ice purpose -
branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/NEMO/OPA_SRC/step_oce.F90
r6869 r6870 84 84 USE zdfric ! Richardson vertical mixing (zdf_ric routine) 85 85 USE zdfmxl ! Mixed-layer depth (zdf_mxl routine) 86 USE zdfconvadj ! Convective adjustment (zdf_convadj routine) 86 87 87 88 USE zpshde ! partial step: hor. derivative (zps_hde routine)
Note: See TracChangeset
for help on using the changeset viewer.