- Timestamp:
- 2018-01-04T13:30:03+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r6795 r9176 120 120 ! -------------------------------------------------------------------- 121 121 ! upstream tracer flux in the i and j direction 122 !$OMP PARALLEL DO PRIVATE(zfp_ui, zfm_ui, zfp_vj, zfm_vj) 122 123 DO jk = 1, jpkm1 123 124 DO jj = 1, jpjm1 … … 133 134 END DO 134 135 END DO 135 136 !$OMP END PARALLEL DO 136 137 ! upstream tracer flux in the k direction 137 138 ! Interior value 139 !$OMP PARALLEL DO PRIVATE(zfp_wk, zfm_wk) 138 140 DO jk = 2, jpkm1 139 141 DO jj = 1, jpj … … 145 147 END DO 146 148 END DO 149 !$OMP END PARALLEL DO 147 150 ! Surface value 148 151 IF( lk_vvl ) THEN … … 158 161 ELSE 159 162 IF ( ln_isfcav ) THEN 163 !$OMP PARALLEL DO 160 164 DO jj = 1, jpj 161 165 DO ji = 1, jpi 162 166 zwz(ji,jj, mikt(ji,jj) ) = pwn(ji,jj,mikt(ji,jj)) * ptb(ji,jj,mikt(ji,jj),jn) ! linear free surface 163 167 END DO 164 END DO 168 END DO 169 !$OMP END PARALLEL DO 165 170 ELSE 166 171 zwz(:,:,1) = pwn(:,:,1) * ptb(:,:,1,jn) ! linear free surface … … 169 174 170 175 ! total advective trend 176 !$OMP PARALLEL DO PRIVATE(z2dtt, ztra) 171 177 DO jk = 1, jpkm1 172 178 z2dtt = p2dt(jk) … … 183 189 END DO 184 190 END DO 191 !$OMP END PARALLEL DO 185 192 ! ! Lateral boundary conditions on zwi (unchanged sign) 186 193 CALL lbc_lnk( zwi, 'T', 1. ) … … 200 207 ! -------------------------------------------------- 201 208 ! antidiffusive flux on i and j 209 !$OMP PARALLEL DO 202 210 DO jk = 1, jpkm1 203 211 DO jj = 1, jpjm1 … … 208 216 END DO 209 217 END DO 210 218 !$OMP END PARALLEL DO 211 219 ! antidiffusive flux on k 212 220 ! Interior value 221 !$OMP PARALLEL DO 213 222 DO jk = 2, jpkm1 214 223 DO jj = 1, jpj … … 218 227 END DO 219 228 END DO 229 !$OMP END PARALLEL DO 220 230 ! surface value 221 231 IF ( ln_isfcav ) THEN … … 238 248 ! 5. final trend with corrected fluxes 239 249 ! ------------------------------------ 250 !$OMP PARALLEL DO PRIVATE(zbtr, ztra) 240 251 DO jk = 1, jpkm1 241 252 DO jj = 2, jpjm1 … … 251 262 END DO 252 263 END DO 253 264 !$OMP END PARALLEL DO 254 265 ! ! trend diagnostics (contribution of upstream fluxes) 255 266 IF( l_trd ) THEN … … 356 367 ! -------------------------------------------------------------------- 357 368 ! upstream tracer flux in the i and j direction 369 !$OMP PARALLEL DO PRIVATE(zfp_ui, zfm_ui, zfp_vj, zfm_vj) 358 370 DO jk = 1, jpkm1 359 371 DO jj = 1, jpjm1 … … 369 381 END DO 370 382 END DO 371 383 !$OMP END PARALLEL DO 372 384 ! upstream tracer flux in the k direction 373 385 ! Interior value 386 !$OMP PARALLEL DO PRIVATE(zfp_wk, zfm_wk) 374 387 DO jk = 2, jpkm1 375 388 DO jj = 1, jpj … … 381 394 END DO 382 395 END DO 396 !$OMP END PARALLEL DO 383 397 ! Surface value 384 398 IF( lk_vvl ) THEN … … 394 408 ELSE 395 409 IF ( ln_isfcav ) THEN 410 !$OMP PARALLEL DO 396 411 DO jj = 1, jpj 397 412 DO ji = 1, jpi … … 399 414 END DO 400 415 END DO 416 !$OMP END PARALLEL DO 401 417 ELSE 402 418 zwz(:,:,1) = pwn(:,:,1) * ptb(:,:,1,jn) ! linear free surface + no isf … … 405 421 406 422 ! total advective trend 423 !$OMP PARALLEL DO PRIVATE(z2dtt, ztra) 407 424 DO jk = 1, jpkm1 408 425 z2dtt = p2dt(jk) … … 419 436 END DO 420 437 END DO 438 !$OMP END PARALLEL DO 421 439 ! ! Lateral boundary conditions on zwi (unchanged sign) 422 440 CALL lbc_lnk( zwi, 'T', 1. ) … … 437 455 ! antidiffusive flux on i and j 438 456 ! 457 !$OMP PARALLEL DO 439 458 DO jk = 1, jpkm1 440 459 ! … … 463 482 END DO 464 483 END DO 465 484 !$OMP END PARALLEL DO 466 485 ! antidiffusive flux on k 467 486 zwz(:,:,1) = 0._wp ! Surface value … … 489 508 jta = MOD(jta,3) + 1 490 509 ENDIF 510 !$OMP PARALLEL DO 491 511 DO jk = 2, jpkm1 ! Interior value 492 512 DO jj = 2, jpjm1 … … 497 517 END DO 498 518 END DO 499 519 !$OMP END PARALLEL DO 500 520 jtaken = MOD( jtaken + 1 , 2 ) 501 521 !$OMP PARALLEL DO PRIVATE (zbtr, ztra) 502 522 DO jk = 2, jpkm1 ! Interior value 503 523 DO jj = 2, jpjm1 … … 510 530 END DO 511 531 END DO 512 513 END DO 514 532 !$OMP END PARALLEL DO 533 END DO 534 !$OMP PARALLEL DO 515 535 DO jk = 2, jpkm1 ! Anti-diffusive vertical flux using average flux from the sub-timestepping 516 536 DO jj = 2, jpjm1 … … 520 540 END DO 521 541 END DO 542 !$OMP END PARALLEL DO 522 543 CALL lbc_lnk( zwx, 'U', -1. ) ; CALL lbc_lnk( zwy, 'V', -1. ) ! Lateral bondary conditions 523 544 CALL lbc_lnk( zwz, 'W', 1. ) … … 530 551 ! 5. final trend with corrected fluxes 531 552 ! ------------------------------------ 553 !$OMP PARALLEL DO PRIVATE(zbtr, ztra) 532 554 DO jk = 1, jpkm1 533 555 DO jj = 2, jpjm1 … … 543 565 END DO 544 566 END DO 545 567 !$OMP END PARALLEL DO 546 568 ! ! trend diagnostics (contribution of upstream fluxes) 547 569 IF( l_trd ) THEN … … 612 634 & paft * tmask + zbig * ( 1._wp - tmask ) ) 613 635 636 !$OMP PARALLEL DO PRIVATE(ikm1, z2dtt, zup, zdo, zpos, zneg, zbt) 614 637 DO jk = 1, jpkm1 615 638 ikm1 = MAX(jk-1,1) … … 647 670 END DO 648 671 END DO 672 !$OMP END PARALLEL DO 649 673 CALL lbc_lnk( zbetup, 'T', 1. ) ; CALL lbc_lnk( zbetdo, 'T', 1. ) ! lateral boundary cond. (unchanged sign) 650 674 651 675 ! 3. monotonic flux in the i & j direction (paa & pbb) 652 676 ! ---------------------------------------- 677 !$OMP PARALLEL DO PRIVATE(zau, zbu, zcu, zav, zbv, zcv, za, zb, zc) 653 678 DO jk = 1, jpkm1 654 679 DO jj = 2, jpjm1 … … 673 698 END DO 674 699 END DO 700 !$OMP END PARALLEL DO 675 701 CALL lbc_lnk( paa, 'U', -1. ) ; CALL lbc_lnk( pbb, 'V', -1. ) ! lateral boundary condition (changed sign) 676 702 !
Note: See TracChangeset
for help on using the changeset viewer.