Changeset 2060
- Timestamp:
- 2010-08-18T13:35:40+02:00 (14 years ago)
- Location:
- branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/LDF/ldfslp.F90
r1515 r2060 24 24 USE phycst ! physical constants 25 25 USE zdfmxl ! mixed layer depth 26 USE eosbn2 26 27 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 27 28 USE in_out_manager ! I/O manager … … 32 33 33 34 PUBLIC ldf_slp ! routine called by step.F90 35 PUBLIC ldf_slp_grif ! " 34 36 35 37 LOGICAL , PUBLIC, PARAMETER :: lk_ldfslp = .TRUE. !: slopes flag 36 38 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: uslp, wslpi !: i_slope at U- and W-points 37 39 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: vslp, wslpj !: j-slope at V- and W-points 40 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: wslp2 !: wslp**2 from Griffies quarter cells 41 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: alpha, beta !: alpha,beta at T points 42 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: tfw,sfw,ftu,fsu,ftv,fsv,ftud,fsud,ftvd,fsvd 38 43 39 44 REAL(wp), DIMENSION(jpi,jpj,jpk) :: omlmask ! mask of the surface mixed layer at T-pt … … 43 48 !! * Substitutions 44 49 # include "domzgr_substitute.h90" 50 # include "ldftra_substitute.h90" 51 # include "ldfeiv_substitute.h90" 45 52 # include "vectopt_loop_substitute.h90" 46 53 !!---------------------------------------------------------------------- … … 305 312 END DO 306 313 307 308 314 ! III. Specific grid points 309 315 ! =========================== … … 340 346 ! 341 347 END SUBROUTINE ldf_slp 348 349 SUBROUTINE ldf_slp_grif ( kt ) 350 !!---------------------------------------------------------------------- 351 !! *** ROUTINE ldf_slp_grif *** 352 !! 353 !! ** Purpose : Compute the squared slopes of neutral surfaces (slope 354 !! of iso-pycnal surfaces referenced locally) ('key_traldfiso') 355 !! at W-points using the Griffies quarter-cells. Also calculates 356 !! alpha and beta at T-points for use in the Griffies isopycnal 357 !! scheme. 358 !! 359 !! ** Method : The slope in the i-direction is computed at U- and 360 !! W-points (uslp, wslpi) and the slope in the j-direction is 361 !! computed at V- and W-points (vslp, wslpj). 362 !! 363 !! ** Action : - alpha, beta 364 !! wslp2 squared slope of neutral surfaces at w-points. 365 !! 366 !! History : 367 !! 9.0 ! 06-10 (C. Harris) New subroutine 368 !!---------------------------------------------------------------------- 369 !! * Modules used 370 USE oce , zdit => ua, & ! use ua as workspace 371 zdis => va, & ! use va as workspace 372 zdjt => ta, & ! use ta as workspace 373 zdjs => sa ! use sa as workspace 374 !! * Arguments 375 INTEGER, INTENT( in ) :: kt ! ocean time-step index 376 377 !! * Local declarations 378 INTEGER :: ji, jj, jk, ip, jp, kp ! dummy loop indices 379 INTEGER :: iku, ikv ! temporary integer 380 REAL(wp) :: & 381 zt, zs, zh, zt2, zsp5, zp1t1, & ! temporary scalars 382 zdenr, zrhotmp, zdndt, zdddt, & ! " " 383 zdnds, zddds, znum, zden, & ! " " 384 zsxe, za_sxe, zslopec, zdsloper,& ! " " 385 zfact, zepsln, zdx, zdy, zatempw,zatempu,zatempv, & ! " " 386 ze1ur,ze2vr,ze3wr,zdxt,zdxs,zdyt,zdys,zdzt,zdzs,zarea,zvolf 387 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 388 zdkt,zdks 389 REAL(wp), DIMENSION(jpi,jpj,jpk,2) :: & 390 zdelta2 391 !!---------------------------------------------------------------------- 392 393 ! 0. Local constant initialization 394 ! -------------------------------- 395 396 zslopec=0.004 397 zdsloper=1000.0 398 zepsln=1e-25 399 400 SELECT CASE ( neos ) 401 402 CASE ( 0 ) ! Jackett and McDougall (1994) formulation 403 404 ! ! =============== 405 DO jk = 1, jpk ! Horizontal slab 406 ! ! =============== 407 DO jj = 1, jpjm1 408 DO ji = 1, fs_jpim1 409 zt = tb(ji,jj,jk) ! potential temperature 410 zs = sb(ji,jj,jk) - 35.0 ! salinity anomaly (s-35) 411 zh = fsdept(ji,jj,jk) ! depth in meters 412 413 beta(ji,jj,jk) = ( ( -0.415613e-09 * zt + 0.555579e-07 ) * zt & 414 & - 0.301985e-05 ) * zt & 415 & + 0.785567e-03 & 416 & + ( 0.515032e-08 * zs & 417 & + 0.788212e-08 * zt - 0.356603e-06 ) * zs & 418 & +( ( 0.121551e-17 * zh & 419 & - 0.602281e-15 * zs & 420 & - 0.175379e-14 * zt + 0.176621e-12 ) * zh & 421 & + 0.408195e-10 * zs & 422 & + ( - 0.213127e-11 * zt + 0.192867e-09 ) * zt & 423 & - 0.121555e-07 ) * zh 424 425 alpha(ji,jj,jk) = - beta(ji,jj,jk) * & 426 & (((( - 0.255019e-07 * zt + 0.298357e-05 ) * zt & 427 & - 0.203814e-03 ) * zt & 428 & + 0.170907e-01 ) * zt & 429 & + 0.665157e-01 & 430 & + ( - 0.678662e-05 * zs & 431 & - 0.846960e-04 * zt + 0.378110e-02 ) * zs & 432 & + ( ( - 0.302285e-13 * zh & 433 & - 0.251520e-11 * zs & 434 & + 0.512857e-12 * zt * zt ) * zh & 435 & - 0.164759e-06 * zs & 436 & +( 0.791325e-08 * zt - 0.933746e-06 ) * zt & 437 & + 0.380374e-04 ) * zh) 438 439 ENDDO 440 ENDDO 441 ENDDO 442 443 CASE ( 1 ) 444 445 alpha(:,:,:)=-ralpha 446 beta(:,:,:)=0.0 447 448 CASE ( 2 ) 449 450 alpha(:,:,:)=-ralpha 451 beta (:,:,:)=rbeta 452 453 CASE ( 3 ) 454 455 DO jk =1, jpk 456 DO jj = 1, jpjm1 457 DO ji = 1, fs_jpim1 458 zt = tb(ji,jj,jk) 459 zs = sb(ji,jj,jk) 460 zh = fsdept(ji,jj,jk) 461 zt2 = zt**2 462 zsp5 = sqrt(ABS(zs)) 463 zp1t1=zh*zt 464 znum=9.99843699e+02+zt*(7.35212840e+00+zt*(-5.45928211e-02+3.98476704e-04*zt)) & 465 +zs*(2.96938239e+00-7.23268813e-03*zt+2.12382341e-03*zs) & 466 +zh*(1.04004591e-02+1.03970529e-07*zt2+5.18761880e-06*zs+ & 467 zh*(-3.24041825e-08-1.23869360e-11*zt2)) 468 zden=1.00000000e+00+zt*(7.28606739e-03+zt*(-4.60835542e-05+zt*(3.68390573e-07+zt*1.80809186e-10))) & 469 +zs*(2.14691708e-03+zt*(-9.27062484e-06-1.78343643e-10*zt2)+zsp5*(4.76534122e-06+1.63410736e-09*zt2)) & 470 + zh*(5.30848875e-06+zh*zt*(-3.03175128e-16*zt2-1.27934137e-17*zh)) 471 zdenr=1.0/zden 472 zrhotmp=znum*zdenr 473 zdndt=7.35212840e+00+zt*(-1.091856422e-01+1.195430112e-03*zt)-7.23268813e-03*zs & 474 +zp1t1*(2.07941058e-07-2.4773872e-11*zh) 475 zdddt=7.28606739e-03+zt*(-9.21671084e-05+zt*(1.105171719e-06+7.23236744e-10*zt)) & 476 +zs*(-9.27062484e-06+zt*(-5.35030929e-10*zt+3.26821472e-09*zsp5)) & 477 +zh*zh*(-9.09525384e-16*zt2-1.27934137e-17*zh) 478 zdnds=2.96938239e+00-7.23268813e-03*zt+2*2.12382341e-03*zs+5.18761880e-06*zh 479 zddds=2.14691708e-03+zt*(-9.27062484e-06-1.78343643e-10*zt2)+zsp5*(7.14801183e-06+2.45116104e-09*zt2) 480 alpha(ji,jj,jk)=(zdndt-zrhotmp*zdddt)*zdenr 481 beta(ji,jj,jk)=zdenr*(zdnds-zrhotmp*zddds) 482 483 END DO 484 END DO 485 END DO 486 487 CASE DEFAULT 488 489 IF(lwp) WRITE(numout,cform_err) 490 IF(lwp) WRITE(numout,*) ' bad flag value for neos = ', neos 491 nstop = nstop + 1 492 493 END SELECT 494 495 CALL lbc_lnk( alpha, 'T', 1. ) 496 CALL lbc_lnk( beta, 'T', 1. ) 497 498 499 DO jk = 1, jpkm1 500 DO jj = 1, jpjm1 501 DO ji = 1, fs_jpim1 ! vector opt. 502 ! i-gradient of T and S at jj 503 zdit (ji,jj,jk) = ( tb(ji+1,jj,jk)-tb(ji,jj,jk) ) * umask(ji,jj,jk) 504 zdis (ji,jj,jk) = ( sb(ji+1,jj,jk)-sb(ji,jj,jk) ) * umask(ji,jj,jk) 505 ! j-gradient of T and S at jj 506 zdjt (ji,jj,jk) = ( tb(ji,jj+1,jk)-tb(ji,jj,jk) ) * vmask(ji,jj,jk) 507 zdjs (ji,jj,jk) = ( sb(ji,jj+1,jk)-sb(ji,jj,jk) ) * vmask(ji,jj,jk) 508 END DO 509 END DO 510 END DO 511 512 IF( ln_zps ) THEN ! partial steps correction at the last level 513 # if defined key_vectopt_loop && ! defined key_mpp_omp 514 jj = 1 515 DO ji = 1, jpij-jpi ! vector opt. (forced unrolling) 516 # else 517 DO jj = 1, jpjm1 518 DO ji = 1, jpim1 519 # endif 520 ! last ocean level 521 iku = MIN( mbathy(ji,jj), mbathy(ji+1,jj ) ) - 1 522 ikv = MIN( mbathy(ji,jj), mbathy(ji ,jj+1) ) - 1 523 ! i-gradient of T and S 524 zdit (ji,jj,iku) = gtu(ji,jj) 525 zdis (ji,jj,iku) = gsu(ji,jj) 526 ! j-gradient of T and S 527 zdjt (ji,jj,ikv) = gtv(ji,jj) 528 zdjs (ji,jj,ikv) = gsv(ji,jj) 529 # if ! defined key_vectopt_loop || defined key_mpp_omp 530 END DO 531 # endif 532 END DO 533 ENDIF 534 535 wslp2(:,:,:)=0.0 536 tfw(:,:,:) = 0.0 537 sfw(:,:,:) = 0.0 538 ftu(:,:,:) = 0.0 539 fsu(:,:,:) = 0.0 540 ftv(:,:,:) = 0.0 541 fsv(:,:,:) = 0.0 542 ftud(:,:,:) = 0.0 543 fsud(:,:,:) = 0.0 544 ftvd(:,:,:) = 0.0 545 fsvd(:,:,:) = 0.0 546 547 DO jk = 2, jpk 548 ! 549 ! 1. Vertical tracer gradient at level jk 550 ! --------------------------------------- 551 zdkt(:,:,jk) = ( tb(:,:,jk-1) - tb(:,:,jk) ) * tmask(:,:,jk) 552 zdks(:,:,jk) = ( sb(:,:,jk-1) - sb(:,:,jk) ) * tmask(:,:,jk) 553 END DO 554 555 zdkt(:,:,1) = 0.0 556 zdks(:,:,1) = 0.0 557 558 DO jk = 1, jpkm1 559 DO ji = 1, fs_jpim1 ! vector opt. 560 zdelta2(ji,:,jk,1)=MIN((fsdept(ji,:,jk)-fsdepw(ji,:,jk)),(fsdept(ji+1,:,jk)-fsdepw(ji+1,:,jk))) 561 zdelta2(ji,:,jk,2)=MIN((fsdepw(ji,:,jk+1)-fsdept(ji,:,jk)),(fsdepw(ji+1,:,jk+1)-fsdept(ji+1,:,jk))) 562 END DO 563 END DO 564 565 ! interior (1=<jk=<jpk-1) 566 DO ip=0,1 567 DO kp=0,1 568 569 DO jk = 1, jpkm1 570 571 DO jj = 1, jpjm1 572 573 DO ji = 1, fs_jpim1 ! vector opt. 574 575 ze1ur=1.0/e1u(ji,jj) 576 zdxt=zdit(ji,jj,jk)*ze1ur 577 zdxs=zdis(ji,jj,jk)*ze1ur 578 579 zdx=(e1t(ji+ip,jj)+e1u(ji,jj))/4 580 ze3wr=1.0/fse3w(ji+ip,jj,jk+kp) 581 zdzt=zdkt(ji+ip,jj,jk+kp)*ze3wr 582 zdzs=zdks(ji+ip,jj,jk+kp)*ze3wr 583 ! Calculate the density gradient terms 584 zsxe=-(alpha(ji+ip,jj,jk)*zdxt+beta(ji+ip,jj,jk)*zdxs) / & 585 (-ABS(alpha(ji+ip,jj,jk)*zdzt+beta(ji+ip,jj,jk)*zdzs)-zepsln) 586 ! Check value and taper if necessary 587 za_sxe = MIN(1.0,(abs(zsxe)-zslopec)*zdsloper) 588 za_sxe = MAX(-1.0,za_sxe) 589 zfact = 0.5*(1.0-za_sxe)*umask(ji,jj,jk)*tmask(ji+ip,jj,jk+kp) 590 591 zarea=zdx*zdelta2(ji,jj,jk,kp+1) 592 zvolf=zarea*e2t(ji+ip,jj)*zfact 593 594 ftu(ji,jj,jk)= ftu(ji,jj,jk)+zsxe*zdzt*zvolf*ze1ur 595 fsu(ji,jj,jk)= fsu(ji,jj,jk)+zsxe*zdzs*zvolf*ze1ur 596 ftud(ji,jj,jk)=ftud(ji,jj,jk)+fsahtu(ji,jj,jk)*zdxt*zvolf*ze1ur 597 fsud(ji,jj,jk)=fsud(ji,jj,jk)+fsahtu(ji,jj,jk)*zdxs*zvolf*ze1ur 598 tfw(ji+ip,jj,jk+kp)=tfw(ji+ip,jj,jk+kp)+(zvolf*ze3wr)*zsxe*zdxt 599 sfw(ji+ip,jj,jk+kp)=sfw(ji+ip,jj,jk+kp)+(zvolf*ze3wr)*zsxe*zdxs 600 wslp2(ji+ip,jj,jk+kp)=wslp2(ji+ip,jj,jk+kp)+(zarea*ze3wr/e1t(ji+ip,jj))*zfact*(zsxe)**2 601 602 END DO 603 END DO 604 605 END DO 606 END DO 607 END DO 608 609 DO jk = 1, jpkm1 610 DO jj = 1, jpjm1 611 zdelta2(:,jj,jk,1)=MIN((fsdept(:,jj,jk)-fsdepw(:,jj,jk)),(fsdept(:,jj+1,jk)-fsdepw(:,jj+1,jk))) 612 zdelta2(:,jj,jk,2)=MIN((fsdepw(:,jj,jk+1)-fsdept(:,jj,jk)),(fsdepw(:,jj+1,jk+1)-fsdept(:,jj+1,jk))) 613 END DO 614 END DO 615 616 DO jp=0,1 617 DO kp=0,1 618 619 DO jk = 1, jpkm1 620 DO jj = 1, jpjm1 621 DO ji = fs_2, fs_jpim1 ! vector opt. 622 623 ze2vr=1.0/e2v(ji,jj) 624 zdyt=zdjt(ji,jj,jk)*ze2vr 625 zdys=zdjs(ji,jj,jk)*ze2vr 626 627 zdy=(e2t(ji,jj+jp)+e2v(ji,jj))/4 628 ze3wr=1.0/fse3w(ji,jj+jp,jk+kp) 629 zdzt=zdkt(ji,jj+jp,jk+kp)*ze3wr 630 zdzs=zdks(ji,jj+jp,jk+kp)*ze3wr 631 ! Calculate the density gradient terms 632 zsxe=-(alpha(ji,jj+jp,jk)*zdyt+beta(ji,jj+jp,jk)*zdys) / & 633 (-ABS(alpha(ji,jj+jp,jk)*zdzt+beta(ji,jj+jp,jk)*zdzs)-zepsln) 634 ! Check value and taper if necessary 635 za_sxe = MIN(1.0,(abs(zsxe)-zslopec)*zdsloper) 636 za_sxe = MAX(-1.0,za_sxe) 637 zfact = 0.5*(1.0-za_sxe)*vmask(ji,jj,jk)*tmask(ji,jj+jp,jk+kp) 638 639 zarea=zdy*zdelta2(ji,jj,jk,kp+1) 640 zvolf=zarea*e1t(ji,jj+jp)*zfact 641 642 ftv(ji,jj,jk)= ftv(ji,jj,jk)+zsxe*zdzt*zvolf*ze2vr 643 fsv(ji,jj,jk)= fsv(ji,jj,jk)+zsxe*zdzs*zvolf*ze2vr 644 ftvd(ji,jj,jk)=ftvd(ji,jj,jk)+fsahtv(ji,jj,jk)*zdyt*zvolf*ze2vr 645 fsvd(ji,jj,jk)=fsvd(ji,jj,jk)+fsahtv(ji,jj,jk)*zdys*zvolf*ze2vr 646 tfw(ji,jj+jp,jk+kp)=tfw(ji,jj+jp,jk+kp)+(zvolf*ze3wr)*zsxe*zdyt 647 sfw(ji,jj+jp,jk+kp)=sfw(ji,jj+jp,jk+kp)+(zvolf*ze3wr)*zsxe*zdys 648 wslp2(ji,jj+jp,jk+kp)=wslp2(ji,jj+jp,jk+kp)+(zarea*ze3wr/e2t(ji,jj+jp))*zfact*(zsxe)**2 649 650 END DO 651 END DO 652 653 END DO 654 END DO 655 END DO 656 657 tfw(:,:,1)=0.0 658 sfw(:,:,1)=0.0 659 wslp2(:,:,1)=0.0 660 661 CALL lbc_lnk( wslp2, 'W', 1. ) 662 CALL lbc_lnk( tfw, 'W', 1. ) 663 CALL lbc_lnk( sfw, 'W', 1. ) 664 CALL lbc_lnk( ftu, 'U', -1. ) 665 CALL lbc_lnk( fsu, 'U', -1. ) 666 CALL lbc_lnk( ftv, 'V', -1. ) 667 CALL lbc_lnk( fsv, 'V', -1. ) 668 CALL lbc_lnk( ftud, 'U', -1. ) 669 CALL lbc_lnk( fsud, 'U', -1. ) 670 CALL lbc_lnk( ftvd, 'V', -1. ) 671 CALL lbc_lnk( fsvd, 'V', -1. ) 672 673 674 END SUBROUTINE ldf_slp_grif 342 675 343 676 -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/LDF/ldftra_oce.F90
r1601 r2060 20 20 LOGICAL , PUBLIC :: ln_traldf_hor = .FALSE. !: horizontal (geopotential) direction 21 21 LOGICAL , PUBLIC :: ln_traldf_iso = .TRUE. !: iso-neutral direction 22 LOGICAL , PUBLIC :: ln_traldf_grif = .TRUE. !: griffies skew flux 23 LOGICAL , PUBLIC :: ln_traldf_vis = .FALSE. !: griffies skew flux 22 24 REAL(wp), PUBLIC :: rn_aht_0 = 2000._wp !: lateral eddy diffusivity (m2/s) 23 25 REAL(wp), PUBLIC :: rn_ahtb_0 = 0._wp !: lateral background eddy diffusivity (m2/s) 24 26 REAL(wp), PUBLIC :: rn_aeiv_0 = 2000._wp !: eddy induced velocity coefficient (m2/s) 25 27 26 28 ! REAL(wp), PUBLIC :: aht0, ahtb0, aeiv0 !!: OLD namelist names 27 29 28 30 #if defined key_traldf_c3d -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/TRA/traadv.F90
r1601 r2060 84 84 zwn(:,:,:) = wn(:,:,:) 85 85 ENDIF 86 CALL tra_adv_eiv( kt, zun, zvn, zwn )86 IF (.NOT. ln_traldf_grif) CALL tra_adv_eiv( kt, zun, zvn, zwn ) ! compute and add the eiv velocity 87 87 ENDIF 88 88 -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/TRA/traldf.F90
r1601 r2060 20 20 USE traldf_bilap ! lateral mixing (tra_ldf_bilap routine) 21 21 USE traldf_iso ! lateral mixing (tra_ldf_iso routine) 22 USE traldf_iso_grif ! lateral mixing (tra_ldf_iso_grif routine) 22 23 USE traldf_lap ! lateral mixing (tra_ldf_lap routine) 23 24 USE trdmod ! ocean active tracers trends … … 72 73 SELECT CASE ( nldf ) ! compute lateral mixing trend and add it to the general trend 73 74 CASE ( 0 ) ; CALL tra_ldf_lap ( kt ) ! iso-level laplacian 74 CASE ( 1 ) ; CALL tra_ldf_iso ( kt ) ! rotated laplacian (except dk[ dk[.] ] part) 75 CASE ( 1 ) 76 IF ( ln_traldf_grif ) THEN 77 CALL tra_ldf_iso_grif ( kt ) ! Griffies quarter-cell formulation 78 ELSE 79 CALL tra_ldf_iso ( kt ) ! rotated laplacian (except dk[ dk[.] ] part) 80 ENDIF 75 81 CASE ( 2 ) ; CALL tra_ldf_bilap ( kt ) ! iso-level bilaplacian 76 82 CASE ( 3 ) ; CALL tra_ldf_bilapg( kt ) ! s-coord. horizontal bilaplacian … … 80 86 CALL prt_ctl( tab3d_1=ta, clinfo1=' ldf0 - Ta: ', mask1=tmask, & 81 87 & tab3d_2=sa, clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 88 IF ( ln_traldf_grif ) THEN 89 CALL tra_ldf_iso_grif ( kt ) 90 ELSE 82 91 CALL tra_ldf_iso ( kt ) 92 ENDIF 83 93 CALL prt_ctl( tab3d_1=ta, clinfo1=' ldf1 - Ta: ', mask1=tmask, & 84 94 & tab3d_2=sa, clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) … … 143 153 WRITE(numout,*) ' horizontal (geopotential) ln_traldf_hor = ', ln_traldf_hor 144 154 WRITE(numout,*) ' iso-neutral ln_traldf_iso = ', ln_traldf_iso 155 WRITE(numout,*) ' iso-neutral (Griffies) ln_traldf_grif = ', ln_traldf_grif 156 WRITE(numout,*) ' Visbeck scheme for aeiv ln_traldf_vis = ', ln_traldf_vis 145 157 ENDIF 146 158 -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/TRA/trazdf_imp.F90
r1517 r2060 136 136 #if defined key_ldfslp 137 137 ! update and save of avt (and avs if double diffusive mixing) 138 IF( l_traldf_rot ) THEN 138 IF ( ln_traldf_grif ) THEN 139 DO jk = 2, jpkm1 140 DO jj = 2, jpjm1 141 DO ji = fs_2, fs_jpim1 ! vector opt. 142 zavi = fsahtw(ji,jj,jk) * wslp2(ji,jj,jk) ! vertical mixing coef. due to lateral mixing 143 zwt(ji,jj,jk) = avt(ji,jj,jk) + zavi ! zwt=avt+zavi (total vertical mixing coef. on temperature) 144 # if defined key_zdfddm 145 zavsi(ji,jj,jk) = fsavs(ji,jj,jk) + zavi ! dd mixing: zavsi = total vertical mixing coef. on salinity 146 # endif 147 END DO 148 END DO 149 END DO 150 ELSE IF (l_traldf_rot ) THEN 139 151 DO jk = 2, jpkm1 140 152 DO jj = 2, jpjm1 … … 281 293 END DO 282 294 283 ! Surface bou dary conditions295 ! Surface boundary conditions 284 296 DO jj = 2, jpjm1 285 297 DO ji = fs_2, fs_jpim1 ! vector opt. -
branches/DEV_r1924_nocs_latphys/NEMO/OPA_SRC/step.F90
r1793 r2060 85 85 USE ldfslp ! iso-neutral slopes (ldf_slp routine) 86 86 USE ldfeiv ! eddy induced velocity coef. (ldf_eiv routine) 87 USE ldfeiv_vis ! eddy induced velocity coef. (ldf_eiv_vis routine) 87 88 88 89 USE zdftmx ! tide-induced vertical mixing (zdf_tmx routine) … … 234 235 & gtu, gsu, gru, & ! of t, s, rd at the last ocean level 235 236 & gtv, gsv, grv ) 237 IF ( .NOT. ln_traldf_grif ) THEN 236 238 CALL ldf_slp( kstp, rhd, rn2b ) ! before slope of the lateral mixing 239 ELSE 240 CALL ldf_slp_grif( kstp ) 241 IF ( ln_dynldf_bilap .OR. ln_dynldf_iso ) CALL ldf_slp( kstp, rhd, rn2b ) 242 ENDIF 237 243 ENDIF 238 244 #if defined key_traldf_c2d 239 IF( lk_traldf_eiv ) CALL ldf_eiv( kstp ) ! eddy induced velocity coefficient 245 IF( lk_traldf_eiv ) THEN ! eddy induced velocity coefficient 246 IF ( ln_traldf_vis ) THEN 247 CALL ldf_eiv_vis( kstp ) 248 ELSE 249 CALL ldf_eiv( kstp ) 250 ENDIF 251 ENDIF 240 252 # endif 241 253
Note: See TracChangeset
for help on using the changeset viewer.