- Timestamp:
- 2015-06-19T17:52:53+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5021_nn_etau_revision/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r5242 r5446 26 26 !! ! + cleaning of the parameters + bugs correction 27 27 !! 3.3 ! 2010-10 (C. Ethe, G. Madec) reorganisation of initialisation phase 28 !! 3.6 ! 2014-11 (P. Mathiot) add ice shelf capability 28 29 !!---------------------------------------------------------------------- 29 30 #if defined key_zdftke || defined key_esopa … … 241 242 zfact3 = 0.5_wp * rn_ediss 242 243 ! 244 ! 243 245 ! !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 244 246 ! ! Surface boundary condition on tke 245 247 ! !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 248 IF ( ln_isfcav ) THEN 249 DO jj = 2, jpjm1 ! en(mikt(ji,jj)) = rn_emin 250 DO ji = fs_2, fs_jpim1 ! vector opt. 251 en(ji,jj,mikt(ji,jj))=rn_emin * tmask(ji,jj,1) 252 END DO 253 END DO 254 END IF 246 255 DO jj = 2, jpjm1 ! en(1) = rn_ebb taum / rau0 (min value rn_emin0) 247 256 DO ji = fs_2, fs_jpim1 ! vector opt. 248 IF (mikt(ji,jj) .GT. 1) THEN 249 en(ji,jj,mikt(ji,jj))=rn_emin 250 ELSE 251 en(ji,jj,1) = MAX( rn_emin0, zbbrau * taum(ji,jj) ) * tmask(ji,jj,1) 252 END IF 257 en(ji,jj,1) = MAX( rn_emin0, zbbrau * taum(ji,jj) ) * tmask(ji,jj,1) 253 258 END DO 254 259 END DO … … 306 311 END DO 307 312 zcof = 0.016 / SQRT( zrhoa * zcdrag ) 313 !CDIR NOVERRCHK 308 314 DO jk = 2, jpkm1 !* TKE Langmuir circulation source term added to en 309 DO jj = 2, jpjm1 315 !CDIR NOVERRCHK 316 DO jj = 2, jpjm1 317 !CDIR NOVERRCHK 310 318 DO ji = fs_2, fs_jpim1 ! vector opt. 311 319 zus = zcof * SQRT( taum(ji,jj) ) ! Stokes drift … … 314 322 zwlc = zind * rn_lc * zus * SIN( rpi * fsdepw(ji,jj,jk) / zhlc(ji,jj) ) 315 323 ! ! TKE Langmuir circulation source term 316 en(ji,jj,jk) = en(ji,jj,jk) + rdt * ( zwlc * zwlc * zwlc ) / zhlc(ji,jj) * tmask(ji,jj,jk)324 en(ji,jj,jk) = en(ji,jj,jk) + rdt * ( zwlc * zwlc * zwlc ) / zhlc(ji,jj) * wmask(ji,jj,jk) * tmask(ji,jj,1) 317 325 END DO 318 326 END DO … … 333 341 avmu(ji,jj,jk) = avmu(ji,jj,jk) * ( un(ji,jj,jk-1) - un(ji,jj,jk) ) & 334 342 & * ( ub(ji,jj,jk-1) - ub(ji,jj,jk) ) & 335 & / ( fse3uw_n(ji,jj,jk)&336 & * fse3uw_b(ji,jj,jk))343 & / ( fse3uw_n(ji,jj,jk) & 344 & * fse3uw_b(ji,jj,jk) ) 337 345 avmv(ji,jj,jk) = avmv(ji,jj,jk) * ( vn(ji,jj,jk-1) - vn(ji,jj,jk) ) & 338 346 & * ( vb(ji,jj,jk-1) - vb(ji,jj,jk) ) & … … 343 351 END DO 344 352 ! 345 DO j j = 2, jpjm1346 DO j i = fs_2, fs_jpim1 ! vector opt.347 DO j k = mikt(ji,jj)+1, jpkm1 !* Matrix and right hand side in en353 DO jk = 2, jpkm1 !* Matrix and right hand side in en 354 DO jj = 2, jpjm1 355 DO ji = fs_2, fs_jpim1 ! vector opt. 348 356 zcof = zfact1 * tmask(ji,jj,jk) 349 357 zzd_up = zcof * ( avm (ji,jj,jk+1) + avm (ji,jj,jk ) ) & ! upper diagonal … … 362 370 en(ji,jj,jk) = en(ji,jj,jk) + rdt * ( zesh2 - avt(ji,jj,jk) * rn2(ji,jj,jk) & 363 371 & + zfact3 * dissl(ji,jj,jk) * en (ji,jj,jk) ) & 364 & * tmask(ji,jj,jk) * tmask(ji,jj,jk-1) 365 END DO 366 ! !* Matrix inversion from level 2 (tke prescribed at level 1) 367 DO jk = mikt(ji,jj)+2, jpkm1 ! First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 372 & * wmask(ji,jj,jk) 373 END DO 374 END DO 375 END DO 376 ! !* Matrix inversion from level 2 (tke prescribed at level 1) 377 DO jk = 3, jpkm1 ! First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 378 DO jj = 2, jpjm1 379 DO ji = fs_2, fs_jpim1 ! vector opt. 368 380 zdiag(ji,jj,jk) = zdiag(ji,jj,jk) - zd_lw(ji,jj,jk) * zd_up(ji,jj,jk-1) / zdiag(ji,jj,jk-1) 369 381 END DO 370 ! Second recurrence : Lk = RHSk - Lk / Dk-1 * Lk-1 371 zd_lw(ji,jj,mikt(ji,jj)+1) = en(ji,jj,mikt(ji,jj)+1) - zd_lw(ji,jj,mikt(ji,jj)+1) * en(ji,jj,mikt(ji,jj)) ! Surface boudary conditions on tke 372 ! 373 DO jk = mikt(ji,jj)+2, jpkm1 382 END DO 383 END DO 384 ! 385 ! Second recurrence : Lk = RHSk - Lk / Dk-1 * Lk-1 386 DO jj = 2, jpjm1 387 DO ji = fs_2, fs_jpim1 ! vector opt. 388 zd_lw(ji,jj,2) = en(ji,jj,2) - zd_lw(ji,jj,2) * en(ji,jj,1) ! Surface boudary conditions on tke 389 END DO 390 END DO 391 DO jk = 3, jpkm1 392 DO jj = 2, jpjm1 393 DO ji = fs_2, fs_jpim1 ! vector opt. 374 394 zd_lw(ji,jj,jk) = en(ji,jj,jk) - zd_lw(ji,jj,jk) / zdiag(ji,jj,jk-1) *zd_lw(ji,jj,jk-1) 375 395 END DO 376 ! 377 ! thrid recurrence : Ek = ( Lk - Uk * Ek+1 ) / Dk 396 END DO 397 END DO 398 ! 399 ! thrid recurrence : Ek = ( Lk - Uk * Ek+1 ) / Dk 400 DO jj = 2, jpjm1 401 DO ji = fs_2, fs_jpim1 ! vector opt. 378 402 en(ji,jj,jpkm1) = zd_lw(ji,jj,jpkm1) / zdiag(ji,jj,jpkm1) 379 ! 380 DO jk = jpk-2, mikt(ji,jj)+1, -1 403 END DO 404 END DO 405 DO jk = jpk-2, 2, -1 406 DO jj = 2, jpjm1 407 DO ji = fs_2, fs_jpim1 ! vector opt. 381 408 en(ji,jj,jk) = ( zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) * en(ji,jj,jk+1) ) / zdiag(ji,jj,jk) 382 409 END DO 383 ! 384 DO jk = mikt(ji,jj), jpkm1 ! set the minimum value of tke 385 en(ji,jj,jk) = MAX( en(ji,jj,jk), rn_emin ) * tmask(ji,jj,jk) 410 END DO 411 END DO 412 DO jk = 2, jpkm1 ! set the minimum value of tke 413 DO jj = 2, jpjm1 414 DO ji = fs_2, fs_jpim1 ! vector opt. 415 en(ji,jj,jk) = MAX( en(ji,jj,jk), rn_emin ) * wmask(ji,jj,jk) 386 416 END DO 387 417 END DO … … 411 441 DO ji = fs_2, fs_jpim1 ! vector opt. 412 442 en(ji,jj,jk) = en(ji,jj,jk) + rn_efr * en(ji,jj,1) * EXP( -fsdepw(ji,jj,jk) / htau(ji,jj) ) & 413 & * ( 1._wp - fr_i(ji,jj) ) * tmask(ji,jj,jk) * tmask(ji,jj,1)443 & * ( 1._wp - fr_i(ji,jj) ) * wmask(ji,jj,jk) * tmask(ji,jj,1) 414 444 END DO 415 445 END DO … … 420 450 jk = nmln(ji,jj) 421 451 en(ji,jj,jk) = en(ji,jj,jk) + rn_efr * en(ji,jj,1) * EXP( -fsdepw(ji,jj,jk) / htau(ji,jj) ) & 422 & * ( 1._wp - fr_i(ji,jj) ) * tmask(ji,jj,jk) * tmask(ji,jj,1)452 & * ( 1._wp - fr_i(ji,jj) ) * wmask(ji,jj,jk) * tmask(ji,jj,1) 423 453 END DO 424 454 END DO … … 436 466 zdif = rhftau_scl * MAX( 0._wp, zdif + rhftau_add ) ! apply some modifications... 437 467 en(ji,jj,jk) = en(ji,jj,jk) + zbbrau * zdif * EXP( -fsdepw(ji,jj,jk) / htau(ji,jj) ) & 438 & * ( 1._wp - fr_i(ji,jj) ) * tmask(ji,jj,jk) * tmask(ji,jj,jk-1) * tmask(ji,jj,1)468 & * ( 1._wp - fr_i(ji,jj) ) * wmask(ji,jj,jk) * tmask(ji,jj,1) 439 469 END DO 440 470 END DO … … 530 560 ! !* Buoyancy length scale: l=sqrt(2*e/n**2) 531 561 ! 562 ! initialisation of interior minimum value (avoid a 2d loop with mikt) 563 zmxlm(:,:,:) = rmxl_min 564 zmxld(:,:,:) = rmxl_min 565 ! 532 566 IF( ln_mxl0 ) THEN ! surface mixing length = F(stress) : l=vkarmn*2.e5*taum/(rau0*g) 533 567 DO jj = 2, jpjm1 534 568 DO ji = fs_2, fs_jpim1 535 IF (mikt(ji,jj) .GT. 1) THEN 536 zmxlm(ji,jj,mikt(ji,jj)) = rmxl_min 537 ELSE 538 zraug = vkarmn * 2.e5_wp / ( rau0 * grav ) 539 zmxlm(ji,jj,mikt(ji,jj)) = MAX( rn_mxl0, zraug * taum(ji,jj) ) 540 END IF 569 zraug = vkarmn * 2.e5_wp / ( rau0 * grav ) 570 zmxlm(ji,jj,1) = MAX( rn_mxl0, zraug * taum(ji,jj) * tmask(ji,jj,1) ) 541 571 END DO 542 572 END DO 543 573 ELSE 544 DO jj = 2, jpjm1 545 DO ji = fs_2, fs_jpim1 ! surface set to the minimum value 546 zmxlm(ji,jj,mikt(ji,jj)) = MAX( tmask(ji,jj,1) * rn_mxl0, rmxl_min) 547 END DO 548 END DO 574 zmxlm(:,:,1) = rn_mxl0 549 575 ENDIF 550 zmxlm(:,:,jpk) = rmxl_min ! last level set to the interior minium value 551 ! 552 !CDIR NOVERRCHK 553 DO jj = 2, jpjm1 554 !CDIR NOVERRCHK 555 DO ji = fs_2, fs_jpim1 ! vector opt. 556 !CDIR NOVERRCHK 557 DO jk = mikt(ji,jj)+1, jpkm1 ! interior value : l=sqrt(2*e/n^2) 576 ! 577 !CDIR NOVERRCHK 578 DO jk = 2, jpkm1 ! interior value : l=sqrt(2*e/n^2) 579 !CDIR NOVERRCHK 580 DO jj = 2, jpjm1 581 !CDIR NOVERRCHK 582 DO ji = fs_2, fs_jpim1 ! vector opt. 558 583 zrn2 = MAX( rn2(ji,jj,jk), rsmall ) 559 zmxlm(ji,jj,jk) = MAX( rmxl_min, SQRT( 2._wp * en(ji,jj,jk) / zrn2 ) ) 560 END DO 561 zmxld(ji,jj,mikt(ji,jj)) = zmxlm(ji,jj,mikt(ji,jj)) ! surface set to the minimum value 584 zmxlm(ji,jj,jk) = MAX( rmxl_min, SQRT( 2._wp * en(ji,jj,jk) / zrn2 ) ) 585 END DO 562 586 END DO 563 587 END DO … … 565 589 ! !* Physical limits for the mixing length 566 590 ! 567 zmxld(:,:, 1 ) = zmxlm(:,:,1) ! surface set to the zmxlm value591 zmxld(:,:,1 ) = zmxlm(:,:,1) ! surface set to the minimum value 568 592 zmxld(:,:,jpk) = rmxl_min ! last level set to the minimum value 569 593 ! 570 594 SELECT CASE ( nn_mxl ) 571 595 ! 596 ! where wmask = 0 set zmxlm == fse3w 572 597 CASE ( 0 ) ! bounded by the distance to surface and bottom 573 DO j j = 2, jpjm1574 DO j i = fs_2, fs_jpim1 ! vector opt.575 DO j k = mikt(ji,jj)+1, jpkm1598 DO jk = 2, jpkm1 599 DO jj = 2, jpjm1 600 DO ji = fs_2, fs_jpim1 ! vector opt. 576 601 zemxl = MIN( fsdepw(ji,jj,jk) - fsdepw(ji,jj,mikt(ji,jj)), zmxlm(ji,jj,jk), & 577 602 & fsdepw(ji,jj,mbkt(ji,jj)+1) - fsdepw(ji,jj,jk) ) 578 zmxlm(ji,jj,jk) = zemxl 579 zmxld(ji,jj,jk) = zemxl 603 ! wmask prevent zmxlm = 0 if jk = mikt(ji,jj) 604 zmxlm(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN(zmxlm(ji,jj,jk),fse3w(ji,jj,jk)) * (1 - wmask(ji,jj,jk)) 605 zmxld(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN(zmxlm(ji,jj,jk),fse3w(ji,jj,jk)) * (1 - wmask(ji,jj,jk)) 580 606 END DO 581 607 END DO … … 583 609 ! 584 610 CASE ( 1 ) ! bounded by the vertical scale factor 585 DO j j = 2, jpjm1586 DO j i = fs_2, fs_jpim1 ! vector opt.587 DO j k = mikt(ji,jj)+1, jpkm1611 DO jk = 2, jpkm1 612 DO jj = 2, jpjm1 613 DO ji = fs_2, fs_jpim1 ! vector opt. 588 614 zemxl = MIN( fse3w(ji,jj,jk), zmxlm(ji,jj,jk) ) 589 615 zmxlm(ji,jj,jk) = zemxl … … 594 620 ! 595 621 CASE ( 2 ) ! |dk[xml]| bounded by e3t : 596 DO j j = 2, jpjm1597 DO j i = fs_2, fs_jpim1 ! vector opt.598 DO j k = mikt(ji,jj)+1, jpkm1 ! from the surface to the bottom :622 DO jk = 2, jpkm1 ! from the surface to the bottom : 623 DO jj = 2, jpjm1 624 DO ji = fs_2, fs_jpim1 ! vector opt. 599 625 zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk-1) + fse3t(ji,jj,jk-1), zmxlm(ji,jj,jk) ) 600 626 END DO 601 DO jk = jpkm1, mikt(ji,jj)+1, -1 ! from the bottom to the surface : 627 END DO 628 END DO 629 DO jk = jpkm1, 2, -1 ! from the bottom to the surface : 630 DO jj = 2, jpjm1 631 DO ji = fs_2, fs_jpim1 ! vector opt. 602 632 zemxl = MIN( zmxlm(ji,jj,jk+1) + fse3t(ji,jj,jk+1), zmxlm(ji,jj,jk) ) 603 633 zmxlm(ji,jj,jk) = zemxl … … 608 638 ! 609 639 CASE ( 3 ) ! lup and ldown, |dk[xml]| bounded by e3t : 610 DO j j = 2, jpjm1611 DO j i = fs_2, fs_jpim1 ! vector opt.612 DO j k = mikt(ji,jj)+1, jpkm1 ! from the surface to the bottom : lup640 DO jk = 2, jpkm1 ! from the surface to the bottom : lup 641 DO jj = 2, jpjm1 642 DO ji = fs_2, fs_jpim1 ! vector opt. 613 643 zmxld(ji,jj,jk) = MIN( zmxld(ji,jj,jk-1) + fse3t(ji,jj,jk-1), zmxlm(ji,jj,jk) ) 614 644 END DO 615 DO jk = jpkm1, mikt(ji,jj)+1, -1 ! from the bottom to the surface : ldown 645 END DO 646 END DO 647 DO jk = jpkm1, 2, -1 ! from the bottom to the surface : ldown 648 DO jj = 2, jpjm1 649 DO ji = fs_2, fs_jpim1 ! vector opt. 616 650 zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk+1) + fse3t(ji,jj,jk+1), zmxlm(ji,jj,jk) ) 617 651 END DO … … 650 684 zsqen = SQRT( en(ji,jj,jk) ) 651 685 zav = rn_ediff * zmxlm(ji,jj,jk) * zsqen 652 avm (ji,jj,jk) = MAX( zav, avmb(jk) ) * tmask(ji,jj,jk)653 avt (ji,jj,jk) = MAX( zav, avtb_2d(ji,jj) * avtb(jk) ) * tmask(ji,jj,jk)686 avm (ji,jj,jk) = MAX( zav, avmb(jk) ) * wmask(ji,jj,jk) 687 avt (ji,jj,jk) = MAX( zav, avtb_2d(ji,jj) * avtb(jk) ) * wmask(ji,jj,jk) 654 688 dissl(ji,jj,jk) = zsqen / zmxld(ji,jj,jk) 655 689 END DO … … 658 692 CALL lbc_lnk( avm, 'W', 1. ) ! Lateral boundary conditions (sign unchanged) 659 693 ! 660 DO jj = 2, jpjm1 661 DO ji = fs_2, fs_jpim1 ! vector opt. 662 DO jk = miku(ji,jj)+1, jpkm1 !* vertical eddy viscosity at u- and v-points 663 avmu(ji,jj,jk) = 0.5 * ( avm(ji,jj,jk) + avm(ji+1,jj ,jk) ) * umask(ji,jj,jk) 664 END DO 665 DO jk = mikv(ji,jj)+1, jpkm1 666 avmv(ji,jj,jk) = 0.5 * ( avm(ji,jj,jk) + avm(ji ,jj+1,jk) ) * vmask(ji,jj,jk) 694 DO jk = 2, jpkm1 !* vertical eddy viscosity at wu- and wv-points 695 DO jj = 2, jpjm1 696 DO ji = fs_2, fs_jpim1 ! vector opt. 697 avmu(ji,jj,jk) = 0.5 * ( avm(ji,jj,jk) + avm(ji+1,jj ,jk) ) * wumask(ji,jj,jk) 698 avmv(ji,jj,jk) = 0.5 * ( avm(ji,jj,jk) + avm(ji ,jj+1,jk) ) * wvmask(ji,jj,jk) 667 699 END DO 668 700 END DO … … 671 703 ! 672 704 IF( nn_pdl == 1 ) THEN !* Prandtl number case: update avt 673 DO j j = 2, jpjm1674 DO j i = fs_2, fs_jpim1 ! vector opt.675 DO j k = mikt(ji,jj)+1, jpkm1705 DO jk = 2, jpkm1 706 DO jj = 2, jpjm1 707 DO ji = fs_2, fs_jpim1 ! vector opt. 676 708 zcoef = avm(ji,jj,jk) * 2._wp * fse3w(ji,jj,jk) * fse3w(ji,jj,jk) 677 709 ! ! shear … … 685 717 !!gm and even better with the use of the "true" ri_crit=0.22222... (this change the results!) 686 718 !!gm zpdlr = MAX( 0.1_wp, ri_crit / MAX( ri_crit , zri ) ) 687 avt(ji,jj,jk) = MAX( zpdlr * avt(ji,jj,jk), avtb_2d(ji,jj) * avtb(jk) ) * tmask(ji,jj,jk)719 avt(ji,jj,jk) = MAX( zpdlr * avt(ji,jj,jk), avtb_2d(ji,jj) * avtb(jk) ) * wmask(ji,jj,jk) 688 720 # if defined key_c1d 689 e_pdl(ji,jj,jk) = zpdlr * tmask(ji,jj,jk) ! c1d configuration : save masked Prandlt number690 e_ric(ji,jj,jk) = zri * tmask(ji,jj,jk) ! c1d config. : save Ri721 e_pdl(ji,jj,jk) = zpdlr * wmask(ji,jj,jk) ! c1d configuration : save masked Prandlt number 722 e_ric(ji,jj,jk) = zri * wmask(ji,jj,jk) ! c1d config. : save Ri 691 723 # endif 692 724 END DO … … 776 808 IF( nn_pdl < 0 .OR. nn_pdl > 1 ) CALL ctl_stop( 'bad flag: nn_pdl is 0 or 1 ' ) 777 809 IF( nn_htau < 0 .OR. nn_htau > 5 ) CALL ctl_stop( 'bad flag: nn_htau is 0 to 5 ' ) 778 IF( nn_etau == 3 .AND. .NOT. l k_cpl ) CALL ctl_stop( 'nn_etau == 3 : HF taum only known in coupled mode' )810 IF( nn_etau == 3 .AND. .NOT. ln_cpl ) CALL ctl_stop( 'nn_etau == 3 : HF taum only known in coupled mode' ) 779 811 780 812 IF( ln_mxl0 ) THEN … … 829 861 ! !* set vertical eddy coef. to the background value 830 862 DO jk = 1, jpk 831 avt (:,:,jk) = avtb(jk) * tmask(:,:,jk)832 avm (:,:,jk) = avmb(jk) * tmask(:,:,jk)833 avmu(:,:,jk) = avmb(jk) * umask(:,:,jk)834 avmv(:,:,jk) = avmb(jk) * vmask(:,:,jk)863 avt (:,:,jk) = avtb(jk) * wmask (:,:,jk) 864 avm (:,:,jk) = avmb(jk) * wmask (:,:,jk) 865 avmu(:,:,jk) = avmb(jk) * wumask(:,:,jk) 866 avmv(:,:,jk) = avmb(jk) * wvmask(:,:,jk) 835 867 END DO 836 868 dissl(:,:,:) = 1.e-12_wp … … 883 915 en (:,:,:) = rn_emin * tmask(:,:,:) 884 916 CALL tke_avn ! recompute avt, avm, avmu, avmv and dissl (approximation) 917 ! 918 avt_k (:,:,:) = avt (:,:,:) 919 avm_k (:,:,:) = avm (:,:,:) 920 avmu_k(:,:,:) = avmu(:,:,:) 921 avmv_k(:,:,:) = avmv(:,:,:) 922 ! 885 923 DO jit = nit000 + 1, nit000 + 10 ; CALL zdf_tke( jit ) ; END DO 886 924 ENDIF … … 888 926 en(:,:,:) = rn_emin * tmask(:,:,:) 889 927 DO jk = 1, jpk ! set the Kz to the background value 890 avt (:,:,jk) = avtb(jk) * tmask(:,:,jk)891 avm (:,:,jk) = avmb(jk) * tmask(:,:,jk)892 avmu(:,:,jk) = avmb(jk) * umask(:,:,jk)893 avmv(:,:,jk) = avmb(jk) * vmask(:,:,jk)928 avt (:,:,jk) = avtb(jk) * wmask (:,:,jk) 929 avm (:,:,jk) = avmb(jk) * wmask (:,:,jk) 930 avmu(:,:,jk) = avmb(jk) * wumask(:,:,jk) 931 avmv(:,:,jk) = avmb(jk) * wvmask(:,:,jk) 894 932 END DO 895 933 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.