Changeset 13237 for NEMO/trunk/src/OCE/ZDF
- Timestamp:
- 2020-07-03T11:12:53+02:00 (4 years ago)
- Location:
- NEMO/trunk/src/OCE/ZDF
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/ZDF/zdfddm.F90
r13226 r13237 96 96 DO_2D_11_11 97 97 zrw = ( gdepw(ji,jj,jk ,Kmm) - gdept(ji,jj,jk,Kmm) ) & 98 !!gm please, use e3w (:,:,:,Kmm)below98 !!gm please, use e3w at Kmm below 99 99 & / ( gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm) ) 100 100 ! -
NEMO/trunk/src/OCE/ZDF/zdfdrg.F90
r12489 r13237 74 74 !! * Substitutions 75 75 # include "do_loop_substitute.h90" 76 # include "domzgr_substitute.h90" 76 77 !!---------------------------------------------------------------------- 77 78 !! NEMO/OCE 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/OCE/ZDF/zdfgls.F90
r12489 r13237 105 105 !! * Substitutions 106 106 # include "do_loop_substitute.h90" 107 # include "domzgr_substitute.h90" 107 108 !!---------------------------------------------------------------------- 108 109 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 263 264 zcof = rfact_tke * tmask(ji,jj,jk) 264 265 ! ! lower diagonal, in fact not used for jk = 2 (see surface conditions) 265 zd_lw(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk ) + p_avm(ji,jj,jk-1) ) / ( e3t(ji,jj,jk-1,Kmm) * e3w(ji,jj,jk,Kmm) ) 266 zd_lw(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk ) + p_avm(ji,jj,jk-1) ) & 267 & / ( e3t(ji,jj,jk-1,Kmm) * e3w(ji,jj,jk,Kmm) ) 266 268 ! ! upper diagonal, in fact not used for jk = ibotm1 (see bottom conditions) 267 zd_up(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk ) ) / ( e3t(ji,jj,jk ,Kmm) * e3w(ji,jj,jk,Kmm) ) 269 zd_up(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk ) ) & 270 & / ( e3t(ji,jj,jk ,Kmm) * e3w(ji,jj,jk,Kmm) ) 268 271 ! ! diagonal 269 272 zdiag(ji,jj,jk) = 1._wp - zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) + rn_Dt * zdiss * wmask(ji,jj,jk) … … 473 476 zcof = rfact_psi * zwall_psi(ji,jj,jk) * tmask(ji,jj,jk) 474 477 ! ! lower diagonal 475 zd_lw(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk ) + p_avm(ji,jj,jk-1) ) / ( e3t(ji,jj,jk-1,Kmm) * e3w(ji,jj,jk,Kmm) ) 478 zd_lw(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk ) + p_avm(ji,jj,jk-1) ) & 479 & / ( e3t(ji,jj,jk-1,Kmm) * e3w(ji,jj,jk,Kmm) ) 476 480 ! ! upper diagonal 477 zd_up(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk ) ) / ( e3t(ji,jj,jk ,Kmm) * e3w(ji,jj,jk,Kmm) ) 481 zd_up(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk ) ) & 482 & / ( e3t(ji,jj,jk ,Kmm) * e3w(ji,jj,jk,Kmm) ) 478 483 ! ! diagonal 479 484 zdiag(ji,jj,jk) = 1._wp - zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) + rn_Dt * zdiss * wmask(ji,jj,jk) … … 1100 1105 !!====================================================================== 1101 1106 END MODULE zdfgls 1102 -
NEMO/trunk/src/OCE/ZDF/zdfiwm.F90
r12510 r13237 51 51 !! * Substitutions 52 52 # include "do_loop_substitute.h90" 53 # include "domzgr_substitute.h90" 53 54 !!---------------------------------------------------------------------- 54 55 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 94 95 !! 2. Pycnocline-intensified low-mode dissipation 95 96 !! zemx_iwm(z) = ( epyc_iwm / rho0 ) * ( sqrt(rn2(z))^nn_zpyc ) 96 !! / SUM( sqrt(rn2(z))^nn_zpyc * e3w (z) )97 !! / SUM( sqrt(rn2(z))^nn_zpyc * e3w[z) ) 97 98 !! where epyc_iwm is a map of available power, and nn_zpyc 98 99 !! is the chosen stratification-dependence of the internal wave … … 100 101 !! 3. WKB-height dependent high mode dissipation 101 102 !! zemx_iwm(z) = ( ebot_iwm / rho0 ) * rn2(z) * EXP(-z_wkb(z)/hbot_iwm) 102 !! / SUM( rn2(z) * EXP(-z_wkb(z)/hbot_iwm) * e3w (z) )103 !! / SUM( rn2(z) * EXP(-z_wkb(z)/hbot_iwm) * e3w[z) ) 103 104 !! where hbot_iwm is the characteristic length scale of the WKB bottom 104 105 !! intensification, ebot_iwm is a map of available power, and z_wkb is the 105 106 !! WKB-stretched height above bottom defined as 106 !! z_wkb(z) = H * SUM( sqrt(rn2(z'>=z)) * e3w (z'>=z) )107 !! / SUM( sqrt(rn2(z')) * e3w (z') )107 !! z_wkb(z) = H * SUM( sqrt(rn2(z'>=z)) * e3w[z'>=z) ) 108 !! / SUM( sqrt(rn2(z')) * e3w[z') ) 108 109 !! 109 110 !! - update the model vertical eddy viscosity and diffusivity: … … 178 179 zfact(:,:) = 0._wp 179 180 DO jk = 2, jpkm1 ! part independent of the level 180 zfact(:,:) = zfact(:,:) + e3w(:,:,jk,Kmm) * SQRT( MAX( 0._wp, rn2(:,:,jk) ) ) * wmask(:,:,jk) 181 zfact(:,:) = & 182 & zfact(:,:) + & 183 & e3w(:,:,jk,Kmm) * SQRT( MAX( 0._wp, rn2(:,:,jk) ) ) * wmask(:,:,jk) 181 184 END DO 182 185 ! -
NEMO/trunk/src/OCE/ZDF/zdfmxl.F90
r12489 r13237 38 38 !! * Substitutions 39 39 # include "do_loop_substitute.h90" 40 # include "domzgr_substitute.h90" 40 41 !!---------------------------------------------------------------------- 41 42 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 100 101 DO_3D_11_11( nlb10, jpkm1 ) 101 102 ikt = mbkt(ji,jj) 102 hmlp(ji,jj) = hmlp(ji,jj) + MAX( rn2b(ji,jj,jk) , 0._wp ) * e3w(ji,jj,jk,Kmm) 103 hmlp(ji,jj) = & 104 & hmlp(ji,jj) + MAX( rn2b(ji,jj,jk) , 0._wp ) * e3w(ji,jj,jk,Kmm) 103 105 IF( hmlp(ji,jj) < zN2_c ) nmln(ji,jj) = MIN( jk , ikt ) + 1 ! Mixed layer level 104 106 END_3D -
NEMO/trunk/src/OCE/ZDF/zdfosm.F90
r13226 r13237 103 103 INTEGER :: idebug = 236 104 104 INTEGER :: jdebug = 228 105 105 106 !! * Substitutions 106 107 # include "do_loop_substitute.h90" 108 # include "domzgr_substitute.h90" 107 109 !!---------------------------------------------------------------------- 108 110 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 503 505 & - zbeta * ( zs_bl(ji,jj) - ts(ji,jj,jm,jp_sal,Kmm) ) ), 0.0 ) + zvel_max 504 506 505 zhbl_s = zhbl_s + MIN( - zwb_ent(ji,jj) / zdb * rn_Dt / FLOAT(ibld(ji,jj)-imld(ji,jj) ), e3w(ji,jj,jk,Kmm) ) 507 zhbl_s = zhbl_s + MIN( - zwb_ent(ji,jj) / zdb * rn_Dt / FLOAT(ibld(ji,jj)-imld(ji,jj) ), & 508 & e3w(ji,jj,jk,Kmm) ) 506 509 zhbl_s = MIN(zhbl_s, ht(ji,jj)) 507 510 … … 594 597 zwb_ent(ji,jj) = 0._wp 595 598 ENDIF 596 inhml = MAX( INT( zari * zhbl(ji,jj) / e3t(ji,jj,ibld(ji,jj),Kmm) ) , 1 ) 599 inhml = MAX( INT( zari * zhbl(ji,jj) & 600 & / e3t(ji,jj,ibld(ji,jj),Kmm) ), 1 ) 597 601 imld(ji,jj) = MAX( ibld(ji,jj) - inhml, 1) 598 602 zhml(ji,jj) = gdepw(ji,jj,imld(ji,jj),Kmm) … … 610 614 zari = MIN( 4.5 * ( zvstr(ji,jj)**2 ) & 611 615 & / ( zdb_bl(ji,jj) * zhbl(ji,jj) ) + 0.01 , 0.2 ) 612 inhml = MAX( INT( zari * zhbl(ji,jj) / e3t(ji,jj,ibld(ji,jj),Kmm) ) , 1 ) 616 inhml = MAX( INT( zari * zhbl(ji,jj) & 617 & / e3t(ji,jj,ibld(ji,jj),Kmm) ), 1 ) 613 618 imld(ji,jj) = MAX( ibld(ji,jj) - inhml, 1) 614 619 zhml(ji,jj) = gdepw(ji,jj,imld(ji,jj),Kmm) -
NEMO/trunk/src/OCE/ZDF/zdfsh2.F90
r12377 r13237 24 24 !! * Substitutions 25 25 # include "do_loop_substitute.h90" 26 # include "domzgr_substitute.h90" 26 27 !!---------------------------------------------------------------------- 27 28 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 62 63 zsh2u(ji,jj) = ( p_avm(ji+1,jj,jk) + p_avm(ji,jj,jk) ) & 63 64 & * ( uu(ji,jj,jk-1,Kmm) - uu(ji,jj,jk,Kmm) ) & 64 & * ( uu(ji,jj,jk-1,Kbb) - uu(ji,jj,jk,Kbb) ) / ( e3uw(ji,jj,jk,Kmm) * e3uw(ji,jj,jk,Kbb) ) * wumask(ji,jj,jk) 65 & * ( uu(ji,jj,jk-1,Kbb) - uu(ji,jj,jk,Kbb) ) & 66 & / ( e3uw(ji,jj,jk ,Kmm) * e3uw(ji,jj,jk,Kbb) ) & 67 & * wumask(ji,jj,jk) 65 68 zsh2v(ji,jj) = ( p_avm(ji,jj+1,jk) + p_avm(ji,jj,jk) ) & 66 69 & * ( vv(ji,jj,jk-1,Kmm) - vv(ji,jj,jk,Kmm) ) & 67 & * ( vv(ji,jj,jk-1,Kbb) - vv(ji,jj,jk,Kbb) ) / ( e3vw(ji,jj,jk,Kmm) * e3vw(ji,jj,jk,Kbb) ) * wvmask(ji,jj,jk) 70 & * ( vv(ji,jj,jk-1,Kbb) - vv(ji,jj,jk,Kbb) ) & 71 & / ( e3vw(ji,jj,jk ,Kmm) * e3vw(ji,jj,jk,Kbb) ) & 72 & * wvmask(ji,jj,jk) 68 73 END_2D 69 74 DO_2D_00_00 -
NEMO/trunk/src/OCE/ZDF/zdftke.F90
r13226 r13237 98 98 !! * Substitutions 99 99 # include "do_loop_substitute.h90" 100 # include "domzgr_substitute.h90" 100 101 !!---------------------------------------------------------------------- 101 102 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 267 268 zpelc(:,:,1) = MAX( rn2b(:,:,1), 0._wp ) * gdepw(:,:,1,Kmm) * e3w(:,:,1,Kmm) 268 269 DO jk = 2, jpk 269 zpelc(:,:,jk) = zpelc(:,:,jk-1) + MAX( rn2b(:,:,jk), 0._wp ) * gdepw(:,:,jk,Kmm) * e3w(:,:,jk,Kmm) 270 zpelc(:,:,jk) = zpelc(:,:,jk-1) + & 271 & MAX( rn2b(:,:,jk), 0._wp ) * gdepw(:,:,jk,Kmm) * e3w(:,:,jk,Kmm) 270 272 END DO 271 273 ! !* finite Langmuir Circulation depth … … 325 327 ! ! eddy coefficient (ensure numerical stability) 326 328 zzd_up = zcof * MAX( p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk ) , 2.e-5_wp ) & ! upper diagonal 327 & / ( e3t(ji,jj,jk ,Kmm) * e3w(ji,jj,jk ,Kmm) ) 329 & / ( e3t(ji,jj,jk ,Kmm) & 330 & * e3w(ji,jj,jk ,Kmm) ) 328 331 zzd_lw = zcof * MAX( p_avm(ji,jj,jk ) + p_avm(ji,jj,jk-1) , 2.e-5_wp ) & ! lower diagonal 329 & / ( e3t(ji,jj,jk-1,Kmm) * e3w(ji,jj,jk ,Kmm) ) 332 & / ( e3t(ji,jj,jk-1,Kmm) & 333 & * e3w(ji,jj,jk ,Kmm) ) 330 334 ! 331 335 zd_up(ji,jj,jk) = zzd_up ! Matrix (zdiag, zd_up, zd_lw) … … 515 519 & gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) - gdepw(ji,jj,jk,Kmm) ) 516 520 ! wmask prevent zmxlm = 0 if jk = mikt(ji,jj) 517 zmxlm(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 518 zmxld(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 521 zmxlm(ji,jj,jk) = zemxl * wmask(ji,jj,jk) & 522 & + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 523 zmxld(ji,jj,jk) = zemxl * wmask(ji,jj,jk) & 524 & + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 519 525 END_3D 520 526 ! … … 528 534 CASE ( 2 ) ! |dk[xml]| bounded by e3t : 529 535 DO_3D_00_00( 2, jpkm1 ) 530 zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 536 zmxlm(ji,jj,jk) = & 537 & MIN( zmxlm(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 531 538 END_3D 532 539 DO_3DS_00_00( jpkm1, 2, -1 ) … … 538 545 CASE ( 3 ) ! lup and ldown, |dk[xml]| bounded by e3t : 539 546 DO_3D_00_00( 2, jpkm1 ) 540 zmxld(ji,jj,jk) = MIN( zmxld(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 547 zmxld(ji,jj,jk) = & 548 & MIN( zmxld(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 541 549 END_3D 542 550 DO_3DS_00_00( jpkm1, 2, -1 ) 543 zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 551 zmxlm(ji,jj,jk) = & 552 & MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 544 553 END_3D 545 554 DO_3D_00_00( 2, jpkm1 )
Note: See TracChangeset
for help on using the changeset viewer.