Changeset 481
- Timestamp:
- 2006-06-19T15:29:54+02:00 (18 years ago)
- Location:
- trunk/NEMO/OPA_SRC/TRA
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/TRA/trabbl.F90
r474 r481 20 20 USE trdmod_oce ! ocean variables trends 21 21 USE in_out_manager ! I/O manager 22 USE lbclnk ! ocean lateral boundary conditions 22 23 USE prtctl ! Print control 23 24 … … 115 116 USE oce, ONLY : ztdta => ua, & ! use ua as 3D workspace 116 117 ztdsa => va ! use va as 3D workspace 117 USE eosbn2 , ONLY : neos ! type ofequation of state118 USE eosbn2 ! equation of state 118 119 119 120 !! * Arguments … … 233 234 SELECT CASE ( neos ) 234 235 235 CASE ( 0 ) ! 0 :Jackett and McDougall (1994) formulation236 CASE ( 0 ) ! Jackett and McDougall (1994) formulation 236 237 237 238 # if defined key_vectopt_loop && ! defined key_mpp_omp … … 321 322 CASE ( 2 ) ! Linear formulation function of temperature and salinity 322 323 323 CALL ctl_stop( ' use of linear eos rho(T,S) = rau0 * ( rbeta * S - ralpha * T )', & 324 & ' bbl not implented: easy to do it ' ) 325 324 # if defined key_vectopt_loop && ! defined key_mpp_omp 325 jj = 1 326 DO ji = 1, jpij-jpi ! vector opt. (forced unrolling) 327 # else 328 DO jj = 1, jpjm1 329 DO ji = 1, jpim1 330 # endif 331 ! local density gradient along i-bathymetric slope 332 zgdrho = - ( rbeta*( zsnb(ji+1,jj) - zsnb(ji,jj) ) & 333 - ralpha*( ztnb(ji+1,jj) - ztnb(ji,jj) ) ) 334 ! sign of local i-gradient of density multiplied by the i-slope 335 zsign = SIGN( 0.5, - zgdrho * ( zdep(ji+1,jj) - zdep(ji,jj) ) ) 336 zki(ji,jj) = ( 0.5 - zsign ) * zahu(ji,jj) 337 # if ! defined key_vectopt_loop || defined key_mpp_omp 338 END DO 339 # endif 340 END DO 341 342 # if defined key_vectopt_loop && ! defined key_mpp_omp 343 jj = 1 344 DO ji = 1, jpij-jpi ! vector opt. (forced unrolling) 345 # else 346 DO jj = 1, jpjm1 347 DO ji = 1, jpim1 348 # endif 349 ! local density gradient along j-bathymetric slope 350 zgdrho = - ( rbeta*( zsnb(ji,jj+1) - zsnb(ji,jj) ) & 351 - ralpha*( ztnb(ji,jj+1) - ztnb(ji,jj) ) ) 352 ! sign of local j-gradient of density multiplied by the j-slope 353 zsign = sign( 0.5, -zgdrho * ( zdep(ji,jj+1) - zdep(ji,jj) ) ) 354 zkj(ji,jj) = ( 0.5 - zsign ) * zahv(ji,jj) 355 # if ! defined key_vectopt_loop || defined key_mpp_omp 356 END DO 357 # endif 358 END DO 359 326 360 CASE DEFAULT 327 361 … … 461 495 !! * Local declarations 462 496 INTEGER :: ji, jj ! dummy loop indices 497 REAL(wp), DIMENSION(jpi,jpj) :: zmbk 498 463 499 NAMELIST/nambbl/ atrbbl 464 500 !!---------------------------------------------------------------------- … … 499 535 END DO 500 536 END DO 501 !!bug ??? 502 !!bug Caution : define the vakue of mbku & mbkv everywhere!!! but lbc mpp lnk : pb when closed (0) 537 538 zmbk(:,:) = FLOAT( mbku (:,:) ) 539 CALL lbc_lnk(zmbk,'U',1.) 540 mbku(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 541 542 zmbk(:,:) = FLOAT( mbkv (:,:) ) 543 CALL lbc_lnk(zmbk,'V',1.) 544 mbkv(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 503 545 504 546 # if defined key_trabbl_adv -
trunk/NEMO/OPA_SRC/TRA/trabbl_adv.h90
r474 r481 55 55 !!---------------------------------------------------------------------- 56 56 !! * Modules used 57 USE eosbn2 58 USE flxrnf 59 USE ocfzpt 60 USE lbclnk 57 USE eosbn2 ! equation of state 61 58 USE oce, ONLY : ztdta => ua, & ! use ua as 3D workspace 62 59 ztdsa => va ! use va as 3D workspace … … 73 70 zgdrho, zbtr, zta, zsa ! " " 74 71 REAL(wp), DIMENSION(jpi,jpj) :: & 75 ztnb, zsnb, zdep, ztbb, zsbb, & ! " " 76 zahu, zahv ! " " 72 ztnb, zsnb, zdep, ztbb, zsbb 77 73 REAL(wp), DIMENSION(jpi,jpj) :: & ! temporary workspace arrays 78 74 zalphax, zwu, zunb, & ! " " … … 82 78 zhdivn ! temporary workspace arrays 83 79 REAL(wp) :: & 84 zfui, zfvj, zbt, zsigna ! temporary scalars 80 zfui, zfvj, zbt, zsigna, & ! temporary scalars 81 iku1, iku2, ikv1, ikv2, & ! temporary scalars 82 ze3u,ze3v 85 83 REAL(wp) :: & 86 84 fsalbt, pft, pfs, pfh ! statement function … … 128 126 #endif 129 127 ik = mbkt(ji,jj) ! index of the bottom ocean T-level 130 ztnb(ji,jj) = tn(ji,jj,ik) * tmask(ji,jj,1) ! masked now T at the ocean bottom131 zsnb(ji,jj) = sn(ji,jj,ik) * tmask(ji,jj,1) ! masked now S at the ocean bottom132 ztbb(ji,jj) = tb(ji,jj,ik) * tmask(ji,jj,1) ! masked before T at the ocean bottom133 zsbb(ji,jj) = sb(ji,jj,ik) * tmask(ji,jj,1) ! masked before S at the ocean bottom128 ztnb(ji,jj) = tn(ji,jj,ik) 129 zsnb(ji,jj) = sn(ji,jj,ik) 130 ztbb(ji,jj) = tb(ji,jj,ik) 131 zsbb(ji,jj) = sb(ji,jj,ik) 134 132 zdep(ji,jj) = fsdept(ji,jj,ik) ! depth of the ocean bottom T-level 135 #if ! defined key_vectopt_loop || defined key_mpp_omp 136 END DO 137 #endif 138 END DO 139 #if defined key_vectopt_loop && ! defined key_mpp_omp 140 jj = 1 141 DO ji = 1, jpij-jpi ! vector opt. (forced unrolling) 142 zunb(ji,jj) = un(ji,jj,mbku(ji,jj)) * umask(ji,jj,1) 143 zvnb(ji,jj) = vn(ji,jj,mbkv(ji,jj)) * vmask(ji,jj,1) ! retirer le mask en u, v et t ! 144 END DO 145 #else 146 DO jj = 1, jpjm1 147 DO ji = 1, jpim1 148 zunb(ji,jj) = un(ji,jj,mbku(ji,jj)) * umask(ji,jj,1) 149 zvnb(ji,jj) = vn(ji,jj,mbkv(ji,jj)) * vmask(ji,jj,1) 150 END DO 151 END DO 152 #endif 153 154 ! boundary conditions on zunb and zvnb (changed sign) 155 CALL lbc_lnk( zunb, 'U', -1. ) ; CALL lbc_lnk( zvnb, 'V', -1. ) 156 ! boundary condition on ztnb and znbb 157 CALL lbc_lnk( ztnb, 'T', 1. ) ; CALL lbc_lnk( ztbb, 'T', 1. ) 158 ! boundary condition on zsnb and zsbb 159 CALL lbc_lnk( zsnb, 'T', 1. ) ; CALL lbc_lnk( zsbb, 'T', 1. ) 133 134 zunb(ji,jj) = un(ji,jj,mbku(ji,jj)) 135 zvnb(ji,jj) = vn(ji,jj,mbkv(ji,jj)) 136 #if ! defined key_vectopt_loop || defined key_mpp_omp 137 END DO 138 #endif 139 END DO 140 160 141 161 142 ! 2. Criteria of additional bottom diffusivity: grad(rho).grad(h)<0 … … 175 156 zh = 0.5 * ( zdep(ji,jj) + zdep(ji+1,jj) ) 176 157 ! ... masked ratio alpha/beta 177 zalbet = fsalbt( zt, zs, zh ) *umask(ji,jj,1)158 zalbet = fsalbt( zt, zs, zh ) * umask(ji,jj,1) 178 159 ! ... local density gradient along i-bathymetric slope 179 zgdrho = zalbet *( ztnb(ji+1,jj) - ztnb(ji,jj) ) &180 -( zsnb(ji+1,jj) - zsnb(ji,jj) )160 zgdrho = zalbet * ( ztnb(ji+1,jj) - ztnb(ji,jj) ) & 161 & - ( zsnb(ji+1,jj) - zsnb(ji,jj) ) 181 162 zgdrho = zgdrho * umask(ji,jj,1) 182 163 ! ... sign of local i-gradient of density multiplied by the i-slope 183 zsign = sign( 0.5, -zgdrho * ( zdep(ji+1,jj) - zdep(ji,jj) ) ) 184 185 zsigna= sign(0.5, zunb(ji,jj)*( zdep(ji+1,jj) - zdep(ji,jj) )) 186 zalphax(ji,jj)=(0.5+zsigna)*(0.5-zsign)*umask(ji,jj,1) 164 zsign = SIGN( 0.5, -zgdrho * ( zdep(ji+1,jj) - zdep(ji,jj) ) ) 165 zsigna= SIGN( 0.5, zunb(ji,jj) * ( zdep(ji+1,jj) - zdep(ji,jj) ) ) 166 zalphax(ji,jj)=( 0.5 + zsigna ) * ( 0.5 - zsign ) * umask(ji,jj,1) 187 167 END DO 188 168 END DO … … 195 175 zh = 0.5 * ( zdep(ji,jj+1) + zdep(ji,jj) ) 196 176 ! ... masked ratio alpha/beta 197 zalbet = fsalbt( zt, zs, zh ) *vmask(ji,jj,1)177 zalbet = fsalbt( zt, zs, zh ) * vmask(ji,jj,1) 198 178 ! ... local density gradient along j-bathymetric slope 199 zgdrho = zalbet *( ztnb(ji,jj+1) - ztnb(ji,jj) ) &200 -( zsnb(ji,jj+1) - zsnb(ji,jj) )179 zgdrho = zalbet * ( ztnb(ji,jj+1) - ztnb(ji,jj) ) & 180 & - ( zsnb(ji,jj+1) - zsnb(ji,jj) ) 201 181 zgdrho = zgdrho*vmask(ji,jj,1) 202 182 ! ... sign of local j-gradient of density multiplied by the j-slope 203 zsign = sign( 0.5, -zgdrho * ( zdep(ji,jj+1) - zdep(ji,jj) ) ) 204 205 zsigna= sign(0.5, zvnb(ji,jj)*(zdep(ji,jj+1) - zdep(ji,jj) ) ) 206 zalphay(ji,jj)=(0.5+zsigna)*(0.5-zsign)*vmask(ji,jj,1) 183 zsign = SIGN( 0.5, -zgdrho * ( zdep(ji,jj+1) - zdep(ji,jj) ) ) 184 zsigna= SIGN( 0.5, zvnb(ji,jj) * ( zdep(ji,jj+1) - zdep(ji,jj) ) ) 185 zalphay(ji,jj)=( 0.5 + zsigna ) * ( 0.5 - zsign ) * vmask(ji,jj,1) 207 186 END DO 208 187 END DO … … 212 191 ! 213 192 DO jj = 1, jpjm1 214 DO ji = 1, jpim1193 DO ji = 1, fs_jpim1 ! vector opt. 215 194 ! local 'density/temperature' gradient along i-bathymetric slope 216 zgdrho = ztnb(ji+1,jj) - ztnb(ji,jj)195 zgdrho = ( ztnb(ji+1,jj) - ztnb(ji,jj) ) 217 196 ! sign of local i-gradient of density multiplied by the i-slope 218 zsign = SIGN( 0.5, - zgdrho * ( zdep(ji+1,jj) - zdep(ji,jj) ) ) 219 220 zsigna= sign(0.5, zunb(ji,jj)*( zdep(ji+1,jj) - zdep(ji,jj) )) 221 zalphax(ji,jj)=(0.5+zsigna)*(0.5-zsign)*umask(ji,jj,1) 222 END DO 223 END DO 224 197 zsign = SIGN( 0.5, - zgdrho * ( zdep(ji+1,jj) - zdep(ji,jj) ) ) 198 zsigna= SIGN( 0.5, zunb(ji,jj) * ( zdep(ji+1,jj) - zdep(ji,jj) ) ) 199 zalphax(ji,jj)=( 0.5 + zsigna ) * ( 0.5 - zsign ) * umask(ji,jj,1) 200 201 ! local density gradient along j-bathymetric slope 202 zgdrho = ( ztnb(ji,jj+1) - ztnb(ji,jj) ) 203 ! sign of local j-gradient of density multiplied by the j-slope 204 zsign = SIGN( 0.5, -zgdrho * ( zdep(ji,jj+1) - zdep(ji,jj) ) ) 205 zsigna= SIGN( 0.5, zvnb(ji,jj) * ( zdep(ji,jj+1) - zdep(ji,jj) ) ) 206 zalphay(ji,jj)=( 0.5 + zsigna ) * ( 0.5 - zsign ) * vmask(ji,jj,1) 207 END DO 208 END DO 209 210 CASE ( 2 ) ! Linear formulation function of temperature and salinity 225 211 DO jj = 1, jpjm1 226 DO ji = 1, jpim1 212 DO ji = 1, fs_jpim1 ! vector opt. 213 ! local density gradient along i-bathymetric slope 214 zgdrho = - ( rbeta*( zsnb(ji+1,jj) - zsnb(ji,jj) ) & 215 & - ralpha*( ztnb(ji+1,jj) - ztnb(ji,jj) ) ) 216 ! sign of local i-gradient of density multiplied by the i-slope 217 zsign = SIGN( 0.5, - zgdrho * ( zdep(ji+1,jj) - zdep(ji,jj) ) ) 218 zsigna= SIGN( 0.5, zunb(ji,jj) * ( zdep(ji+1,jj) - zdep(ji,jj) ) ) 219 zalphax(ji,jj) = ( 0.5 + zsigna ) * ( 0.5 - zsign ) * umask(ji,jj,1) 220 227 221 ! local density gradient along j-bathymetric slope 228 zgdrho = ztnb(ji,jj+1) - ztnb(ji,jj) 222 zgdrho = - ( rbeta*( zsnb(ji,jj+1) - zsnb(ji,jj) ) & 223 - ralpha*( ztnb(ji,jj+1) - ztnb(ji,jj) ) ) 229 224 ! sign of local j-gradient of density multiplied by the j-slope 230 zsign = sign( 0.5, -zgdrho * ( zdep(ji,jj+1) - zdep(ji,jj) ) ) 231 232 zsigna= sign(0.5, zvnb(ji,jj)*(zdep(ji,jj+1) - zdep(ji,jj) ) ) 233 zalphay(ji,jj)=(0.5+zsigna)*(0.5-zsign)*vmask(ji,jj,1) 234 END DO 235 END DO 236 237 CASE ( 2 ) ! Linear formulation function of temperature and salinity 238 239 CALL ctl_stop( ' use of linear eos rho(T,S) = rau0 * ( rbeta * S - ralpha * T )', & 240 & ' bbl not implented: easy to do it ' ) 225 zsign = SIGN( 0.5, - zgdrho * ( zdep(ji,jj+1) - zdep(ji,jj) ) ) 226 zsigna= SIGN( 0.5, zvnb(ji,jj) * ( zdep(ji,jj+1) - zdep(ji,jj) ) ) 227 zalphay(ji,jj) = ( 0.5 + zsigna ) * ( 0.5 - zsign ) * vmask(ji,jj,1) 228 END DO 229 END DO 241 230 242 231 CASE DEFAULT … … 255 244 256 245 ! ... is equal to zero but where bbl will work. 257 u_bbl(:,:,:) = 0.e0 258 v_bbl(:,:,:) = 0.e0 246 u_bbl(:,:,:) = 0.e0 247 v_bbl(:,:,:) = 0.e0 248 249 IF( ln_zps ) THEN ! partial steps correction 250 251 # if defined key_vectopt_loop && ! defined key_mpp_omp 252 jj = 1 253 DO ji = 1, jpij-jpi ! vector opt. (forced unrolling) 254 # else 255 DO jj = 1, jpjm1 256 DO ji = 1, jpim1 257 # endif 258 iku = mbku(ji ,jj ) 259 ikv = mbkv(ji ,jj ) 260 iku1 = mbkt(ji+1,jj ) 261 iku2 = mbkt(ji ,jj ) 262 ikv1 = mbkt(ji ,jj+1) 263 ikv2 = mbkt(ji ,jj ) 264 ze3u = MIN( fse3u(ji,jj,iku1), fse3u(ji,jj,iku2) ) 265 ze3v = MIN( fse3v(ji,jj,ikv1), fse3v(ji,jj,ikv2) ) 266 267 IF( MAX(iku,ikv) > 1 ) THEN 268 u_bbl(ji,jj,iku) = zalphax(ji,jj) * un(ji,jj,iku) * ze3u / fse3u(ji,jj,iku) 269 v_bbl(ji,jj,ikv) = zalphay(ji,jj) * vn(ji,jj,ikv) * ze3v / fse3v(ji,jj,ikv) 270 ENDIF 271 # if ! defined key_vectopt_loop || defined key_mpp_omp 272 END DO 273 # endif 274 END DO 275 276 ! lateral boundary conditions on u_bbl and v_bbl (changed sign) 277 CALL lbc_lnk( u_bbl, 'U', -1. ) ; CALL lbc_lnk( v_bbl, 'V', -1. ) 278 279 ELSE ! if not partial step loop over the whole domain no lbc call 280 281 #if defined key_vectopt_loop && ! defined key_mpp_omp 282 jj = 1 283 DO ji = 1, jpij ! vector opt. (forced unrolling) 284 #else 285 DO jj = 1, jpj 286 DO ji = 1, jpi 287 #endif 288 iku = mbku(ji,jj) 289 ikv = mbkv(ji,jj) 290 IF( MAX(iku,ikv) > 1 ) THEN 291 u_bbl(ji,jj,iku) = zalphax(ji,jj) * un(ji,jj,iku) 292 v_bbl(ji,jj,ikv) = zalphay(ji,jj) * vn(ji,jj,ikv) 293 ENDIF 294 #if ! defined key_vectopt_loop || defined key_mpp_omp 295 END DO 296 #endif 297 END DO 298 299 ENDIF 300 301 302 ! 5. Along sigma advective trend 303 ! ------------------------------- 304 ! ... Second order centered tracer flux at u and v-points 305 259 306 # if defined key_vectopt_loop && ! defined key_mpp_omp 260 307 jj = 1 … … 266 313 iku = mbku(ji,jj) 267 314 ikv = mbkv(ji,jj) 268 IF( MAX(iku,ikv) > 1 ) THEN 269 u_bbl(ji,jj,iku) = zalphax(ji,jj) * un(ji,jj,iku) * umask(ji,jj,1) 270 v_bbl(ji,jj,ikv) = zalphay(ji,jj) * vn(ji,jj,ikv) * vmask(ji,jj,1) 271 ENDIF 272 # if ! defined key_vectopt_loop || defined key_mpp_omp 273 END DO 274 # endif 275 END DO 276 277 ! lateral boundary conditions on u_bbl and v_bbl (changed sign) 278 CALL lbc_lnk( u_bbl, 'U', -1. ) ; CALL lbc_lnk( v_bbl, 'V', -1. ) 279 280 ! 5. Along sigma advective trend 281 ! ------------------------------- 282 ! ... Second order centered tracer flux at u and v-points 283 284 # if defined key_vectopt_loop && ! defined key_mpp_omp 285 jj = 1 286 DO ji = 1, jpij-jpi ! vector opt. (forced unrolling) 287 # else 288 DO jj = 1, jpjm1 289 DO ji = 1, jpim1 290 # endif 291 iku = mbku(ji,jj) 292 ikv = mbkv(ji,jj) 293 zfui = zalphax(ji,jj) *e2u(ji,jj) * fse3u(ji,jj,iku) * zunb(ji,jj) 294 zfvj = zalphay(ji,jj) *e1v(ji,jj) * fse3v(ji,jj,ikv) * zvnb(ji,jj) 315 zfui = e2u(ji,jj) * fse3u(ji,jj,iku) * u_bbl(ji,jj,iku) 316 zfvj = e1v(ji,jj) * fse3v(ji,jj,ikv) * v_bbl(ji,jj,ikv) 295 317 ! centered scheme 296 318 ! zwx(ji,jj) = 0.5* zfui * ( ztnb(ji,jj) + ztnb(ji+1,jj) ) … … 383 405 384 406 ! ... horizontal bottom divergence 385 # if defined key_vectopt_loop && ! defined key_mpp_omp 386 jj = 1 387 DO ji = 1, jpij-jpi ! vector opt. (forced unrolling) 407 408 IF( ln_zps ) THEN 409 410 # if defined key_vectopt_loop && ! defined key_mpp_omp 411 jj = 1 412 DO ji = 1, jpij-jpi ! vector opt. (forced unrolling) 388 413 # else 389 DO jj = 1, jpjm1 390 DO ji = 1, jpim1 391 # endif 392 iku = mbku(ji,jj) 393 ikv = mbkv(ji,jj) 394 zwu(ji,jj) = zalphax(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,iku) 395 zwv(ji,jj) = zalphay(ji,jj) * e1v(ji,jj) * fse3v(ji,jj,ikv) 396 #if ! defined key_vectopt_loop || defined key_mpp_omp 397 END DO 398 #endif 399 END DO 414 DO jj = 1, jpjm1 415 DO ji = 1, jpim1 416 # endif 417 iku = mbku(ji ,jj ) 418 ikv = mbkv(ji ,jj ) 419 iku1 = mbkt(ji+1,jj ) 420 iku2 = mbkt(ji ,jj ) 421 ikv1 = mbkt(ji ,jj+1) 422 ikv2 = mbkt(ji ,jj ) 423 ze3u = MIN( fse3u(ji,jj,iku1), fse3u(ji,jj,iku2) ) 424 ze3v = MIN( fse3v(ji,jj,ikv1), fse3v(ji,jj,ikv2) ) 425 426 zwu(ji,jj) = zalphax(ji,jj) * e2u(ji,jj) * ze3u 427 zwv(ji,jj) = zalphay(ji,jj) * e1v(ji,jj) * ze3v 428 #if ! defined key_vectopt_loop || defined key_mpp_omp 429 END DO 430 #endif 431 END DO 432 433 ELSE 434 435 # if defined key_vectopt_loop && ! defined key_mpp_omp 436 jj = 1 437 DO ji = 1, jpij-jpi ! vector opt. (forced unrolling) 438 # else 439 DO jj = 1, jpjm1 440 DO ji = 1, jpim1 441 # endif 442 iku = mbku(ji,jj) 443 ikv = mbkv(ji,jj) 444 zwu(ji,jj) = zalphax(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,iku) 445 zwv(ji,jj) = zalphay(ji,jj) * e1v(ji,jj) * fse3v(ji,jj,ikv) 446 #if ! defined key_vectopt_loop || defined key_mpp_omp 447 END DO 448 #endif 449 END DO 450 451 ENDIF 452 400 453 401 454 # if defined key_vectopt_loop && ! defined key_mpp_omp … … 409 462 zbt = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,ik) 410 463 zhdivn(ji,jj,ik) = & 411 & ( zwu(ji ,jj ) * ( zunb(ji ,jj ) - un(ji ,jj ,ik) *umask(ji ,jj ,1)) &412 & - zwu(ji-1,jj ) * ( zunb(ji-1,jj ) - un(ji-1,jj ,ik) *umask(ji-1,jj ,1)) &413 & + zwv(ji ,jj ) * ( zvnb(ji ,jj ) - vn(ji ,jj ,ik) *vmask(ji ,jj ,1)) &414 & - zwv(ji ,jj-1) * ( zvnb(ji ,jj-1) - vn(ji ,jj-1,ik) *vmask(ji ,jj-1,1)) &464 & ( zwu(ji ,jj ) * ( zunb(ji ,jj ) - un(ji ,jj ,ik) ) & 465 & - zwu(ji-1,jj ) * ( zunb(ji-1,jj ) - un(ji-1,jj ,ik) ) & 466 & + zwv(ji ,jj ) * ( zvnb(ji ,jj ) - vn(ji ,jj ,ik) ) & 467 & - zwv(ji ,jj-1) * ( zvnb(ji ,jj-1) - vn(ji ,jj-1,ik) ) & 415 468 & ) / zbt 416 469
Note: See TracChangeset
for help on using the changeset viewer.