- Timestamp:
- 2020-09-29T12:41:06+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/r12377_ticket2386
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r12377_ticket2386
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 8 9 9 # SETTE 10 ^/utils/CI/sette@ HEADsette10 ^/utils/CI/sette@13507 sette
-
- Property svn:externals
-
NEMO/branches/2020/r12377_ticket2386/src/OCE/DYN/dynvor.F90
r12377 r13540 80 80 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: di_e2u_2 ! = di(e2u)/2 used in T-point metric term calculation 81 81 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: dj_e1v_2 ! = dj(e1v)/2 - - - - 82 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: di_e2v_2e1e2f ! = di(e2 u)/(2*e1e2f) used in F-point metric term calculation83 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: dj_e1u_2e1e2f ! = dj(e1 v)/(2*e1e2f) - - - -82 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: di_e2v_2e1e2f ! = di(e2v)/(2*e1e2f) used in F-point metric term calculation 83 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: dj_e1u_2e1e2f ! = dj(e1u)/(2*e1e2f) - - - - 84 84 85 85 REAL(wp) :: r1_4 = 0.250_wp ! =1/4 … … 89 89 !! * Substitutions 90 90 # include "do_loop_substitute.h90" 91 # include "domzgr_substitute.h90" 92 91 93 !!---------------------------------------------------------------------- 92 94 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 229 231 CASE ( np_RVO ) !* relative vorticity 230 232 DO jk = 1, jpkm1 ! Horizontal slab 231 DO_2D _10_10233 DO_2D( 1, 0, 1, 0 ) 232 234 zwz(ji,jj,jk) = ( e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk) & 233 235 & - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk) ) * r1_e1e2f(ji,jj) 234 236 END_2D 235 237 IF( ln_dynvor_msk ) THEN ! mask/unmask relative vorticity 236 DO_2D _10_10238 DO_2D( 1, 0, 1, 0 ) 237 239 zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 238 240 END_2D … … 240 242 END DO 241 243 242 CALL lbc_lnk( 'dynvor', zwz, 'F', 1. )244 CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 243 245 244 246 CASE ( np_CRV ) !* Coriolis + relative vorticity 245 247 DO jk = 1, jpkm1 ! Horizontal slab 246 DO_2D _10_10248 DO_2D( 1, 0, 1, 0 ) ! relative vorticity 247 249 zwz(ji,jj,jk) = ( e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk) & 248 250 & - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk) ) * r1_e1e2f(ji,jj) 249 251 END_2D 250 252 IF( ln_dynvor_msk ) THEN ! mask/unmask relative vorticity 251 DO_2D _10_10253 DO_2D( 1, 0, 1, 0 ) 252 254 zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 253 255 END_2D … … 255 257 END DO 256 258 257 CALL lbc_lnk( 'dynvor', zwz, 'F', 1. )259 CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 258 260 259 261 END SELECT … … 267 269 zwt(:,:) = ff_t(:,:) * e1e2t(:,:)*e3t(:,:,jk,Kmm) 268 270 CASE ( np_RVO ) !* relative vorticity 269 DO_2D _01_01271 DO_2D( 0, 1, 0, 1 ) 270 272 zwt(ji,jj) = r1_4 * ( zwz(ji-1,jj ,jk) + zwz(ji,jj ,jk) & 271 & + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) ) * e1e2t(ji,jj)*e3t(ji,jj,jk,Kmm) 273 & + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) ) & 274 & * e1e2t(ji,jj)*e3t(ji,jj,jk,Kmm) 272 275 END_2D 273 276 CASE ( np_MET ) !* metric term 274 DO_2D _01_01277 DO_2D( 0, 1, 0, 1 ) 275 278 zwt(ji,jj) = ( ( pv(ji,jj,jk) + pv(ji,jj-1,jk) ) * di_e2u_2(ji,jj) & 276 & - ( pu(ji,jj,jk) + pu(ji-1,jj,jk) ) * dj_e1v_2(ji,jj) ) * e3t(ji,jj,jk,Kmm) 279 & - ( pu(ji,jj,jk) + pu(ji-1,jj,jk) ) * dj_e1v_2(ji,jj) ) & 280 & * e3t(ji,jj,jk,Kmm) 277 281 END_2D 278 282 CASE ( np_CRV ) !* Coriolis + relative vorticity 279 DO_2D _01_01283 DO_2D( 0, 1, 0, 1 ) 280 284 zwt(ji,jj) = ( ff_t(ji,jj) + r1_4 * ( zwz(ji-1,jj ,jk) + zwz(ji,jj ,jk) & 281 & + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) ) ) * e1e2t(ji,jj)*e3t(ji,jj,jk,Kmm) 285 & + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) ) ) & 286 & * e1e2t(ji,jj)*e3t(ji,jj,jk,Kmm) 282 287 END_2D 283 288 CASE ( np_CME ) !* Coriolis + metric 284 DO_2D _01_01289 DO_2D( 0, 1, 0, 1 ) 285 290 zwt(ji,jj) = ( ff_t(ji,jj) * e1e2t(ji,jj) & 286 291 & + ( pv(ji,jj,jk) + pv(ji,jj-1,jk) ) * di_e2u_2(ji,jj) & 287 & - ( pu(ji,jj,jk) + pu(ji-1,jj,jk) ) * dj_e1v_2(ji,jj) ) * e3t(ji,jj,jk,Kmm) 292 & - ( pu(ji,jj,jk) + pu(ji-1,jj,jk) ) * dj_e1v_2(ji,jj) ) & 293 & * e3t(ji,jj,jk,Kmm) 288 294 END_2D 289 295 CASE DEFAULT ! error … … 292 298 ! 293 299 ! !== compute and add the vorticity term trend =! 294 DO_2D _00_00300 DO_2D( 0, 0, 0, 0 ) 295 301 pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + r1_4 * r1_e1e2u(ji,jj) / e3u(ji,jj,jk,Kmm) & 296 302 & * ( zwt(ji+1,jj) * ( pv(ji+1,jj,jk) + pv(ji+1,jj-1,jk) ) & … … 352 358 zwz(:,:) = ff_f(:,:) 353 359 CASE ( np_RVO ) !* relative vorticity 354 DO_2D _10_10360 DO_2D( 1, 0, 1, 0 ) 355 361 zwz(ji,jj) = ( e2v(ji+1,jj ) * pv(ji+1,jj ,jk) - e2v(ji,jj) * pv(ji,jj,jk) & 356 362 & - e1u(ji ,jj+1) * pu(ji ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk) ) * r1_e1e2f(ji,jj) 357 363 END_2D 358 364 CASE ( np_MET ) !* metric term 359 DO_2D _10_10365 DO_2D( 1, 0, 1, 0 ) 360 366 zwz(ji,jj) = ( pv(ji+1,jj ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj) & 361 367 & - ( pu(ji ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 362 368 END_2D 363 369 CASE ( np_CRV ) !* Coriolis + relative vorticity 364 DO_2D _10_10370 DO_2D( 1, 0, 1, 0 ) 365 371 zwz(ji,jj) = ff_f(ji,jj) + ( e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk) & 366 372 & - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk) ) * r1_e1e2f(ji,jj) 367 373 END_2D 368 374 CASE ( np_CME ) !* Coriolis + metric 369 DO_2D _10_10375 DO_2D( 1, 0, 1, 0 ) 370 376 zwz(ji,jj) = ff_f(ji,jj) + ( pv(ji+1,jj ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj) & 371 377 & - ( pu(ji ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) … … 376 382 ! 377 383 IF( ln_dynvor_msk ) THEN !== mask/unmask vorticity ==! 378 DO_2D _10_10384 DO_2D( 1, 0, 1, 0 ) 379 385 zwz(ji,jj) = zwz(ji,jj) * fmask(ji,jj,jk) 380 386 END_2D … … 390 396 ENDIF 391 397 ! !== compute and add the vorticity term trend =! 392 DO_2D _00_00398 DO_2D( 0, 0, 0, 0 ) 393 399 zy1 = zwy(ji,jj-1) + zwy(ji+1,jj-1) 394 400 zy2 = zwy(ji,jj ) + zwy(ji+1,jj ) … … 448 454 zwz(:,:) = ff_f(:,:) 449 455 CASE ( np_RVO ) !* relative vorticity 450 DO_2D _10_10456 DO_2D( 1, 0, 1, 0 ) 451 457 zwz(ji,jj) = ( e2v(ji+1,jj ) * pv(ji+1,jj ,jk) - e2v(ji,jj) * pv(ji,jj,jk) & 452 458 & - e1u(ji ,jj+1) * pu(ji ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk) ) * r1_e1e2f(ji,jj) 453 459 END_2D 454 460 CASE ( np_MET ) !* metric term 455 DO_2D _10_10461 DO_2D( 1, 0, 1, 0 ) 456 462 zwz(ji,jj) = ( pv(ji+1,jj ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj) & 457 463 & - ( pu(ji ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 458 464 END_2D 459 465 CASE ( np_CRV ) !* Coriolis + relative vorticity 460 DO_2D _10_10466 DO_2D( 1, 0, 1, 0 ) 461 467 zwz(ji,jj) = ff_f(ji,jj) + ( e2v(ji+1,jj ) * pv(ji+1,jj ,jk) - e2v(ji,jj) * pv(ji,jj,jk) & 462 468 & - e1u(ji ,jj+1) * pu(ji ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk) ) * r1_e1e2f(ji,jj) 463 469 END_2D 464 470 CASE ( np_CME ) !* Coriolis + metric 465 DO_2D _10_10471 DO_2D( 1, 0, 1, 0 ) 466 472 zwz(ji,jj) = ff_f(ji,jj) + ( pv(ji+1,jj ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj) & 467 473 & - ( pu(ji ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) … … 472 478 ! 473 479 IF( ln_dynvor_msk ) THEN !== mask/unmask vorticity ==! 474 DO_2D _10_10480 DO_2D( 1, 0, 1, 0 ) 475 481 zwz(ji,jj) = zwz(ji,jj) * fmask(ji,jj,jk) 476 482 END_2D … … 486 492 ENDIF 487 493 ! !== compute and add the vorticity term trend =! 488 DO_2D _00_00494 DO_2D( 0, 0, 0, 0 ) 489 495 zuav = r1_8 * r1_e1u(ji,jj) * ( zwy(ji ,jj-1) + zwy(ji+1,jj-1) & 490 496 & + zwy(ji ,jj ) + zwy(ji+1,jj ) ) … … 544 550 SELECT CASE( nn_een_e3f ) ! == reciprocal of e3 at F-point 545 551 CASE ( 0 ) ! original formulation (masked averaging of e3t divided by 4) 546 DO_2D_10_10 547 ze3f = ( e3t(ji,jj+1,jk,Kmm)*tmask(ji,jj+1,jk) + e3t(ji+1,jj+1,jk,Kmm)*tmask(ji+1,jj+1,jk) & 548 & + e3t(ji,jj ,jk,Kmm)*tmask(ji,jj ,jk) + e3t(ji+1,jj ,jk,Kmm)*tmask(ji+1,jj ,jk) ) 552 DO_2D( 1, 0, 1, 0 ) 553 ze3f = ( e3t(ji ,jj+1,jk,Kmm)*tmask(ji ,jj+1,jk) & 554 & + e3t(ji+1,jj+1,jk,Kmm)*tmask(ji+1,jj+1,jk) & 555 & + e3t(ji ,jj ,jk,Kmm)*tmask(ji ,jj ,jk) & 556 & + e3t(ji+1,jj ,jk,Kmm)*tmask(ji+1,jj ,jk) ) 549 557 IF( ze3f /= 0._wp ) THEN ; z1_e3f(ji,jj) = 4._wp / ze3f 550 558 ELSE ; z1_e3f(ji,jj) = 0._wp … … 552 560 END_2D 553 561 CASE ( 1 ) ! new formulation (masked averaging of e3t divided by the sum of mask) 554 DO_2D_10_10 555 ze3f = ( e3t(ji,jj+1,jk,Kmm)*tmask(ji,jj+1,jk) + e3t(ji+1,jj+1,jk,Kmm)*tmask(ji+1,jj+1,jk) & 556 & + e3t(ji,jj ,jk,Kmm)*tmask(ji,jj ,jk) + e3t(ji+1,jj ,jk,Kmm)*tmask(ji+1,jj ,jk) ) 562 DO_2D( 1, 0, 1, 0 ) 563 ze3f = ( e3t(ji ,jj+1,jk,Kmm)*tmask(ji ,jj+1,jk) & 564 & + e3t(ji+1,jj+1,jk,Kmm)*tmask(ji+1,jj+1,jk) & 565 & + e3t(ji ,jj ,jk,Kmm)*tmask(ji ,jj ,jk) & 566 & + e3t(ji+1,jj ,jk,Kmm)*tmask(ji+1,jj ,jk) ) 557 567 zmsk = ( tmask(ji,jj+1,jk) + tmask(ji+1,jj+1,jk) & 558 568 & + tmask(ji,jj ,jk) + tmask(ji+1,jj ,jk) ) … … 565 575 SELECT CASE( kvor ) !== vorticity considered ==! 566 576 CASE ( np_COR ) !* Coriolis (planetary vorticity) 567 DO_2D _10_10577 DO_2D( 1, 0, 1, 0 ) 568 578 zwz(ji,jj,jk) = ff_f(ji,jj) * z1_e3f(ji,jj) 569 579 END_2D 570 580 CASE ( np_RVO ) !* relative vorticity 571 DO_2D _10_10581 DO_2D( 1, 0, 1, 0 ) 572 582 zwz(ji,jj,jk) = ( e2v(ji+1,jj ) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk) & 573 583 & - e1u(ji ,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk) ) * r1_e1e2f(ji,jj)*z1_e3f(ji,jj) 574 584 END_2D 575 585 CASE ( np_MET ) !* metric term 576 DO_2D _10_10586 DO_2D( 1, 0, 1, 0 ) 577 587 zwz(ji,jj,jk) = ( ( pv(ji+1,jj,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj) & 578 588 & - ( pu(ji,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) ) * z1_e3f(ji,jj) 579 589 END_2D 580 590 CASE ( np_CRV ) !* Coriolis + relative vorticity 581 DO_2D _10_10591 DO_2D( 1, 0, 1, 0 ) 582 592 zwz(ji,jj,jk) = ( ff_f(ji,jj) + ( e2v(ji+1,jj ) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk) & 583 593 & - e1u(ji ,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk) ) & … … 585 595 END_2D 586 596 CASE ( np_CME ) !* Coriolis + metric 587 DO_2D _10_10597 DO_2D( 1, 0, 1, 0 ) 588 598 zwz(ji,jj,jk) = ( ff_f(ji,jj) + ( pv(ji+1,jj ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj) & 589 599 & - ( pu(ji ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) ) * z1_e3f(ji,jj) … … 594 604 ! 595 605 IF( ln_dynvor_msk ) THEN !== mask/unmask vorticity ==! 596 DO_2D _10_10606 DO_2D( 1, 0, 1, 0 ) 597 607 zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 598 608 END_2D … … 600 610 END DO ! End of slab 601 611 ! 602 CALL lbc_lnk( 'dynvor', zwz, 'F', 1. )612 CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 603 613 604 614 DO jk = 1, jpkm1 ! Horizontal slab … … 625 635 END DO 626 636 END DO 627 DO_2D _00_00637 DO_2D( 0, 0, 0, 0 ) 628 638 zua = + r1_12 * r1_e1u(ji,jj) * ( ztne(ji,jj ) * zwy(ji ,jj ) + ztnw(ji+1,jj) * zwy(ji+1,jj ) & 629 639 & + ztse(ji,jj ) * zwy(ji ,jj-1) + ztsw(ji+1,jj) * zwy(ji+1,jj-1) ) … … 685 695 SELECT CASE( kvor ) !== vorticity considered ==! 686 696 CASE ( np_COR ) !* Coriolis (planetary vorticity) 687 DO_2D _10_10697 DO_2D( 1, 0, 1, 0 ) 688 698 zwz(ji,jj,jk) = ff_f(ji,jj) 689 699 END_2D 690 700 CASE ( np_RVO ) !* relative vorticity 691 DO_2D _10_10701 DO_2D( 1, 0, 1, 0 ) 692 702 zwz(ji,jj,jk) = ( e2v(ji+1,jj ) * pv(ji+1,jj ,jk) - e2v(ji,jj) * pv(ji,jj,jk) & 693 703 & - e1u(ji ,jj+1) * pu(ji ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk) ) & … … 695 705 END_2D 696 706 CASE ( np_MET ) !* metric term 697 DO_2D _10_10707 DO_2D( 1, 0, 1, 0 ) 698 708 zwz(ji,jj,jk) = ( pv(ji+1,jj ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj) & 699 709 & - ( pu(ji ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 700 710 END_2D 701 711 CASE ( np_CRV ) !* Coriolis + relative vorticity 702 DO_2D _10_10712 DO_2D( 1, 0, 1, 0 ) 703 713 zwz(ji,jj,jk) = ( ff_f(ji,jj) + ( e2v(ji+1,jj ) * pv(ji+1,jj ,jk) - e2v(ji,jj) * pv(ji,jj,jk) & 704 714 & - e1u(ji ,jj+1) * pu(ji ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk) ) & … … 706 716 END_2D 707 717 CASE ( np_CME ) !* Coriolis + metric 708 DO_2D _10_10718 DO_2D( 1, 0, 1, 0 ) 709 719 zwz(ji,jj,jk) = ff_f(ji,jj) + ( pv(ji+1,jj ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj) & 710 720 & - ( pu(ji ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) … … 715 725 ! 716 726 IF( ln_dynvor_msk ) THEN !== mask/unmask vorticity ==! 717 DO_2D _10_10727 DO_2D( 1, 0, 1, 0 ) 718 728 zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 719 729 END_2D … … 721 731 END DO 722 732 ! 723 CALL lbc_lnk( 'dynvor', zwz, 'F', 1. )733 CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 724 734 ! 725 735 DO jk = 1, jpkm1 ! Horizontal slab … … 748 758 END DO 749 759 END DO 750 DO_2D _00_00760 DO_2D( 0, 0, 0, 0 ) 751 761 zua = + r1_12 * r1_e1u(ji,jj) * ( ztne(ji,jj ) * zwy(ji ,jj ) + ztnw(ji+1,jj) * zwy(ji+1,jj ) & 752 762 & + ztse(ji,jj ) * zwy(ji ,jj-1) + ztsw(ji+1,jj) * zwy(ji+1,jj-1) ) … … 808 818 IF(lwp) WRITE(numout,*) ' change fmask value in the angles (T) ln_vorlat = ', ln_vorlat 809 819 IF( ln_vorlat .AND. ( ln_dynvor_ene .OR. ln_dynvor_ens .OR. ln_dynvor_mix ) ) THEN 810 DO_3D _10_10(1, jpk )820 DO_3D( 1, 0, 1, 0, 1, jpk ) 811 821 IF( tmask(ji,jj+1,jk) + tmask(ji+1,jj+1,jk) & 812 & + tmask(ji,jj ,jk) + tmask(ji+1,jj +1,jk) == 3._wp ) fmask(ji,jj,jk) = 1._wp822 & + tmask(ji,jj ,jk) + tmask(ji+1,jj ,jk) == 3._wp ) fmask(ji,jj,jk) = 1._wp 813 823 END_3D 814 824 ! … … 847 857 CASE( np_ENT ) !* T-point metric term : pre-compute di(e2u)/2 and dj(e1v)/2 848 858 ALLOCATE( di_e2u_2(jpi,jpj), dj_e1v_2(jpi,jpj) ) 849 DO_2D _00_00859 DO_2D( 0, 0, 0, 0 ) 850 860 di_e2u_2(ji,jj) = ( e2u(ji,jj) - e2u(ji-1,jj ) ) * 0.5_wp 851 861 dj_e1v_2(ji,jj) = ( e1v(ji,jj) - e1v(ji ,jj-1) ) * 0.5_wp 852 862 END_2D 853 CALL lbc_lnk_multi( 'dynvor', di_e2u_2, 'T', -1. , dj_e1v_2, 'T', -1.) ! Lateral boundary conditions863 CALL lbc_lnk_multi( 'dynvor', di_e2u_2, 'T', -1.0_wp , dj_e1v_2, 'T', -1.0_wp ) ! Lateral boundary conditions 854 864 ! 855 865 CASE DEFAULT !* F-point metric term : pre-compute di(e2u)/(2*e1e2f) and dj(e1v)/(2*e1e2f) 856 866 ALLOCATE( di_e2v_2e1e2f(jpi,jpj), dj_e1u_2e1e2f(jpi,jpj) ) 857 DO_2D _10_10867 DO_2D( 1, 0, 1, 0 ) 858 868 di_e2v_2e1e2f(ji,jj) = ( e2v(ji+1,jj ) - e2v(ji,jj) ) * 0.5 * r1_e1e2f(ji,jj) 859 869 dj_e1u_2e1e2f(ji,jj) = ( e1u(ji ,jj+1) - e1u(ji,jj) ) * 0.5 * r1_e1e2f(ji,jj) 860 870 END_2D 861 CALL lbc_lnk_multi( 'dynvor', di_e2v_2e1e2f, 'F', -1. , dj_e1u_2e1e2f, 'F', -1.) ! Lateral boundary conditions871 CALL lbc_lnk_multi( 'dynvor', di_e2v_2e1e2f, 'F', -1.0_wp , dj_e1u_2e1e2f, 'F', -1.0_wp ) ! Lateral boundary conditions 862 872 END SELECT 863 873 !
Note: See TracChangeset
for help on using the changeset viewer.