- Timestamp:
- 2015-09-13T09:42:41+02:00 (9 years ago)
- Location:
- branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/divcur.F90
r5516 r5737 121 121 ( e2u(ji,jj)*fse3u(ji,jj,jk) * un(ji,jj,jk) - e2u(ji-1,jj )*fse3u(ji-1,jj ,jk) * un(ji-1,jj ,jk) & 122 122 + e1v(ji,jj)*fse3v(ji,jj,jk) * vn(ji,jj,jk) - e1v(ji ,jj-1)*fse3v(ji ,jj-1,jk) * vn(ji ,jj-1,jk) ) & 123 / ( e1 t(ji,jj) *e2t(ji,jj) * fse3t(ji,jj,jk) )123 / ( e1e2t(ji,jj) * fse3t(ji,jj,jk) ) 124 124 END DO 125 125 END DO … … 195 195 DO ji = 1, fs_jpim1 ! vector opt. 196 196 rotn(ji,jj,jk) = ( zwv(ji+1,jj ) - zwv(ji,jj) & 197 & - zwu(ji ,jj+1) + zwu(ji,jj) ) * fmask(ji,jj,jk) / ( e1f(ji,jj)*e2f(ji,jj))197 & - zwu(ji ,jj+1) + zwu(ji,jj) ) * fmask(ji,jj,jk) * r1_e1e2f(ji,jj) 198 198 END DO 199 199 END DO … … 203 203 ii = nicoa(jl,1,jk) 204 204 ij = njcoa(jl,1,jk) 205 rotn(ii,ij,jk) = 1. / ( e1f(ii,ij) * e2f(ii,ij) ) & 206 * ( + 4. * zwv(ii+1,ij) - zwv(ii+2,ij) + 0.2 * zwv(ii+3,ij) ) 205 rotn(ii,ij,jk) = r1_e1e2f(ji,jj) * ( + 4. * zwv(ii+1,ij) - zwv(ii+2,ij) + 0.2 * zwv(ii+3,ij) ) 207 206 END DO 208 207 DO jl = 1, npcoa(2,jk) 209 208 ii = nicoa(jl,2,jk) 210 209 ij = njcoa(jl,2,jk) 211 rotn(ii,ij,jk) = 1./(e1f(ii,ij)*e2f(ii,ij)) & 212 *(-4.*zwv(ii,ij)+zwv(ii-1,ij)-0.2*zwv(ii-2,ij)) 210 rotn(ii,ij,jk) = r1_e1e2f(ji,jj) * (-4.*zwv(ii,ij)+zwv(ii-1,ij)-0.2*zwv(ii-2,ij)) 213 211 END DO 214 212 DO jl = 1, npcoa(3,jk) 215 213 ii = nicoa(jl,3,jk) 216 214 ij = njcoa(jl,3,jk) 217 rotn(ii,ij,jk) = -1. / ( e1f(ii,ij)*e2f(ii,ij) ) & 218 * ( +4. * zwu(ii,ij+1) - zwu(ii,ij+2) + 0.2 * zwu(ii,ij+3) ) 215 rotn(ii,ij,jk) = -r1_e1e2f(ji,jj) * ( +4. * zwu(ii,ij+1) - zwu(ii,ij+2) + 0.2 * zwu(ii,ij+3) ) 219 216 END DO 220 217 DO jl = 1, npcoa(4,jk) 221 218 ii = nicoa(jl,4,jk) 222 219 ij = njcoa(jl,4,jk) 223 rotn(ii,ij,jk) = -1. / ( e1f(ii,ij)*e2f(ii,ij) ) & 224 * ( -4. * zwu(ii,ij) + zwu(ii,ij-1) - 0.2 * zwu(ii,ij-2) ) 220 rotn(ii,ij,jk) = -r1_e1e2f(ji,jj) * ( -4. * zwu(ii,ij) + zwu(ii,ij-1) - 0.2 * zwu(ii,ij-2) ) 225 221 END DO 226 222 ! ! =============== … … 302 298 ( e2u(ji,jj)*fse3u(ji,jj,jk) * un(ji,jj,jk) - e2u(ji-1,jj)*fse3u(ji-1,jj,jk) * un(ji-1,jj,jk) & 303 299 + e1v(ji,jj)*fse3v(ji,jj,jk) * vn(ji,jj,jk) - e1v(ji,jj-1)*fse3v(ji,jj-1,jk) * vn(ji,jj-1,jk) ) & 304 / ( e1 t(ji,jj) *e2t(ji,jj) * fse3t(ji,jj,jk) )300 / ( e1e2t(ji,jj) * fse3t(ji,jj,jk) ) 305 301 END DO 306 302 END DO … … 320 316 rotn(ji,jj,jk) = ( e2v(ji+1,jj ) * vn(ji+1,jj ,jk) - e2v(ji,jj) * vn(ji,jj,jk) & 321 317 & - e1u(ji ,jj+1) * un(ji ,jj+1,jk) + e1u(ji,jj) * un(ji,jj,jk) ) & 322 & * fmask(ji,jj,jk) / ( e1f(ji,jj) * e2f(ji,jj))318 & * fmask(ji,jj,jk) * r1_e1e2f(ji,jj) 323 319 END DO 324 320 END DO -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_cen2.F90
r4990 r5737 90 90 DO jj = 2, jpjm1 ! divergence of horizontal momentum fluxes 91 91 DO ji = fs_2, fs_jpim1 ! vector opt. 92 zbu = e1 u(ji,jj) *e2u(ji,jj) * fse3u(ji,jj,jk)93 zbv = e1 v(ji,jj) *e2v(ji,jj) * fse3v(ji,jj,jk)92 zbu = e1e2u(ji,jj) * fse3u(ji,jj,jk) 93 zbv = e1e2v(ji,jj) * fse3v(ji,jj,jk) 94 94 ! 95 95 ua(ji,jj,jk) = ua(ji,jj,jk) - ( zfu_t(ji+1,jj ,jk) - zfu_t(ji ,jj ,jk) & … … 114 114 DO jk = 1, jpkm1 ! ==================== ! 115 115 ! ! Vertical volume fluxesÊ 116 zfw(:,:,jk) = 0.25 * e1 t(:,:) *e2t(:,:) * wn(:,:,jk)116 zfw(:,:,jk) = 0.25 * e1e2t(:,:) * wn(:,:,jk) 117 117 ! 118 118 IF( jk == 1 ) THEN ! surface/bottom advective fluxes … … 144 144 DO ji = fs_2, fs_jpim1 ! vector opt. 145 145 ua(ji,jj,jk) = ua(ji,jj,jk) - ( zfu_uw(ji,jj,jk) - zfu_uw(ji,jj,jk+1) ) & 146 & / ( e1 u(ji,jj) *e2u(ji,jj) * fse3u(ji,jj,jk) )146 & / ( e1e2u(ji,jj) * fse3u(ji,jj,jk) ) 147 147 va(ji,jj,jk) = va(ji,jj,jk) - ( zfv_vw(ji,jj,jk) - zfv_vw(ji,jj,jk+1) ) & 148 & / ( e1 v(ji,jj) *e2v(ji,jj) * fse3v(ji,jj,jk) )148 & / ( e1e2v(ji,jj) * fse3v(ji,jj,jk) ) 149 149 END DO 150 150 END DO -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_ubs.F90
r5069 r5737 181 181 DO jj = 2, jpjm1 ! divergence of horizontal momentum fluxes 182 182 DO ji = fs_2, fs_jpim1 ! vector opt. 183 zbu = e1 u(ji,jj) *e2u(ji,jj) * fse3u(ji,jj,jk)184 zbv = e1 v(ji,jj) *e2v(ji,jj) * fse3v(ji,jj,jk)183 zbu = e1e2u(ji,jj) * fse3u(ji,jj,jk) 184 zbv = e1e2v(ji,jj) * fse3v(ji,jj,jk) 185 185 ! 186 186 ua(ji,jj,jk) = ua(ji,jj,jk) - ( zfu_t(ji+1,jj ,jk) - zfu_t(ji ,jj ,jk) & … … 203 203 DO jk = 1, jpkm1 ! ==================== ! 204 204 ! ! Vertical volume fluxesÊ 205 zfw(:,:,jk) = 0.25 * e1 t(:,:) *e2t(:,:) * wn(:,:,jk)205 zfw(:,:,jk) = 0.25 * e1e2t(:,:) * wn(:,:,jk) 206 206 ! 207 207 IF( jk == 1 ) THEN ! surface/bottom advective fluxes … … 233 233 DO ji = fs_2, fs_jpim1 ! vector opt. 234 234 ua(ji,jj,jk) = ua(ji,jj,jk) - ( zfu_uw(ji,jj,jk) - zfu_uw(ji,jj,jk+1) ) & 235 & / ( e1 u(ji,jj) *e2u(ji,jj) * fse3u(ji,jj,jk) )235 & / ( e1e2u(ji,jj) * fse3u(ji,jj,jk) ) 236 236 va(ji,jj,jk) = va(ji,jj,jk) - ( zfv_vw(ji,jj,jk) - zfv_vw(ji,jj,jk+1) ) & 237 & / ( e1 v(ji,jj) *e2v(ji,jj) * fse3v(ji,jj,jk) )237 & / ( e1e2v(ji,jj) * fse3v(ji,jj,jk) ) 238 238 END DO 239 239 END DO -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r5224 r5737 1046 1046 DO jj = 2, jpjm1 1047 1047 DO ji = 2, jpim1 1048 zsshu_n(ji,jj) = (e1 2u(ji,jj) * sshn(ji,jj) + e12u(ji+1, jj) * sshn(ji+1,jj)) * &1049 & r1_e1 2u(ji,jj) * umask(ji,jj,1) * 0.5_wp1050 zsshv_n(ji,jj) = (e1 2v(ji,jj) * sshn(ji,jj) + e12v(ji+1, jj) * sshn(ji,jj+1)) * &1051 & r1_e1 2v(ji,jj) * vmask(ji,jj,1) * 0.5_wp1048 zsshu_n(ji,jj) = (e1e2u(ji,jj) * sshn(ji,jj) + e1e2u(ji+1, jj) * sshn(ji+1,jj)) * & 1049 & r1_e1e2u(ji,jj) * umask(ji,jj,1) * 0.5_wp 1050 zsshv_n(ji,jj) = (e1e2v(ji,jj) * sshn(ji,jj) + e1e2v(ji+1, jj) * sshn(ji,jj+1)) * & 1051 & r1_e1e2v(ji,jj) * vmask(ji,jj,1) * 0.5_wp 1052 1052 END DO 1053 1053 END DO -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilap.F90
r4990 r5737 113 113 DO ji = fs_2, fs_jpim1 ! vector opt. 114 114 zlu(ji,jj,jk) = - ( zuf(ji,jj,jk) - zuf(ji,jj-1,jk) ) / ( e2u(ji,jj) * fse3u(ji,jj,jk) ) & 115 & + ( hdivb(ji+1,jj,jk) - hdivb(ji,jj,jk) ) /e1u(ji,jj)115 & + ( hdivb(ji+1,jj,jk) - hdivb(ji,jj,jk) ) * r1_e1u(ji,jj) 116 116 117 117 zlv(ji,jj,jk) = + ( zuf(ji,jj,jk) - zuf(ji-1,jj,jk) ) / ( e1v(ji,jj) * fse3v(ji,jj,jk) ) & 118 & + ( hdivb(ji,jj+1,jk) - hdivb(ji,jj,jk) ) /e2v(ji,jj)118 & + ( hdivb(ji,jj+1,jk) - hdivb(ji,jj,jk) ) * r1_e2v(ji,jj) 119 119 END DO 120 120 END DO … … 122 122 DO jj = 2, jpjm1 123 123 DO ji = fs_2, fs_jpim1 ! vector opt. 124 zlu(ji,jj,jk) = - ( rotb (ji ,jj,jk) - rotb (ji,jj-1,jk) ) /e2u(ji,jj) &125 & + ( hdivb(ji+1,jj,jk) - hdivb(ji,jj ,jk) ) /e1u(ji,jj)126 127 zlv(ji,jj,jk) = + ( rotb (ji,jj ,jk) - rotb (ji-1,jj,jk) ) /e1v(ji,jj) &128 & + ( hdivb(ji,jj+1,jk) - hdivb(ji ,jj,jk) ) /e2v(ji,jj)124 zlu(ji,jj,jk) = - ( rotb (ji ,jj,jk) - rotb (ji,jj-1,jk) ) * r1_e2u(ji,jj) & 125 & + ( hdivb(ji+1,jj,jk) - hdivb(ji,jj ,jk) ) * r1_e1u(ji,jj) 126 127 zlv(ji,jj,jk) = + ( rotb (ji,jj ,jk) - rotb (ji-1,jj,jk) ) * r1_e1v(ji,jj) & 128 & + ( hdivb(ji,jj+1,jk) - hdivb(ji ,jj,jk) ) * r1_e2v(ji,jj) 129 129 END DO 130 130 END DO … … 152 152 DO ji = 1, fs_jpim1 ! vector opt. 153 153 zuf(ji,jj,jk) = fmask(ji,jj,jk) * ( zcv(ji+1,jj ) - zcv(ji,jj) & 154 & - zcu(ji ,jj+1) + zcu(ji,jj) ) &155 & * fse3f(ji,jj,jk) / ( e1f(ji,jj)*e2f(ji,jj))154 & - zcu(ji ,jj+1) + zcu(ji,jj) ) & 155 & * fse3f(ji,jj,jk) * r1_e1e2f(ji,jj) 156 156 END DO 157 157 END DO … … 168 168 DO jj = 2, jpj 169 169 DO ji = fs_2, jpi ! vector opt. 170 zbt = e1 t(ji,jj) *e2t(ji,jj) * fse3t(ji,jj,jk)170 zbt = e1e2t(ji,jj) * fse3t(ji,jj,jk) 171 171 zut(ji,jj,jk) = ( zlu(ji,jj,jk) - zlu(ji-1,jj ,jk) & 172 172 & + zlv(ji,jj,jk) - zlv(ji ,jj-1,jk) ) / zbt … … 192 192 ! horizontal biharmonic diffusive trends 193 193 zua = - ( zuf(ji ,jj,jk) - zuf(ji,jj-1,jk) ) / ze2u & 194 & + ( zut(ji+1,jj,jk) - zut(ji,jj ,jk) ) /e1u(ji,jj)194 & + ( zut(ji+1,jj,jk) - zut(ji,jj ,jk) ) * r1_e1u(ji,jj) 195 195 196 196 zva = + ( zuf(ji,jj ,jk) - zuf(ji-1,jj,jk) ) / ze2v & 197 & + ( zut(ji,jj+1,jk) - zut(ji ,jj,jk) ) /e2v(ji,jj)197 & + ( zut(ji,jj+1,jk) - zut(ji ,jj,jk) ) * r1_e2v(ji,jj) 198 198 ! add it to the general momentum trends 199 199 ua(ji,jj,jk) = ua(ji,jj,jk) + zua * ( fsahmu(ji,jj,jk)*nkahm_smag +(1 -nkahm_smag )) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_lap.F90
r4990 r5737 80 80 ! horizontal diffusive trends 81 81 zua = - ( ze2u - rotb (ji,jj-1,jk)*fsahmf(ji,jj-1,jk)*fse3f(ji,jj-1,jk) ) / ( e2u(ji,jj) * fse3u(ji,jj,jk) ) & 82 + ( hdivb(ji+1,jj,jk)*fsahmt(ji+1,jj,jk) - ze1v ) /e1u(ji,jj)82 + ( hdivb(ji+1,jj,jk)*fsahmt(ji+1,jj,jk) - ze1v ) * r1_e1u(ji,jj) 83 83 84 84 zva = + ( ze2u - rotb (ji-1,jj,jk)*fsahmf(ji-1,jj,jk)*fse3f(ji-1,jj,jk) ) / ( e1v(ji,jj) * fse3v(ji,jj,jk) ) & 85 + ( hdivb(ji,jj+1,jk)*fsahmt(ji,jj+1,jk) - ze1v ) /e2v(ji,jj)85 + ( hdivb(ji,jj+1,jk)*fsahmt(ji,jj+1,jk) - ze1v ) * r1_e2v(ji,jj) 86 86 87 87 ! add it to the general momentum trends -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r5656 r5737 108 108 END FUNCTION dyn_spg_ts_alloc 109 109 110 110 111 SUBROUTINE dyn_spg_ts( kt ) 111 112 !!---------------------------------------------------------------------- … … 338 339 DO jj = 2, jpjm1 339 340 DO ji = fs_2, fs_jpim1 ! vector opt. 340 zy1 = ( zwy(ji,jj-1) + zwy(ji+1,jj-1) ) /e1u(ji,jj)341 zy2 = ( zwy(ji,jj ) + zwy(ji+1,jj ) ) /e1u(ji,jj)342 zx1 = ( zwx(ji-1,jj) + zwx(ji-1,jj+1) ) /e2v(ji,jj)343 zx2 = ( zwx(ji ,jj) + zwx(ji ,jj+1) ) /e2v(ji,jj)341 zy1 = ( zwy(ji,jj-1) + zwy(ji+1,jj-1) ) * r1_e1u(ji,jj) 342 zy2 = ( zwy(ji,jj ) + zwy(ji+1,jj ) ) * r1_e1u(ji,jj) 343 zx1 = ( zwx(ji-1,jj) + zwx(ji-1,jj+1) ) * r1_e2v(ji,jj) 344 zx2 = ( zwx(ji ,jj) + zwx(ji ,jj+1) ) * r1_e2v(ji,jj) 344 345 ! energy conserving formulation for planetary vorticity term 345 346 zu_trd(ji,jj) = z1_4 * ( zwz(ji ,jj-1) * zy1 + zwz(ji,jj) * zy2 ) … … 352 353 DO ji = fs_2, fs_jpim1 ! vector opt. 353 354 zy1 = z1_8 * ( zwy(ji ,jj-1) + zwy(ji+1,jj-1) & 354 & + zwy(ji ,jj ) + zwy(ji+1,jj ) ) /e1u(ji,jj)355 & + zwy(ji ,jj ) + zwy(ji+1,jj ) ) * r1_e1u(ji,jj) 355 356 zx1 = - z1_8 * ( zwx(ji-1,jj ) + zwx(ji-1,jj+1) & 356 & + zwx(ji ,jj ) + zwx(ji ,jj+1) ) /e2v(ji,jj)357 & + zwx(ji ,jj ) + zwx(ji ,jj+1) ) * r1_e2v(ji,jj) 357 358 zu_trd(ji,jj) = zy1 * ( zwz(ji ,jj-1) + zwz(ji,jj) ) 358 359 zv_trd(ji,jj) = zx1 * ( zwz(ji-1,jj ) + zwz(ji,jj) ) … … 363 364 DO jj = 2, jpjm1 364 365 DO ji = fs_2, fs_jpim1 ! vector opt. 365 zu_trd(ji,jj) = + z1_12 /e1u(ji,jj) * ( ftne(ji,jj ) * zwy(ji ,jj ) &366 & + ftnw(ji+1,jj) * zwy(ji+1,jj ) &367 & + ftse(ji,jj ) * zwy(ji ,jj-1) &368 & + ftsw(ji+1,jj) * zwy(ji+1,jj-1) )369 zv_trd(ji,jj) = - z1_12 /e2v(ji,jj) * ( ftsw(ji,jj+1) * zwx(ji-1,jj+1) &370 & + ftse(ji,jj+1) * zwx(ji ,jj+1) &371 & + ftnw(ji,jj ) * zwx(ji-1,jj ) &372 & + ftne(ji,jj ) * zwx(ji ,jj ) )366 zu_trd(ji,jj) = + z1_12 * r1_e1u(ji,jj) * ( ftne(ji,jj ) * zwy(ji ,jj ) & 367 & + ftnw(ji+1,jj) * zwy(ji+1,jj ) & 368 & + ftse(ji,jj ) * zwy(ji ,jj-1) & 369 & + ftsw(ji+1,jj) * zwy(ji+1,jj-1) ) 370 zv_trd(ji,jj) = - z1_12 * r1_e2v(ji,jj) * ( ftsw(ji,jj+1) * zwx(ji-1,jj+1) & 371 & + ftse(ji,jj+1) * zwx(ji ,jj+1) & 372 & + ftnw(ji,jj ) * zwx(ji-1,jj ) & 373 & + ftne(ji,jj ) * zwx(ji ,jj ) ) 373 374 END DO 374 375 END DO … … 381 382 DO jj = 2, jpjm1 382 383 DO ji = fs_2, fs_jpim1 ! vector opt. 383 zu_trd(ji,jj) = zu_trd(ji,jj) - grav * ( sshn(ji+1,jj ) - sshn(ji ,jj ) ) /e1u(ji,jj)384 zv_trd(ji,jj) = zv_trd(ji,jj) - grav * ( sshn(ji ,jj+1) - sshn(ji ,jj ) ) /e2v(ji,jj)384 zu_trd(ji,jj) = zu_trd(ji,jj) - grav * ( sshn(ji+1,jj ) - sshn(ji ,jj ) ) * r1_e1u(ji,jj) 385 zv_trd(ji,jj) = zv_trd(ji,jj) - grav * ( sshn(ji ,jj+1) - sshn(ji ,jj ) ) * r1_e2v(ji,jj) 385 386 END DO 386 387 END DO … … 431 432 DO jj = 2, jpjm1 432 433 DO ji = fs_2, fs_jpim1 ! vector opt. 433 zu_spg = grav * ( ssh_ib (ji+1,jj ) - ssh_ib (ji,jj) ) /e1u(ji,jj)434 zv_spg = grav * ( ssh_ib (ji ,jj+1) - ssh_ib (ji,jj) ) /e2v(ji,jj)434 zu_spg = grav * ( ssh_ib (ji+1,jj ) - ssh_ib (ji,jj) ) * r1_e1u(ji,jj) 435 zv_spg = grav * ( ssh_ib (ji ,jj+1) - ssh_ib (ji,jj) ) * r1_e2v(ji,jj) 435 436 zu_frc(ji,jj) = zu_frc(ji,jj) + zu_spg 436 437 zv_frc(ji,jj) = zv_frc(ji,jj) + zv_spg … … 441 442 DO ji = fs_2, fs_jpim1 ! vector opt. 442 443 zu_spg = grav * z1_2 * ( ssh_ib (ji+1,jj ) - ssh_ib (ji,jj) & 443 & + ssh_ibb(ji+1,jj ) - ssh_ibb(ji,jj) ) /e1u(ji,jj)444 & + ssh_ibb(ji+1,jj ) - ssh_ibb(ji,jj) ) * r1_e1u(ji,jj) 444 445 zv_spg = grav * z1_2 * ( ssh_ib (ji ,jj+1) - ssh_ib (ji,jj) & 445 & + ssh_ibb(ji ,jj+1) - ssh_ibb(ji,jj) ) /e2v(ji,jj)446 & + ssh_ibb(ji ,jj+1) - ssh_ibb(ji,jj) ) * r1_e2v(ji,jj) 446 447 zu_frc(ji,jj) = zu_frc(ji,jj) + zu_spg 447 448 zv_frc(ji,jj) = zv_frc(ji,jj) + zv_spg … … 549 550 DO jj = 2, jpjm1 ! Sea Surface Height at u- & v-points 550 551 DO ji = 2, fs_jpim1 ! Vector opt. 551 zwx(ji,jj) = z1_2 * umask(ji,jj,1) * r1_e1 2u(ji,jj) &552 & * ( e1 2t(ji ,jj) * zsshp2_e(ji ,jj) &553 & + e1 2t(ji+1,jj) * zsshp2_e(ji+1,jj) )554 zwy(ji,jj) = z1_2 * vmask(ji,jj,1) * r1_e1 2v(ji,jj) &555 & * ( e1 2t(ji,jj ) * zsshp2_e(ji,jj ) &556 & + e1 2t(ji,jj+1) * zsshp2_e(ji,jj+1) )552 zwx(ji,jj) = z1_2 * umask(ji,jj,1) * r1_e1e2u(ji,jj) & 553 & * ( e1e2t(ji ,jj) * zsshp2_e(ji ,jj) & 554 & + e1e2t(ji+1,jj) * zsshp2_e(ji+1,jj) ) 555 zwy(ji,jj) = z1_2 * vmask(ji,jj,1) * r1_e1e2v(ji,jj) & 556 & * ( e1e2t(ji,jj ) * zsshp2_e(ji,jj ) & 557 & + e1e2t(ji,jj+1) * zsshp2_e(ji,jj+1) ) 557 558 END DO 558 559 END DO … … 602 603 ! Sum over sub-time-steps to compute advective velocities 603 604 za2 = wgtbtp2(jn) 604 zu_sum (:,:) = zu_sum (:,:) + za2 * zwx (:,:) / e2u(:,:)605 zv_sum (:,:) = zv_sum (:,:) + za2 * zwy (:,:) / e1v(:,:)605 zu_sum(:,:) = zu_sum(:,:) + za2 * zwx(:,:) * r1_e2u(:,:) 606 zv_sum(:,:) = zv_sum(:,:) + za2 * zwy(:,:) * r1_e1v(:,:) 606 607 ! 607 608 ! Set next sea level: … … 609 610 DO ji = fs_2, fs_jpim1 ! vector opt. 610 611 zhdiv(ji,jj) = ( zwx(ji,jj) - zwx(ji-1,jj) & 611 & + zwy(ji,jj) - zwy(ji,jj-1) ) * r1_e1 2t(ji,jj)612 & + zwy(ji,jj) - zwy(ji,jj-1) ) * r1_e1e2t(ji,jj) 612 613 END DO 613 614 END DO … … 627 628 DO jj = 2, jpjm1 628 629 DO ji = 2, jpim1 ! NO Vector Opt. 629 zsshu_a(ji,jj) = z1_2 * umask(ji,jj,1) * r1_e1 2u(ji,jj) &630 & * ( e1 2t(ji ,jj ) * ssha_e(ji ,jj ) &631 & + e1 2t(ji+1,jj ) * ssha_e(ji+1,jj ) )632 zsshv_a(ji,jj) = z1_2 * vmask(ji,jj,1) * r1_e1 2v(ji,jj) &633 & * ( e1 2t(ji ,jj ) * ssha_e(ji ,jj ) &634 & + e1 2t(ji ,jj+1) * ssha_e(ji ,jj+1) )630 zsshu_a(ji,jj) = z1_2 * umask(ji,jj,1) * r1_e1e2u(ji,jj) & 631 & * ( e1e2t(ji ,jj ) * ssha_e(ji ,jj ) & 632 & + e1e2t(ji+1,jj ) * ssha_e(ji+1,jj ) ) 633 zsshv_a(ji,jj) = z1_2 * vmask(ji,jj,1) * r1_e1e2v(ji,jj) & 634 & * ( e1e2t(ji ,jj ) * ssha_e(ji ,jj ) & 635 & + e1e2t(ji ,jj+1) * ssha_e(ji ,jj+1) ) 635 636 END DO 636 637 END DO … … 666 667 DO jj = 2, jpjm1 667 668 DO ji = 2, jpim1 668 zx1 = z1_2 * umask(ji ,jj,1) * r1_e1 2u(ji ,jj) &669 & * ( e1 2t(ji ,jj ) * zsshp2_e(ji ,jj) &670 & + e1 2t(ji+1,jj ) * zsshp2_e(ji+1,jj ) )671 zy1 = z1_2 * vmask(ji ,jj,1) * r1_e1 2v(ji ,jj ) &672 & * ( e1 2t(ji ,jj ) * zsshp2_e(ji ,jj ) &673 & + e1 2t(ji ,jj+1) * zsshp2_e(ji ,jj+1) )669 zx1 = z1_2 * umask(ji ,jj,1) * r1_e1e2u(ji ,jj) & 670 & * ( e1e2t(ji ,jj ) * zsshp2_e(ji ,jj) & 671 & + e1e2t(ji+1,jj ) * zsshp2_e(ji+1,jj ) ) 672 zy1 = z1_2 * vmask(ji ,jj,1) * r1_e1e2v(ji ,jj ) & 673 & * ( e1e2t(ji ,jj ) * zsshp2_e(ji ,jj ) & 674 & + e1e2t(ji ,jj+1) * zsshp2_e(ji ,jj+1) ) 674 675 zhust_e(ji,jj) = hu_0(ji,jj) + zx1 675 676 zhvst_e(ji,jj) = hv_0(ji,jj) + zy1 … … 688 689 DO jj = 2, jpjm1 689 690 DO ji = fs_2, fs_jpim1 ! vector opt. 690 zy1 = ( zwy(ji ,jj-1) + zwy(ji+1,jj-1) ) /e1u(ji,jj)691 zy2 = ( zwy(ji ,jj ) + zwy(ji+1,jj ) ) /e1u(ji,jj)692 zx1 = ( zwx(ji-1,jj ) + zwx(ji-1,jj+1) ) /e2v(ji,jj)693 zx2 = ( zwx(ji ,jj ) + zwx(ji ,jj+1) ) /e2v(ji,jj)691 zy1 = ( zwy(ji ,jj-1) + zwy(ji+1,jj-1) ) * r1_e1u(ji,jj) 692 zy2 = ( zwy(ji ,jj ) + zwy(ji+1,jj ) ) * r1_e1u(ji,jj) 693 zx1 = ( zwx(ji-1,jj ) + zwx(ji-1,jj+1) ) * r1_e2v(ji,jj) 694 zx2 = ( zwx(ji ,jj ) + zwx(ji ,jj+1) ) * r1_e2v(ji,jj) 694 695 zu_trd(ji,jj) = z1_4 * ( zwz(ji ,jj-1) * zy1 + zwz(ji,jj) * zy2 ) 695 696 zv_trd(ji,jj) =-z1_4 * ( zwz(ji-1,jj ) * zx1 + zwz(ji,jj) * zx2 ) … … 701 702 DO ji = fs_2, fs_jpim1 ! vector opt. 702 703 zy1 = z1_8 * ( zwy(ji ,jj-1) + zwy(ji+1,jj-1) & 703 & + zwy(ji ,jj ) + zwy(ji+1,jj ) ) /e1u(ji,jj)704 & + zwy(ji ,jj ) + zwy(ji+1,jj ) ) * r1_e1u(ji,jj) 704 705 zx1 = - z1_8 * ( zwx(ji-1,jj ) + zwx(ji-1,jj+1) & 705 & + zwx(ji ,jj ) + zwx(ji ,jj+1) ) /e2v(ji,jj)706 & + zwx(ji ,jj ) + zwx(ji ,jj+1) ) * r1_e2v(ji,jj) 706 707 zu_trd(ji,jj) = zy1 * ( zwz(ji ,jj-1) + zwz(ji,jj) ) 707 708 zv_trd(ji,jj) = zx1 * ( zwz(ji-1,jj ) + zwz(ji,jj) ) … … 712 713 DO jj = 2, jpjm1 713 714 DO ji = fs_2, fs_jpim1 ! vector opt. 714 zu_trd(ji,jj) = + z1_12 /e1u(ji,jj) * ( ftne(ji,jj ) * zwy(ji ,jj ) &715 & + ftnw(ji+1,jj) * zwy(ji+1,jj ) &716 & + ftse(ji,jj ) * zwy(ji ,jj-1) &717 & + ftsw(ji+1,jj) * zwy(ji+1,jj-1) )718 zv_trd(ji,jj) = - z1_12 /e2v(ji,jj) * ( ftsw(ji,jj+1) * zwx(ji-1,jj+1) &719 & + ftse(ji,jj+1) * zwx(ji ,jj+1) &720 & + ftnw(ji,jj ) * zwx(ji-1,jj ) &721 & + ftne(ji,jj ) * zwx(ji ,jj ) )715 zu_trd(ji,jj) = + z1_12 * r1_e1u(ji,jj) * ( ftne(ji,jj ) * zwy(ji ,jj ) & 716 & + ftnw(ji+1,jj) * zwy(ji+1,jj ) & 717 & + ftse(ji,jj ) * zwy(ji ,jj-1) & 718 & + ftsw(ji+1,jj) * zwy(ji+1,jj-1) ) 719 zv_trd(ji,jj) = - z1_12 * r1_e2v(ji,jj) * ( ftsw(ji,jj+1) * zwx(ji-1,jj+1) & 720 & + ftse(ji,jj+1) * zwx(ji ,jj+1) & 721 & + ftnw(ji,jj ) * zwx(ji-1,jj ) & 722 & + ftne(ji,jj ) * zwx(ji ,jj ) ) 722 723 END DO 723 724 END DO … … 729 730 DO jj = 2, jpjm1 730 731 DO ji = fs_2, fs_jpim1 ! vector opt. 731 zu_spg = grav * ( pot_astro(ji+1,jj) - pot_astro(ji,jj) ) /e1u(ji,jj)732 zv_spg = grav * ( pot_astro(ji,jj+1) - pot_astro(ji,jj) ) /e2v(ji,jj)732 zu_spg = grav * ( pot_astro(ji+1,jj) - pot_astro(ji,jj) ) * r1_e1u(ji,jj) 733 zv_spg = grav * ( pot_astro(ji,jj+1) - pot_astro(ji,jj) ) * r1_e2v(ji,jj) 733 734 zu_trd(ji,jj) = zu_trd(ji,jj) + zu_spg 734 735 zv_trd(ji,jj) = zv_trd(ji,jj) + zv_spg … … 745 746 DO ji = fs_2, fs_jpim1 ! vector opt. 746 747 ! Add surface pressure gradient 747 zu_spg = - grav * ( zsshp2_e(ji+1,jj) - zsshp2_e(ji,jj) ) /e1u(ji,jj)748 zv_spg = - grav * ( zsshp2_e(ji,jj+1) - zsshp2_e(ji,jj) ) /e2v(ji,jj)748 zu_spg = - grav * ( zsshp2_e(ji+1,jj) - zsshp2_e(ji,jj) ) * r1_e1u(ji,jj) 749 zv_spg = - grav * ( zsshp2_e(ji,jj+1) - zsshp2_e(ji,jj) ) * r1_e2v(ji,jj) 749 750 zwx(ji,jj) = zu_spg 750 751 zwy(ji,jj) = zv_spg … … 850 851 DO jj = 1, jpjm1 851 852 DO ji = 1, jpim1 ! NO Vector Opt. 852 zsshu_a(ji,jj) = z1_2 * umask(ji,jj,1) * r1_e1 2u(ji,jj) &853 & * ( e1 2t(ji ,jj) * ssha(ji ,jj) &854 & + e1 2t(ji+1,jj) * ssha(ji+1,jj) )855 zsshv_a(ji,jj) = z1_2 * vmask(ji,jj,1) * r1_e1 2v(ji,jj) &856 & * ( e1 2t(ji,jj ) * ssha(ji,jj ) &857 & + e1 2t(ji,jj+1) * ssha(ji,jj+1) )853 zsshu_a(ji,jj) = z1_2 * umask(ji,jj,1) * r1_e1e2u(ji,jj) & 854 & * ( e1e2t(ji ,jj) * ssha(ji ,jj) & 855 & + e1e2t(ji+1,jj) * ssha(ji+1,jj) ) 856 zsshv_a(ji,jj) = z1_2 * vmask(ji,jj,1) * r1_e1e2v(ji,jj) & 857 & * ( e1e2t(ji,jj ) * ssha(ji,jj ) & 858 & + e1e2t(ji,jj+1) * ssha(ji,jj+1) ) 858 859 END DO 859 860 END DO … … 1093 1094 DO jj = 1, jpj 1094 1095 DO ji =1, jpi 1095 zxr2 = 1./(e1t(ji,jj)*e1t(ji,jj))1096 zyr2 = 1./(e2t(ji,jj)*e2t(ji,jj))1097 zcu(ji,jj) = sqrt(grav*ht_0(ji,jj)*(zxr2 + zyr2) )1096 zxr2 = r1_e1t(ji,jj) * r1_e1t(ji,jj) 1097 zyr2 = r1_e2t(ji,jj) * r1_e2t(ji,jj) 1098 zcu(ji,jj) = SQRT( grav * ht_0(ji,jj) * (zxr2 + zyr2) ) 1098 1099 END DO 1099 1100 END DO … … 1101 1102 DO jj = 1, jpj 1102 1103 DO ji =1, jpi 1103 zxr2 = 1./(e1t(ji,jj)*e1t(ji,jj))1104 zyr2 = 1./(e2t(ji,jj)*e2t(ji,jj))1105 zcu(ji,jj) = sqrt(grav*ht(ji,jj)*(zxr2 + zyr2) )1106 END DO 1107 END DO 1108 ENDIF 1109 1110 zcmax = MAXVAL( zcu(:,:))1104 zxr2 = r1_e1t(ji,jj) * r1_e1t(ji,jj) 1105 zyr2 = r1_e1t(ji,jj) * r1_e1t(ji,jj) 1106 zcu(ji,jj) = SQRT( grav * ht(ji,jj) * (zxr2 + zyr2) ) 1107 END DO 1108 END DO 1109 ENDIF 1110 1111 zcmax = MAXVAL( zcu(:,:) ) 1111 1112 IF( lk_mpp ) CALL mpp_max( zcmax ) 1112 1113 … … 1114 1115 IF (ln_bt_nn_auto) nn_baro = CEILING( rdt / rn_bt_cmax * zcmax) 1115 1116 1116 rdtbt = rdt / FLOAT(nn_baro)1117 rdtbt = rdt / REAL( nn_baro , wp ) 1117 1118 zcmax = zcmax * rdtbt 1118 1119 ! Print results … … 1194 1195 !!====================================================================== 1195 1196 END MODULE dynspg_ts 1196 1197 1198 -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r5029 r5737 213 213 !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 214 214 !!---------------------------------------------------------------------- 215 !216 215 INTEGER , INTENT(in ) :: kt ! ocean time-step index 217 216 INTEGER , INTENT(in ) :: kvor ! =ncor (planetary) ; =ntot (total) ; … … 237 236 zfact2 = 0.5 * 0.5 ! Local constant initialization 238 237 239 !CDIR PARALLEL DO PRIVATE( zwx, zwy, zwz )240 238 ! ! =============== 241 239 DO jk = 1, jpkm1 ! Horizontal slab … … 252 250 zwz(ji,jj) = ( ( vn(ji+1,jj ,jk) + vn (ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 253 251 & - ( un(ji ,jj+1,jk) + un (ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 254 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj))252 & * 0.5 * r1_e1e2f(ji,jj) 255 253 END DO 256 254 END DO … … 262 260 & + ( ( vn(ji+1,jj ,jk) + vn (ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 263 261 & - ( un(ji ,jj+1,jk) + un (ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 264 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj) )&262 & * 0.5 * r1_e1e2f(ji,jj) & 265 263 & ) 266 264 END DO … … 285 283 zx1 = zwx(ji-1,jj) + zwx(ji-1,jj+1) 286 284 zx2 = zwx(ji ,jj) + zwx(ji ,jj+1) 287 pua(ji,jj,jk) = pua(ji,jj,jk) + zfact2 /e1u(ji,jj) * ( zwz(ji ,jj-1) * zy1 + zwz(ji,jj) * zy2 )288 pva(ji,jj,jk) = pva(ji,jj,jk) - zfact2 /e2v(ji,jj) * ( zwz(ji-1,jj ) * zx1 + zwz(ji,jj) * zx2 )285 pua(ji,jj,jk) = pua(ji,jj,jk) + zfact2 * r1_e1u(ji,jj) * ( zwz(ji ,jj-1) * zy1 + zwz(ji,jj) * zy2 ) 286 pva(ji,jj,jk) = pva(ji,jj,jk) - zfact2 * r1_e2v(ji,jj) * ( zwz(ji-1,jj ) * zx1 + zwz(ji,jj) * zx2 ) 289 287 END DO 290 288 END DO … … 365 363 zww(ji,jj) = ( ( vn(ji+1,jj ,jk) + vn (ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 366 364 & - ( un(ji ,jj+1,jk) + un (ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 367 & * 0.5 / ( e1 f(ji,jj) *e2f (ji,jj) * fse3f(ji,jj,jk) )365 & * 0.5 / ( e1e2f (ji,jj) * fse3f(ji,jj,jk) ) 368 366 END DO 369 367 END DO … … 380 378 zww(ji,jj) = ( ( vn(ji+1,jj ,jk) + vn (ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 381 379 & - ( un(ji ,jj+1,jk) + un (ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 382 & * 0.5 / ( e1f(ji,jj) * e2f (ji,jj))380 & * 0.5 * r1_e1e2f(ji,jj) 383 381 END DO 384 382 END DO … … 393 391 DO jj = 2, jpjm1 394 392 DO ji = fs_2, fs_jpim1 ! vector opt. 395 zy1 = ( zwy(ji,jj-1) + zwy(ji+1,jj-1) ) /e1u(ji,jj)396 zy2 = ( zwy(ji,jj ) + zwy(ji+1,jj ) ) /e1u(ji,jj)397 zx1 = ( zwx(ji-1,jj) + zwx(ji-1,jj+1) ) /e2v(ji,jj)398 zx2 = ( zwx(ji ,jj) + zwx(ji ,jj+1) ) /e2v(ji,jj)393 zy1 = ( zwy(ji,jj-1) + zwy(ji+1,jj-1) ) * r1_e1u(ji,jj) 394 zy2 = ( zwy(ji,jj ) + zwy(ji+1,jj ) ) * r1_e1u(ji,jj) 395 zx1 = ( zwx(ji-1,jj) + zwx(ji-1,jj+1) ) * r1_e2v(ji,jj) 396 zx2 = ( zwx(ji ,jj) + zwx(ji ,jj+1) ) * r1_e2v(ji,jj) 399 397 ! enstrophy conserving formulation for relative vorticity term 400 398 zua = zfact1 * ( zww(ji ,jj-1) + zww(ji,jj) ) * ( zy1 + zy2 ) … … 481 479 zwz(ji,jj) = ( ( vn(ji+1,jj ,jk) + vn (ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 482 480 & - ( un(ji ,jj+1,jk) + un (ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 483 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj))481 & * 0.5 * r1_e1e2f(ji,jj) 484 482 END DO 485 483 END DO … … 491 489 & + ( ( vn(ji+1,jj ,jk) + vn (ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 492 490 & - ( un(ji ,jj+1,jk) + un (ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 493 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj)) &491 & * 0.5 * r1_e1e2f(ji,jj) & 494 492 & ) 495 493 END DO … … 497 495 END SELECT 498 496 ! 499 IF( ln_sco ) THEN 500 DO jj = 1, jpj ! caution: don't use (:,:) for this loop 501 DO ji = 1, jpi ! it causes optimization problems on NEC in auto-tasking 502 zwz(ji,jj) = zwz(ji,jj) / fse3f(ji,jj,jk) 503 zwx(ji,jj) = e2u(ji,jj) * fse3u(ji,jj,jk) * un(ji,jj,jk) 504 zwy(ji,jj) = e1v(ji,jj) * fse3v(ji,jj,jk) * vn(ji,jj,jk) 505 END DO 506 END DO 497 IF( ln_sco ) THEN !== horizontal fluxes ==! 498 zwz(:,:) = zwz(:,:) / fse3f(:,:,jk) 499 zwx(:,:) = e2u(:,:) * fse3u(:,:,jk) * un(:,:,jk) 500 zwy(:,:) = e1v(:,:) * fse3v(:,:,jk) * vn(:,:,jk) 507 501 ELSE 508 DO jj = 1, jpj ! caution: don't use (:,:) for this loop 509 DO ji = 1, jpi ! it causes optimization problems on NEC in auto-tasking 510 zwx(ji,jj) = e2u(ji,jj) * un(ji,jj,jk) 511 zwy(ji,jj) = e1v(ji,jj) * vn(ji,jj,jk) 512 END DO 513 END DO 514 ENDIF 515 ! 516 ! Compute and add the vorticity term trend 517 ! ---------------------------------------- 502 zwx(:,:) = e2u(:,:) * un(:,:,jk) 503 zwy(:,:) = e1v(:,:) * vn(:,:,jk) 504 ENDIF 505 ! !== compute and add the vorticity term trend =! 518 506 DO jj = 2, jpjm1 519 507 DO ji = fs_2, fs_jpim1 ! vector opt. 520 zuav = zfact1 /e1u(ji,jj) * ( zwy(ji ,jj-1) + zwy(ji+1,jj-1) &521 & + zwy(ji ,jj ) + zwy(ji+1,jj ) )522 zvau =-zfact1 /e2v(ji,jj) * ( zwx(ji-1,jj ) + zwx(ji-1,jj+1) &523 & + zwx(ji ,jj ) + zwx(ji ,jj+1) )508 zuav = zfact1 * r1_e1u(ji,jj) * ( zwy(ji ,jj-1) + zwy(ji+1,jj-1) & 509 & + zwy(ji ,jj ) + zwy(ji+1,jj ) ) 510 zvau =-zfact1 * r1_e2v(ji,jj) * ( zwx(ji-1,jj ) + zwx(ji-1,jj+1) & 511 & + zwx(ji ,jj ) + zwx(ji ,jj+1) ) 524 512 pua(ji,jj,jk) = pua(ji,jj,jk) + zuav * ( zwz(ji ,jj-1) + zwz(ji,jj) ) 525 513 pva(ji,jj,jk) = pva(ji,jj,jk) + zvau * ( zwz(ji-1,jj ) + zwz(ji,jj) ) … … 553 541 !! References : Arakawa and Lamb 1980, Mon. Wea. Rev., 109, 18-36 554 542 !!---------------------------------------------------------------------- 555 !556 543 INTEGER , INTENT(in ) :: kt ! ocean time-step index 557 544 INTEGER , INTENT(in ) :: kvor ! =ncor (planetary) ; =ntot (total) ; … … 627 614 zfac12 = 1._wp / 12._wp ! Local constant initialization 628 615 629 630 !CDIR PARALLEL DO PRIVATE( zwx, zwy, zwz, ztnw, ztne, ztsw, ztse )631 616 ! ! =============== 632 617 DO jk = 1, jpkm1 ! Horizontal slab … … 645 630 zwz(ji,jj) = ( ( vn(ji+1,jj ,jk) + vn (ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 646 631 & - ( un(ji ,jj+1,jk) + un (ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 647 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj)) * ze3f(ji,jj,jk)632 & * 0.5 * r1_e1e2f(ji,jj) * ze3f(ji,jj,jk) 648 633 END DO 649 634 END DO … … 657 642 & + ( ( vn(ji+1,jj ,jk) + vn (ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 658 643 & - ( un(ji ,jj+1,jk) + un (ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 659 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj) ) & 660 & ) * ze3f(ji,jj,jk) 644 & * 0.5 * r1_e1e2f(ji,jj) ) * ze3f(ji,jj,jk) 661 645 END DO 662 646 END DO 663 647 CALL lbc_lnk( zwz, 'F', 1. ) 664 648 END SELECT 665 649 ! 650 ! !== horizontal fluxes ==! 666 651 zwx(:,:) = e2u(:,:) * fse3u(:,:,jk) * un(:,:,jk) 667 652 zwy(:,:) = e1v(:,:) * fse3v(:,:,jk) * vn(:,:,jk) 668 653 669 ! Compute and add the vorticity term trend 670 ! ---------------------------------------- 654 ! !== compute and add the vorticity term trend =! 671 655 jj = 2 672 656 ztne(1,:) = 0 ; ztnw(1,:) = 0 ; ztse(1,:) = 0 ; ztsw(1,:) = 0 673 DO ji = 2, jpi 657 DO ji = 2, jpi ! split in 2 parts due to vector opt. 674 658 ztne(ji,jj) = zwz(ji-1,jj ) + zwz(ji ,jj ) + zwz(ji ,jj-1) 675 659 ztnw(ji,jj) = zwz(ji-1,jj-1) + zwz(ji-1,jj ) + zwz(ji ,jj ) … … 687 671 DO jj = 2, jpjm1 688 672 DO ji = fs_2, fs_jpim1 ! vector opt. 689 zua = + zfac12 /e1u(ji,jj) * ( ztne(ji,jj ) * zwy(ji ,jj ) + ztnw(ji+1,jj) * zwy(ji+1,jj ) &673 zua = + zfac12 * r1_e1u(ji,jj) * ( ztne(ji,jj ) * zwy(ji ,jj ) + ztnw(ji+1,jj) * zwy(ji+1,jj ) & 690 674 & + ztse(ji,jj ) * zwy(ji ,jj-1) + ztsw(ji+1,jj) * zwy(ji+1,jj-1) ) 691 zva = - zfac12 /e2v(ji,jj) * ( ztsw(ji,jj+1) * zwx(ji-1,jj+1) + ztse(ji,jj+1) * zwx(ji ,jj+1) &675 zva = - zfac12 * r1_e2v(ji,jj) * ( ztsw(ji,jj+1) * zwx(ji-1,jj+1) + ztse(ji,jj+1) * zwx(ji ,jj+1) & 692 676 & + ztnw(ji,jj ) * zwx(ji-1,jj ) + ztne(ji,jj ) * zwx(ji ,jj ) ) 693 677 pua(ji,jj,jk) = pua(ji,jj,jk) + zua -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynzad.F90
r5120 r5737 85 85 DO jj = 2, jpj ! vertical fluxes 86 86 DO ji = fs_2, jpi ! vector opt. 87 zww(ji,jj) = 0.25_wp * e1 t(ji,jj) *e2t(ji,jj) * wn(ji,jj,jk)87 zww(ji,jj) = 0.25_wp * e1e2t(ji,jj) * wn(ji,jj,jk) 88 88 END DO 89 89 END DO … … 121 121 DO ji = fs_2, fs_jpim1 ! vector opt. 122 122 ! ! vertical momentum advective trends 123 zua = - ( zwuw(ji,jj,jk) + zwuw(ji,jj,jk+1) ) / ( e1 u(ji,jj) *e2u(ji,jj) * fse3u(ji,jj,jk) )124 zva = - ( zwvw(ji,jj,jk) + zwvw(ji,jj,jk+1) ) / ( e1 v(ji,jj) *e2v(ji,jj) * fse3v(ji,jj,jk) )123 zua = - ( zwuw(ji,jj,jk) + zwuw(ji,jj,jk+1) ) / ( e1e2u(ji,jj) * fse3u(ji,jj,jk) ) 124 zva = - ( zwvw(ji,jj,jk) + zwvw(ji,jj,jk+1) ) / ( e1e2v(ji,jj) * fse3v(ji,jj,jk) ) 125 125 ! ! add the trends to the general momentum trends 126 126 ua(ji,jj,jk) = ua(ji,jj,jk) + zua … … 146 146 ! 147 147 END SUBROUTINE dyn_zad 148 148 149 149 150 SUBROUTINE dyn_zad_zts ( kt ) … … 205 206 DO jj = 2, jpj 206 207 DO ji = fs_2, jpi ! vector opt. 207 zww(ji,jj,jk) = 0.25_wp * e1 t(ji,jj) *e2t(ji,jj) * wn(ji,jj,jk)208 zww(ji,jj,jk) = 0.25_wp * e1e2t(ji,jj) * wn(ji,jj,jk) 208 209 END DO 209 210 END DO … … 251 252 DO ji = fs_2, fs_jpim1 ! vector opt. 252 253 ! ! vertical momentum advective trends 253 zua = - ( zwuw(ji,jj,jk) + zwuw(ji,jj,jk+1) ) / ( e1 u(ji,jj) *e2u(ji,jj) * fse3u(ji,jj,jk) )254 zva = - ( zwvw(ji,jj,jk) + zwvw(ji,jj,jk+1) ) / ( e1 v(ji,jj) *e2v(ji,jj) * fse3v(ji,jj,jk) )254 zua = - ( zwuw(ji,jj,jk) + zwuw(ji,jj,jk+1) ) / ( e1e2u(ji,jj) * fse3u(ji,jj,jk) ) 255 zva = - ( zwvw(ji,jj,jk) + zwvw(ji,jj,jk+1) ) / ( e1e2v(ji,jj) * fse3v(ji,jj,jk) ) 255 256 zus(ji,jj,jk,jta) = zus(ji,jj,jk,jtb) + zua * zts 256 257 zvs(ji,jj,jk,jta) = zvs(ji,jj,jk,jtb) + zva * zts -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90
r5656 r5737 193 193 DO jj = 2, jpjm1 194 194 DO ji = fs_2, fs_jpim1 ! vector opt. 195 zhdiv(ji,jj,jk) = r1_e1 2t(ji,jj) * ( un_td(ji,jj,jk) - un_td(ji-1,jj,jk) + vn_td(ji,jj,jk) - vn_td(ji,jj-1,jk) )195 zhdiv(ji,jj,jk) = r1_e1e2t(ji,jj) * ( un_td(ji,jj,jk) - un_td(ji-1,jj,jk) + vn_td(ji,jj,jk) - vn_td(ji,jj-1,jk) ) 196 196 END DO 197 197 END DO
Note: See TracChangeset
for help on using the changeset viewer.