- Timestamp:
- 2014-04-06T17:28:25+02:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_iso.F90
r4596 r4616 110 110 INTEGER :: ji, jj, jk ! dummy loop indices 111 111 REAL(wp) :: zabe1, zabe2, zcof1, zcof2 ! local scalars 112 REAL(wp) :: zmskt, zmskf , zbu, zbv, zuah, zvah! - -112 REAL(wp) :: zmskt, zmskf ! - - 113 113 REAL(wp) :: zcoef0, zcoef3, zcoef4, zmkt, zmkf ! - - 114 114 REAL(wp) :: zuav, zvav, zuwslpi, zuwslpj, zvwslpi, zvwslpj ! - - … … 135 135 DO jj = 2, jpjm1 136 136 DO ji = 2, jpim1 137 uslp (ji,jj,jk) = - 1./e1u(ji,jj) * ( fsdept_b(ji+1,jj,jk) - fsdept_b(ji ,jj ,jk)) * umask(ji,jj,jk)138 vslp (ji,jj,jk) = - 1./e2v(ji,jj) * ( fsdept_b(ji,jj+1,jk) - fsdept_b(ji ,jj ,jk)) * vmask(ji,jj,jk)139 wslpi(ji,jj,jk) = - 1./e1t(ji,jj) * ( fsdepw_b(ji+1,jj,jk) - fsdepw_b(ji-1,jj,jk)) * tmask(ji,jj,jk) * 0.5140 wslpj(ji,jj,jk) = - 1./e2t(ji,jj) * ( fsdepw_b(ji,jj+1,jk) - fsdepw_b(ji,jj-1,jk)) * tmask(ji,jj,jk) * 0.5137 uslp (ji,jj,jk) = - ( fsdept_b(ji+1,jj,jk) - fsdept_b(ji ,jj ,jk) ) * r1_e1u(ji,jj) * umask(ji,jj,jk) 138 vslp (ji,jj,jk) = - ( fsdept_b(ji,jj+1,jk) - fsdept_b(ji ,jj ,jk) ) * r1_e2v(ji,jj) * vmask(ji,jj,jk) 139 wslpi(ji,jj,jk) = - ( fsdepw_b(ji+1,jj,jk) - fsdepw_b(ji-1,jj,jk) ) * r1_e1t(ji,jj) * tmask(ji,jj,jk) * 0.5 140 wslpj(ji,jj,jk) = - ( fsdepw_b(ji,jj+1,jk) - fsdepw_b(ji,jj-1,jk) ) * r1_e2t(ji,jj) * tmask(ji,jj,jk) * 0.5 141 141 END DO 142 142 END DO … … 183 183 DO jj = 2, jpjm1 184 184 DO ji = fs_2, jpi ! vector opt. 185 zabe1 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e2t(ji,jj) * MIN( fse3u(ji,jj,jk), fse3u(ji-1,jj,jk) ) /e1t(ji,jj)185 zabe1 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e2t(ji,jj) * MIN( fse3u(ji,jj,jk), fse3u(ji-1,jj,jk) ) * r1_e1t(ji,jj) 186 186 187 187 zmskt = 1._wp / MAX( umask(ji-1,jj,jk )+umask(ji,jj,jk+1) & … … 198 198 DO jj = 2, jpjm1 199 199 DO ji = fs_2, jpi ! vector opt. 200 zabe1 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e2t(ji,jj) * fse3t(ji,jj,jk) /e1t(ji,jj)200 zabe1 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e2t(ji,jj) * fse3t(ji,jj,jk) * r1_e1t(ji,jj) 201 201 202 202 zmskt = 1._wp / MAX( umask(ji-1,jj,jk ) + umask(ji,jj,jk+1) & … … 215 215 DO jj = 1, jpjm1 216 216 DO ji = 1, fs_jpim1 ! vector opt. 217 zabe2 = ( ahmf(ji,jj,jk) + rn_ahm_b ) * e1f(ji,jj) * fse3f(ji,jj,jk) /e2f(ji,jj)217 zabe2 = ( ahmf(ji,jj,jk) + rn_ahm_b ) * e1f(ji,jj) * fse3f(ji,jj,jk) * r1_e2f(ji,jj) 218 218 219 219 zmskf = 1._wp / MAX( umask(ji,jj+1,jk )+umask(ji,jj,jk+1) & … … 236 236 DO jj = 2, jpjm1 237 237 DO ji = 1, fs_jpim1 ! vector opt. 238 zabe1 = ( ahmf(ji,jj,jk) + rn_ahm_b ) * e2f(ji,jj) * fse3f(ji,jj,jk) /e1f(ji,jj)238 zabe1 = ( ahmf(ji,jj,jk) + rn_ahm_b ) * e2f(ji,jj) * fse3f(ji,jj,jk) * r1_e1f(ji,jj) 239 239 240 240 zmskf = 1._wp / MAX( vmask(ji+1,jj,jk )+vmask(ji,jj,jk+1) & … … 253 253 DO jj = 2, jpj 254 254 DO ji = 1, fs_jpim1 ! vector opt. 255 zabe2 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e1t(ji,jj) * MIN( fse3v(ji,jj,jk), fse3v(ji,jj-1,jk) ) /e2t(ji,jj)255 zabe2 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e1t(ji,jj) * MIN( fse3v(ji,jj,jk), fse3v(ji,jj-1,jk) ) * r1_e2t(ji,jj) 256 256 257 257 zmskt = 1._wp / MAX( vmask(ji,jj-1,jk )+vmask(ji,jj,jk+1) & … … 268 268 DO jj = 2, jpj 269 269 DO ji = 1, fs_jpim1 ! vector opt. 270 zabe2 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e1t(ji,jj) * fse3t(ji,jj,jk) /e2t(ji,jj)270 zabe2 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e1t(ji,jj) * fse3t(ji,jj,jk) * r1_e2t(ji,jj) 271 271 272 272 zmskt = 1./MAX( vmask(ji,jj-1,jk )+vmask(ji,jj,jk+1) & … … 285 285 ! Second derivative (divergence) and add to the general trend 286 286 ! ----------------------------------------------------------- 287 288 287 DO jj = 2, jpjm1 289 288 DO ji = 2, jpim1 !! Question vectop possible??? !!bug 290 ! volume elements 291 zbu = e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) 292 zbv = e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) 293 ! horizontal component of isopycnal momentum diffusive trends 294 zuah =( ziut (ji+1,jj) - ziut (ji,jj ) + & 295 & zjuf (ji ,jj) - zjuf (ji,jj-1) ) / zbu 296 zvah =( zivf (ji,jj ) - zivf (ji-1,jj) + & 297 & zjvt (ji,jj+1) - zjvt (ji,jj ) ) / zbv 298 ! add the trends to the general trends 299 ua (ji,jj,jk) = ua (ji,jj,jk) + zuah 300 va (ji,jj,jk) = va (ji,jj,jk) + zvah 289 ua(ji,jj,jk) = ua(ji,jj,jk) + ( ziut(ji+1,jj) - ziut(ji,jj ) & 290 & + zjuf(ji ,jj) - zjuf(ji,jj-1) ) / ( e1e2u(ji,jj) * fse3u(ji,jj,jk) ) 291 va(ji,jj,jk) = va(ji,jj,jk) + ( zivf(ji,jj ) - zivf(ji-1,jj) & 292 & + zjvt(ji,jj+1) - zjvt(ji,jj ) ) / ( e1e2v(ji,jj) * fse3v(ji,jj,jk) ) 301 293 END DO 302 294 END DO … … 411 403 DO jk = 1, jpkm1 412 404 DO ji = 2, jpim1 413 ! volume elements 414 zbu = e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) 415 zbv = e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) 416 ! part of the k-component of isopycnal momentum diffusive trends 417 zuav = ( zfuw(ji,jk) - zfuw(ji,jk+1) ) / zbu 418 zvav = ( zfvw(ji,jk) - zfvw(ji,jk+1) ) / zbv 419 ! add the trends to the general trends 420 ua(ji,jj,jk) = ua(ji,jj,jk) + zuav 421 va(ji,jj,jk) = va(ji,jj,jk) + zvav 405 ua(ji,jj,jk) = ua(ji,jj,jk) + ( zfuw(ji,jk) - zfuw(ji,jk+1) ) / ( e1e2u(ji,jj) * fse3u(ji,jj,jk) ) 406 va(ji,jj,jk) = va(ji,jj,jk) + ( zfvw(ji,jk) - zfvw(ji,jk+1) ) / ( e1e2v(ji,jj) * fse3v(ji,jj,jk) ) 422 407 END DO 423 408 END DO
Note: See TracChangeset
for help on using the changeset viewer.