- Timestamp:
- 2017-12-18T18:29:02+01:00 (7 years ago)
- Location:
- branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DYN
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r7761 r9120 494 494 END IF 495 495 496 ! Surface value 497 DO jj = 2, jpjm1 498 DO ji = fs_2, fs_jpim1 ! vector opt. 499 ! hydrostatic pressure gradient along s-surfaces 500 zhpi(ji,jj,1) = zcoef0 * ( e3w_n(ji+1,jj ,1) * ( znad + rhd(ji+1,jj ,1) ) & 501 & - e3w_n(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) * r1_e1u(ji,jj) 502 zhpj(ji,jj,1) = zcoef0 * ( e3w_n(ji ,jj+1,1) * ( znad + rhd(ji ,jj+1,1) ) & 503 & - e3w_n(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) * r1_e2v(ji,jj) 504 ! s-coordinate pressure gradient correction 505 zuap = -zcoef0 * ( rhd (ji+1,jj,1) + rhd (ji,jj,1) + 2._wp * znad ) & 506 & * ( gde3w_n(ji+1,jj,1) - gde3w_n(ji,jj,1) ) * r1_e1u(ji,jj) 507 zvap = -zcoef0 * ( rhd (ji,jj+1,1) + rhd (ji,jj,1) + 2._wp * znad ) & 508 & * ( gde3w_n(ji,jj+1,1) - gde3w_n(ji,jj,1) ) * r1_e2v(ji,jj) 509 510 511 IF( ln_wd ) THEN 512 513 zhpi(ji,jj,1) = zhpi(ji,jj,1) * zcpx(ji,jj) 514 zhpj(ji,jj,1) = zhpj(ji,jj,1) * zcpy(ji,jj) 515 zuap = zuap * zcpx(ji,jj) 516 zvap = zvap * zcpy(ji,jj) 517 ENDIF 518 519 ! add to the general momentum trend 520 ua(ji,jj,1) = ua(ji,jj,1) + zhpi(ji,jj,1) + zuap 521 va(ji,jj,1) = va(ji,jj,1) + zhpj(ji,jj,1) + zvap 522 END DO 523 END DO 524 525 ! interior value (2=<jk=<jpkm1) 526 DO jk = 2, jpkm1 527 DO jj = 2, jpjm1 528 DO ji = fs_2, fs_jpim1 ! vector opt. 529 ! hydrostatic pressure gradient along s-surfaces 530 zhpi(ji,jj,jk) = zhpi(ji,jj,jk-1) + zcoef0 * r1_e1u(ji,jj) & 531 & * ( e3w_n(ji+1,jj,jk) * ( rhd(ji+1,jj,jk) + rhd(ji+1,jj,jk-1) + 2*znad ) & 532 & - e3w_n(ji ,jj,jk) * ( rhd(ji ,jj,jk) + rhd(ji ,jj,jk-1) + 2*znad ) ) 533 zhpj(ji,jj,jk) = zhpj(ji,jj,jk-1) + zcoef0 * r1_e2v(ji,jj) & 534 & * ( e3w_n(ji,jj+1,jk) * ( rhd(ji,jj+1,jk) + rhd(ji,jj+1,jk-1) + 2*znad ) & 535 & - e3w_n(ji,jj ,jk) * ( rhd(ji,jj, jk) + rhd(ji,jj ,jk-1) + 2*znad ) ) 536 ! s-coordinate pressure gradient correction 537 zuap = -zcoef0 * ( rhd (ji+1,jj ,jk) + rhd (ji,jj,jk) + 2._wp * znad ) & 538 & * ( gde3w_n(ji+1,jj ,jk) - gde3w_n(ji,jj,jk) ) * r1_e1u(ji,jj) 539 zvap = -zcoef0 * ( rhd (ji ,jj+1,jk) + rhd (ji,jj,jk) + 2._wp * znad ) & 540 & * ( gde3w_n(ji ,jj+1,jk) - gde3w_n(ji,jj,jk) ) * r1_e2v(ji,jj) 541 542 IF( ln_wd ) THEN 543 zhpi(ji,jj,jk) = zhpi(ji,jj,jk) * zcpx(ji,jj) 544 zhpj(ji,jj,jk) = zhpj(ji,jj,jk) * zcpy(ji,jj) 545 zuap = zuap * zcpx(ji,jj) 546 zvap = zvap * zcpy(ji,jj) 547 ENDIF 548 549 ! add to the general momentum trend 550 ua(ji,jj,jk) = ua(ji,jj,jk) + zhpi(ji,jj,jk) + zuap 551 va(ji,jj,jk) = va(ji,jj,jk) + zhpj(ji,jj,jk) + zvap 552 END DO 553 END DO 554 END DO 496 IF (ln_2d) THEN 497 ! Surface value 498 DO jj = 2, jpjm1 499 DO ji = fs_2, fs_jpim1 ! vector opt. 500 ! hydrostatic pressure gradient along s-surfaces 501 zhpi(ji,jj,1) = zcoef0 * ( e3w_n(ji+1,jj ,1) * znad & 502 & - e3w_n(ji ,jj ,1) * znad ) * r1_e1u(ji,jj) 503 zhpj(ji,jj,1) = zcoef0 * ( e3w_n(ji ,jj+1,1) * znad & 504 & - e3w_n(ji ,jj ,1) * znad ) * r1_e2v(ji,jj) 505 ! s-coordinate pressure gradient correction 506 zuap = -zcoef0 * ( 2._wp * znad ) & 507 & * ( gde3w_n(ji+1,jj,1) - gde3w_n(ji,jj,1) ) * r1_e1u(ji,jj) 508 zvap = -zcoef0 * ( 2._wp * znad ) & 509 & * ( gde3w_n(ji,jj+1,1) - gde3w_n(ji,jj,1) ) * r1_e2v(ji,jj) 510 511 512 IF( ln_wd ) THEN 513 514 zhpi(ji,jj,1) = zhpi(ji,jj,1) * zcpx(ji,jj) 515 zhpj(ji,jj,1) = zhpj(ji,jj,1) * zcpy(ji,jj) 516 zuap = zuap * zcpx(ji,jj) 517 zvap = zvap * zcpy(ji,jj) 518 ENDIF 519 520 ! add to the general momentum trend 521 ua(ji,jj,1) = ua(ji,jj,1) + zhpi(ji,jj,1) + zuap * umask(ji,jj,1) 522 va(ji,jj,1) = va(ji,jj,1) + zhpj(ji,jj,1) + zvap * vmask(ji,jj,1) 523 END DO 524 END DO 525 526 ! interior value (2=<jk=<jpkm1) 527 DO jk = 2, jpkm1 528 DO jj = 2, jpjm1 529 DO ji = fs_2, fs_jpim1 ! vector opt. 530 ! hydrostatic pressure gradient along s-surfaces 531 zhpi(ji,jj,jk) = zhpi(ji,jj,jk-1) + zcoef0 * r1_e1u(ji,jj) & 532 & * ( e3w_n(ji+1,jj,jk) * ( 2*znad ) & 533 & - e3w_n(ji ,jj,jk) * ( 2*znad ) ) 534 zhpj(ji,jj,jk) = zhpj(ji,jj,jk-1) + zcoef0 * r1_e2v(ji,jj) & 535 & * ( e3w_n(ji,jj+1,jk) * ( 2*znad ) & 536 & - e3w_n(ji,jj ,jk) * ( 2*znad ) ) 537 ! s-coordinate pressure gradient correction 538 zuap = -zcoef0 * ( 2._wp * znad ) & 539 & * ( gde3w_n(ji+1,jj ,jk) - gde3w_n(ji,jj,jk) ) * r1_e1u(ji,jj) 540 zvap = -zcoef0 * ( 2._wp * znad ) & 541 & * ( gde3w_n(ji ,jj+1,jk) - gde3w_n(ji,jj,jk) ) * r1_e2v(ji,jj) 542 543 IF( ln_wd ) THEN 544 zhpi(ji,jj,jk) = zhpi(ji,jj,jk) * zcpx(ji,jj) 545 zhpj(ji,jj,jk) = zhpj(ji,jj,jk) * zcpy(ji,jj) 546 zuap = zuap * zcpx(ji,jj) 547 zvap = zvap * zcpy(ji,jj) 548 ENDIF 549 550 ! add to the general momentum trend 551 ua(ji,jj,jk) = ua(ji,jj,jk) + zhpi(ji,jj,jk) + zuap * umask(ji,jj,1) 552 va(ji,jj,jk) = va(ji,jj,jk) + zhpj(ji,jj,jk) + zvap * vmask(ji,jj,1) 553 END DO 554 END DO 555 END DO 556 557 ELSE 558 559 ! Surface value 560 DO jj = 2, jpjm1 561 DO ji = fs_2, fs_jpim1 ! vector opt. 562 ! hydrostatic pressure gradient along s-surfaces 563 zhpi(ji,jj,1) = zcoef0 * ( e3w_n(ji+1,jj ,1) * ( znad + rhd(ji+1,jj ,1) ) & 564 & - e3w_n(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) * r1_e1u(ji,jj) 565 zhpj(ji,jj,1) = zcoef0 * ( e3w_n(ji ,jj+1,1) * ( znad + rhd(ji ,jj+1,1) ) & 566 & - e3w_n(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) * r1_e2v(ji,jj) 567 ! s-coordinate pressure gradient correction 568 zuap = -zcoef0 * ( rhd (ji+1,jj,1) + rhd (ji,jj,1) + 2._wp * znad ) & 569 & * ( gde3w_n(ji+1,jj,1) - gde3w_n(ji,jj,1) ) * r1_e1u(ji,jj) 570 zvap = -zcoef0 * ( rhd (ji,jj+1,1) + rhd (ji,jj,1) + 2._wp * znad ) & 571 & * ( gde3w_n(ji,jj+1,1) - gde3w_n(ji,jj,1) ) * r1_e2v(ji,jj) 572 573 574 IF( ln_wd ) THEN 575 576 zhpi(ji,jj,1) = zhpi(ji,jj,1) * zcpx(ji,jj) 577 zhpj(ji,jj,1) = zhpj(ji,jj,1) * zcpy(ji,jj) 578 zuap = zuap * zcpx(ji,jj) 579 zvap = zvap * zcpy(ji,jj) 580 ENDIF 581 582 ! add to the general momentum trend 583 ua(ji,jj,1) = ua(ji,jj,1) + zhpi(ji,jj,1) + zuap 584 va(ji,jj,1) = va(ji,jj,1) + zhpj(ji,jj,1) + zvap 585 END DO 586 END DO 587 588 ! interior value (2=<jk=<jpkm1) 589 DO jk = 2, jpkm1 590 DO jj = 2, jpjm1 591 DO ji = fs_2, fs_jpim1 ! vector opt. 592 ! hydrostatic pressure gradient along s-surfaces 593 zhpi(ji,jj,jk) = zhpi(ji,jj,jk-1) + zcoef0 * r1_e1u(ji,jj) & 594 & * ( e3w_n(ji+1,jj,jk) * ( rhd(ji+1,jj,jk) + rhd(ji+1,jj,jk-1) + 2*znad ) & 595 & - e3w_n(ji ,jj,jk) * ( rhd(ji ,jj,jk) + rhd(ji ,jj,jk-1) + 2*znad ) ) 596 zhpj(ji,jj,jk) = zhpj(ji,jj,jk-1) + zcoef0 * r1_e2v(ji,jj) & 597 & * ( e3w_n(ji,jj+1,jk) * ( rhd(ji,jj+1,jk) + rhd(ji,jj+1,jk-1) + 2*znad ) & 598 & - e3w_n(ji,jj ,jk) * ( rhd(ji,jj, jk) + rhd(ji,jj ,jk-1) + 2*znad ) ) 599 ! s-coordinate pressure gradient correction 600 zuap = -zcoef0 * ( rhd (ji+1,jj ,jk) + rhd (ji,jj,jk) + 2._wp * znad ) & 601 & * ( gde3w_n(ji+1,jj ,jk) - gde3w_n(ji,jj,jk) ) * r1_e1u(ji,jj) 602 zvap = -zcoef0 * ( rhd (ji ,jj+1,jk) + rhd (ji,jj,jk) + 2._wp * znad ) & 603 & * ( gde3w_n(ji ,jj+1,jk) - gde3w_n(ji,jj,jk) ) * r1_e2v(ji,jj) 604 605 IF( ln_wd ) THEN 606 zhpi(ji,jj,jk) = zhpi(ji,jj,jk) * zcpx(ji,jj) 607 zhpj(ji,jj,jk) = zhpj(ji,jj,jk) * zcpy(ji,jj) 608 zuap = zuap * zcpx(ji,jj) 609 zvap = zvap * zcpy(ji,jj) 610 ENDIF 611 612 ! add to the general momentum trend 613 ua(ji,jj,jk) = ua(ji,jj,jk) + zhpi(ji,jj,jk) + zuap 614 va(ji,jj,jk) = va(ji,jj,jk) + zhpj(ji,jj,jk) + zvap 615 END DO 616 END DO 617 END DO 618 END IF ! if ln_2d 619 555 620 ! 556 621 CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zhpj ) -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90
r7753 r9120 177 177 DO jj = 2, jpjm1 178 178 DO ji = fs_2, fs_jpim1 ! vector opt. 179 ua(ji,jj,jk) = ua(ji,jj,jk) - ( zhke(ji+1,jj ,jk) - zhke(ji,jj,jk) ) / e1u(ji,jj) 180 va(ji,jj,jk) = va(ji,jj,jk) - ( zhke(ji ,jj+1,jk) - zhke(ji,jj,jk) ) / e2v(ji,jj) 179 ua(ji,jj,jk) = ua(ji,jj,jk) - ( zhke(ji+1,jj ,jk) - zhke(ji,jj,jk) ) / e1u(ji,jj) * umask(ji,jj,jk) 180 va(ji,jj,jk) = va(ji,jj,jk) - ( zhke(ji ,jj+1,jk) - zhke(ji,jj,jk) ) / e2v(ji,jj) * vmask(ji,jj,jk) 181 181 END DO 182 182 END DO -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90
r7753 r9120 142 142 DO jj = 2, jpjm1 143 143 DO ji = fs_2, fs_jpim1 ! vector opt. 144 ua(ji,jj,jk) = ua(ji,jj,jk) + spgu(ji,jj) 145 va(ji,jj,jk) = va(ji,jj,jk) + spgv(ji,jj) 144 ua(ji,jj,jk) = ua(ji,jj,jk) + spgu(ji,jj) * umask(ji,jj,jk) 145 va(ji,jj,jk) = va(ji,jj,jk) + spgv(ji,jj) * vmask(ji,jj,jk) 146 146 END DO 147 147 END DO -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r7913 r9120 304 304 zx1 = zwx(ji-1,jj) + zwx(ji-1,jj+1) 305 305 zx2 = zwx(ji ,jj) + zwx(ji ,jj+1) 306 pua(ji,jj,jk) = pua(ji,jj,jk) + r1_4 * r1_e1u(ji,jj) * ( zwz(ji ,jj-1) * zy1 + zwz(ji,jj) * zy2 ) 307 pva(ji,jj,jk) = pva(ji,jj,jk) - r1_4 * r1_e2v(ji,jj) * ( zwz(ji-1,jj ) * zx1 + zwz(ji,jj) * zx2 ) 306 pua(ji,jj,jk) = pua(ji,jj,jk) + r1_4 * r1_e1u(ji,jj) * ( zwz(ji ,jj-1) * zy1 + zwz(ji,jj) * zy2 ) * umask(ji,jj,jk) 307 pva(ji,jj,jk) = pva(ji,jj,jk) - r1_4 * r1_e2v(ji,jj) * ( zwz(ji-1,jj ) * zx1 + zwz(ji,jj) * zx2 ) * vmask(ji,jj,jk) 308 308 END DO 309 309 END DO … … 424 424 zvau =-r1_8 * r1_e2v(ji,jj) * ( zwx(ji-1,jj ) + zwx(ji-1,jj+1) & 425 425 & + zwx(ji ,jj ) + zwx(ji ,jj+1) ) 426 pua(ji,jj,jk) = pua(ji,jj,jk) + zuav * ( zwz(ji ,jj-1) + zwz(ji,jj) ) 427 pva(ji,jj,jk) = pva(ji,jj,jk) + zvau * ( zwz(ji-1,jj ) + zwz(ji,jj) ) 426 pua(ji,jj,jk) = pua(ji,jj,jk) + zuav * ( zwz(ji ,jj-1) + zwz(ji,jj) ) * umask(ji,jj,jk) 427 pva(ji,jj,jk) = pva(ji,jj,jk) + zvau * ( zwz(ji-1,jj ) + zwz(ji,jj) ) * vmask(ji,jj,jk) 428 428 END DO 429 429 END DO … … 591 591 zva = - r1_12 * r1_e2v(ji,jj) * ( ztsw(ji,jj+1) * zwx(ji-1,jj+1) + ztse(ji,jj+1) * zwx(ji ,jj+1) & 592 592 & + ztnw(ji,jj ) * zwx(ji-1,jj ) + ztne(ji,jj ) * zwx(ji ,jj ) ) 593 pua(ji,jj,jk) = pua(ji,jj,jk) + zua 594 pva(ji,jj,jk) = pva(ji,jj,jk) + zva 593 pua(ji,jj,jk) = pua(ji,jj,jk) + zua * umask(ji,jj,jk) 594 pva(ji,jj,jk) = pva(ji,jj,jk) + zva * vmask(ji,jj,jk) 595 595 END DO 596 596 END DO -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DYN/dynzad.F90
r7753 r9120 123 123 zva = - ( zwvw(ji,jj,jk) + zwvw(ji,jj,jk+1) ) * r1_e1e2v(ji,jj) / e3v_n(ji,jj,jk) 124 124 ! ! add the trends to the general momentum trends 125 ua(ji,jj,jk) = ua(ji,jj,jk) + zua 126 va(ji,jj,jk) = va(ji,jj,jk) + zva 125 ua(ji,jj,jk) = ua(ji,jj,jk) + zua * umask(ji,jj,jk) 126 va(ji,jj,jk) = va(ji,jj,jk) + zva * vmask(ji,jj,jk) 127 127 END DO 128 128 END DO
Note: See TracChangeset
for help on using the changeset viewer.