Changeset 503 for trunk/NEMO/OPA_SRC/DYN/dynzdf_imp_jki.F90
- Timestamp:
- 2006-09-27T10:52:29+02:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DYN/dynzdf_imp_jki.F90
r456 r503 4 4 !! Ocean dynamics: vertical component(s) of the momentum mixing trend 5 5 !!============================================================================== 6 !! History : 8.5 ! 02-08 (G. Madec) auto-tasking option 7 !!---------------------------------------------------------------------- 6 8 7 9 !!---------------------------------------------------------------------- … … 17 19 USE in_out_manager ! I/O manager 18 20 USE taumod ! surface ocean stress 19 USE prtctl ! Print control20 21 21 22 IMPLICIT NONE … … 30 31 !!---------------------------------------------------------------------- 31 32 !! OPA 9.0 , LOCEAN-IPSL (2005) 33 !! $Header$ 34 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 32 35 !!---------------------------------------------------------------------- 33 36 34 37 CONTAINS 35 38 36 SUBROUTINE dyn_zdf_imp_jki( kt )39 SUBROUTINE dyn_zdf_imp_jki( kt, p2dt ) 37 40 !!---------------------------------------------------------------------- 38 41 !! *** ROUTINE dyn_zdf_imp_jki *** … … 52 55 !! ** Action : - Update (ua,va) arrays with the after vertical diffusive 53 56 !! mixing trend. 54 !!55 !! History :56 !! 8.5 ! 02-08 (G. Madec) auto-tasking option57 !! 9.0 ! 04-08 (C. Talandier) New trends organization58 57 !!--------------------------------------------------------------------- 59 !! * Modules used60 USE oce, ONLY : ztdua => ta, & ! use ta as 3D workspace61 ztdva => sa ! use sa as 3D workspace62 63 58 !! * Arguments 64 INTEGER, INTENT( in ) :: kt ! ocean time-step index 59 INTEGER , INTENT( in ) :: kt ! ocean time-step index 60 REAL(wp), INTENT( in ) :: p2dt ! ocean time-step index 65 61 66 62 !! * Local declarations 67 INTEGER :: ji, jj, jk ! dummy loop indices 68 INTEGER :: ikst, ikenm2, ikstp1 ! temporary integers 69 REAL(wp) :: zrau0r, z2dt, & !temporary scalars 70 & z2dtf, zcoef, zzws 71 REAL(wp), DIMENSION(jpi,jpk) :: & 72 zwx, zwy, zwz, & ! workspace 73 zwd, zws, zwi, zwt 63 INTEGER :: ji, jj, jk ! dummy loop indices 64 INTEGER :: ikst, ikenm2, ikstp1 ! temporary integers 65 REAL(wp) :: zrau0r, z2dtf, zcoef, zzws ! temporary scalars 66 REAL(wp), DIMENSION(jpi,jpk) :: zwx, zwy, zwz, & ! workspace 67 & zwd, zws, zwi, zwt 74 68 !!---------------------------------------------------------------------- 75 69 … … 84 78 ! -------------------------------- 85 79 zrau0r = 1. / rau0 ! inverse of the reference density 86 z2dt = 2. * rdt ! Leap-frog environnement87 88 ! Euler time stepping when starting from rest89 IF( neuler == 0 .AND. kt == nit000 ) z2dt = rdt90 80 91 81 ! ! =============== … … 101 91 DO jk = 1, jpkm1 102 92 DO ji = 2, jpim1 103 zcoef = - z2dt / fse3u(ji,jj,jk)93 zcoef = - p2dt / fse3u(ji,jj,jk) 104 94 zwi(ji,jk) = zcoef * avmu(ji,jj,jk ) / fse3uw(ji,jj,jk ) 105 95 zzws = zcoef * avmu(ji,jj,jk+1) / fse3uw(ji,jj,jk+1) 106 96 zws(ji,jk) = zzws * umask(ji,jj,jk+1) 107 97 zwd(ji,jk) = 1. - zwi(ji,jk) - zzws 108 zwy(ji,jk) = ub(ji,jj,jk) + z2dt * ua(ji,jj,jk)98 zwy(ji,jk) = ub(ji,jj,jk) + p2dt * ua(ji,jj,jk) 109 99 END DO 110 100 END DO … … 112 102 ! Surface boudary conditions 113 103 DO ji = 2, jpim1 114 z2dtf = z2dt / ( fse3u(ji,jj,1)*rau0 )104 z2dtf = p2dt / ( fse3u(ji,jj,1)*rau0 ) 115 105 zwi(ji,1) = 0. 116 106 zwd(ji,1) = 1. - zws(ji,1) … … 175 165 DO jk = 1, jpkm1 176 166 DO ji = 2, jpim1 177 ua(ji,jj,jk) = ( zwx(ji,jk) - ub(ji,jj,jk) ) / z2dt167 ua(ji,jj,jk) = ( zwx(ji,jk) - ub(ji,jj,jk) ) / p2dt 178 168 END DO 179 169 END DO … … 188 178 DO jk = 1, jpkm1 189 179 DO ji = 2, jpim1 190 zcoef = - z2dt/fse3v(ji,jj,jk)180 zcoef = -p2dt/fse3v(ji,jj,jk) 191 181 zwi(ji,jk) = zcoef * avmv(ji,jj,jk ) / fse3vw(ji,jj,jk ) 192 182 zzws = zcoef * avmv(ji,jj,jk+1) / fse3vw(ji,jj,jk+1) 193 183 zws(ji,jk) = zzws * vmask(ji,jj,jk+1) 194 184 zwd(ji,jk) = 1. - zwi(ji,jk) - zzws 195 zwy(ji,jk) = vb(ji,jj,jk) + z2dt * va(ji,jj,jk)185 zwy(ji,jk) = vb(ji,jj,jk) + p2dt * va(ji,jj,jk) 196 186 END DO 197 187 END DO … … 199 189 ! Surface boudary conditions 200 190 DO ji = 2, jpim1 201 z2dtf = z2dt / ( fse3v(ji,jj,1)*rau0 )191 z2dtf = p2dt / ( fse3v(ji,jj,1)*rau0 ) 202 192 zwi(ji,1) = 0.e0 203 193 zwd(ji,1) = 1. - zws(ji,1) … … 262 252 DO jk = 1, jpkm1 263 253 DO ji = 2, jpim1 264 va(ji,jj,jk) = ( zwx(ji,jk) - vb(ji,jj,jk) ) / z2dt254 va(ji,jj,jk) = ( zwx(ji,jk) - vb(ji,jj,jk) ) / p2dt 265 255 END DO 266 256 END DO
Note: See TracChangeset
for help on using the changeset viewer.