Changeset 503 for trunk/NEMO/OPA_SRC/ZDF/zdfkpp.F90
- Timestamp:
- 2006-09-27T10:52:29+02:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/ZDF/zdfkpp.F90
r474 r503 5 5 !! turbulent closure parameterization 6 6 !!===================================================================== 7 !! History : 8.1 ! 00-03 (W.G. Large, J. Chanut) Original code 8 !! 8.1 ! 02-06 (J.M. Molines) for real case CLIPPER 9 !! 8.2 ! 03-10 (Chanut J.) re-writting 10 !! 9.0 ! 05-01 (C. Ethe) Free form, F90 11 !!---------------------------------------------------------------------- 7 12 #if defined key_zdfkpp || defined key_esopa 8 13 !!---------------------------------------------------------------------- 9 14 !! 'key_zdfkpp' KPP scheme 10 15 !!---------------------------------------------------------------------- 16 !!---------------------------------------------------------------------- 11 17 !! zdf_kpp : update momentum and tracer Kz from a kpp scheme 12 18 !! zdf_kpp_init : initialization, namelist read, and parameters control 13 19 !!---------------------------------------------------------------------- 14 !! * Modules used15 20 USE oce ! ocean dynamics and active tracers 16 21 USE dom_oce ! ocean space and time domain … … 28 33 PRIVATE 29 34 30 !! * Routine accessibility 31 PUBLIC zdf_kpp ! routine called by step.F90 32 PUBLIC tra_kpp ! routine called by step.F90 33 34 !! * Share Module variables 35 LOGICAL, PUBLIC, PARAMETER :: & 36 lk_zdfkpp = .TRUE. !: KPP vertical mixing flag 37 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: & 38 ghats ! non-local scalar mixing term (gamma/<ws>o) 35 PUBLIC zdf_kpp ! routine called by step.F90 36 PUBLIC tra_kpp ! routine called by step.F90 37 38 LOGICAL, PUBLIC, PARAMETER :: lk_zdfkpp = .TRUE. !: KPP vertical mixing flag 39 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: ghats !: non-local scalar mixing term (gamma/<ws>o) 39 40 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & 40 wt0 , & ! surface temperature flux for non local flux41 ws0 , & ! surface salinity flux for non local flux42 hkpp ! boundary layer depht43 !! * Module variables 41 wt0 , & !: surface temperature flux for non local flux 42 ws0 , & !: surface salinity flux for non local flux 43 hkpp !: boundary layer depht 44 44 45 INTEGER :: & !!! ** kpp namelist (namkpp) ** 45 46 nave = 1 , & ! = 0/1 flag for horizontal average on avt, avmu, avmv … … 148 149 !! OPA 9.0 , LOCEAN-IPSL (2005) 149 150 !! $Header$ 150 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt151 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 151 152 !!---------------------------------------------------------------------- 152 153 153 154 CONTAINS 154 155 155 156 156 SUBROUTINE zdf_kpp ( kt ) … … 184 184 !! update avt, avmu, avmv (before vertical eddy coef.) 185 185 !! 186 !! References : 187 !! Large W.G., Mc Williams J.C. and Doney S.C. 186 !! References : Large W.G., Mc Williams J.C. and Doney S.C. 188 187 !! Reviews of Geophysics, 32, 4, November 1994 189 188 !! Comments in the code refer to this paper, particularly 190 189 !! the equation number. (LMD94, here after) 191 !!192 !! Modifications :193 !! --------------194 !! original : 00-03 (LARGE W.G.)195 !! additions : 00-04 (CHANUT J.)196 !! : 02-06 (MOLINES J.M. for real case CLIPPER)197 !! : 03-10 (CHANUT J.)198 !!199 !! History :200 !! 8.1 ! 00-03 (J. Chanut) Original code201 !! 8.1 ! 00-04 (J.M. Molines) for real case CLIPPER202 !! 9.0 ! 05-01 (C. Ethe) Free form, F90203 190 !!---------------------------------------------------------------------- 204 !! * Modules used205 191 #if defined key_zdfddm 206 192 USE oce , zviscos => ua, & ! temp. array for viscosities use ua as workspace … … 211 197 & zdiffut => ta ! temp. array for diffusivities use sa as workspace 212 198 #endif 213 214 215 !! * arguments 216 INTEGER, INTENT( in ) :: & 217 kt ! ocean time step 218 219 !! * local declarations 220 INTEGER :: & 221 ji, jj, jk ! dummy loop indices 222 INTEGER :: & ! 223 ikbot, jkmax, jkm1, jkp2 ! 199 !! 200 INTEGER, INTENT( in ) :: kt ! ocean time step 201 !! 202 INTEGER :: ji, jj, jk ! dummy loop indices 203 INTEGER :: ikbot, jkmax, jkm1, jkp2 ! 224 204 225 205 REAL(wp), DIMENSION(jpi,jpj) :: & !!! Surface buoyancy forcing, friction velocity … … 1251 1231 IF(ln_ctl) THEN 1252 1232 #if defined key_zdfddm 1253 CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp - t: ', tab3d_2=avs , clinfo2=' s: ', & 1254 & ovlap=1, kdim=jpk) 1233 CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp - t: ', tab3d_2=avs , clinfo2=' s: ', ovlap=1, kdim=jpk) 1255 1234 #else 1256 CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp - t: ', ovlap=1, kdim=jpk) 1257 #endif 1258 CALL prt_ctl(tab3d_1=avmu , clinfo1=' u: ', tab3d_2=avmv , clinfo2=' v: ', & 1259 & ovlap=1, kdim=jpk) 1235 CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp - t: ', ovlap=1, kdim=jpk) 1236 #endif 1237 CALL prt_ctl(tab3d_1=avmu, clinfo1=' u: ', tab3d_2=avmv , clinfo2=' v: ', ovlap=1, kdim=jpk) 1260 1238 ENDIF 1261 1239 … … 1312 1290 ztrds(:,:,:) = sa(:,:,:) - ztrds(:,:,:) 1313 1291 !!bug gm jpttdzdf ==> jpttkpp 1314 CALL trd_mod(ztrdt, ztrds, jpt tdzdf, 'TRA', kt)1292 CALL trd_mod(ztrdt, ztrds, jptra_trd_zdf, 'TRA', kt) 1315 1293 ENDIF 1316 1294 1317 IF(ln_ctl) THEN ! print mean trends (used for debugging) 1318 CALL prt_ctl(tab3d_1=ta, clinfo1=' kpp - Ta: ', mask1=tmask, & 1319 & tab3d_2=sa, clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra') 1295 IF(ln_ctl) CALL prt_ctl( tab3d_1=ta, clinfo1=' kpp - Ta: ', mask1=tmask, & 1296 & tab3d_2=sa, clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 1320 1297 ENDIF 1321 1298 … … 1594 1571 END DO 1595 1572 #endif 1596 1597 1573 END SUBROUTINE zdf_kpp_init 1598 1574
Note: See TracChangeset
for help on using the changeset viewer.