Changeset 14409
- Timestamp:
- 2021-02-05T13:46:37+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser_4.0/src/OCE/ZDF/zdfosm.F90
r14408 r14409 247 247 REAL(wp), DIMENSION(jpi,jpj) :: zws0 ! Surface freshwater flux 248 248 REAL(wp), DIMENSION(jpi,jpj) :: zwb0 ! Surface buoyancy flux 249 REAL(wp), DIMENSION(jpi,jpj) :: zwb0tot ! Total surface buoyancy flux including insolation 249 250 REAL(wp), DIMENSION(jpi,jpj) :: zwthav ! Heat flux - bl average 250 251 REAL(wp), DIMENSION(jpi,jpj) :: zwsav ! freshwater flux - bl average … … 355 356 zwthav(:,:) = 0._wp ; zwsav(:,:) = 0._wp ; zwbav(:,:) = 0._wp ; zwb_ent(:,:) = 0._wp 356 357 zustke(:,:) = 0._wp ; zla(:,:) = 0._wp ; zcos_wind(:,:) = 0._wp ; zsin_wind(:,:) = 0._wp 357 zhol(:,:) = 0._wp 358 zhol(:,:) = 0._wp ; zwb0tot(:,:) = 0._wp 358 359 lconv(:,:) = .FALSE.; lpyc(:,:) = .FALSE. ; lflux(:,:) = .FALSE. ; lmle(:,:) = .FALSE. 359 360 ! mixed layer … … 424 425 ! Non radiative upwards surface buoyancy flux 425 426 zwb0(ji,jj) = grav * zthermal * zwth0(ji,jj) - grav * zbeta * zws0(ji,jj) 427 ! Total upwards surface buoyancy flux 428 zwb0tot(ji,jj) = zwb0(ji,jj) - grav * zthermal * zrad0(ji,jj) 426 429 ! turbulent heat flux averaged over depth of OSBL 427 430 zwthav(ji,jj) = 0.5 * zwth0(ji,jj) - ( 0.5*( zrad0(ji,jj) + zradh(ji,jj) ) - zradav(ji,jj) ) … … 1229 1232 DO jk = 1, ibld(ji,jj) 1230 1233 znd = gdepw_n(ji,jj,jk) / MAX(zhbl(ji,jj),epsln) 1231 ghamt(ji,jj,jk) = ghamt(ji,jj,jk) - zwth0(ji,jj) * ( 1.0 - znd )1234 ghamt(ji,jj,jk) = ghamt(ji,jj,jk) - ( zwth0(ji,jj) - zrad0(ji,jj) ) * ( 1.0 - znd ) 1232 1235 ghams(ji,jj,jk) = ghams(ji,jj,jk) - zws0(ji,jj) * ( 1.0 - znd ) 1233 1236 END DO 1234 1237 DO jk = 1, mld_prof(ji,jj) 1235 1238 znd = gdepw_n(ji,jj,jk) / MAX(zhmle(ji,jj),epsln) 1236 ghamt(ji,jj,jk) = ghamt(ji,jj,jk) + zwth0(ji,jj) * ( 1.0 - znd )1239 ghamt(ji,jj,jk) = ghamt(ji,jj,jk) + ( zwth0(ji,jj) - zrad0(ji,jj) ) * ( 1.0 - znd ) 1237 1240 ghams(ji,jj,jk) = ghams(ji,jj,jk) + zws0(ji,jj) * ( 1.0 -znd ) 1238 1241 END DO … … 1668 1671 IF ( lconv(ji,jj) ) THEN 1669 1672 ! Unstable OSBL 1670 zwb_min(ji,jj) = zwb_ent(ji,jj) + zdh(ji,jj) / zhbl(ji,jj) * zwb0 (ji,jj)1673 zwb_min(ji,jj) = zwb_ent(ji,jj) + zdh(ji,jj) / zhbl(ji,jj) * zwb0tot(ji,jj) 1671 1674 ENDIF ! lconv 1672 1675 END DO ! ji … … 2105 2108 IF ( zdb_bl(ji,jj) > 0.0 .and. zdbdz_bl_ext(ji,jj) > 0.0 ) THEN 2106 2109 zgamma_b_nd = zdbdz_bl_ext(ji,jj) * zdh(ji,jj) / zdb_ml(ji,jj) 2107 zpsi = -zalpha_pyc(ji,jj) * ( zwb0 (ji,jj) - ( zwb_min(ji,jj) + 2.0 * zwb_fk_b(ji,jj) ) ) * zdh(ji,jj) / zhbl(ji,jj)2110 zpsi = -zalpha_pyc(ji,jj) * ( zwb0tot(ji,jj) - ( zwb_min(ji,jj) + 2.0 * zwb_fk_b(ji,jj) ) ) * zdh(ji,jj) / zhbl(ji,jj) 2108 2111 zpsi = zpsi - 4.0 * ( 1.0 + zdh(ji,jj) /zhbl(ji,jj) ) * zgamma_b_nd * ( zwb_min(ji,jj) + 2.0 * zwb_fk_b(ji,jj) ) 2109 2112 zpsi = zalpha_b * MAX ( zpsi, 0._wp ) … … 2618 2621 zdb_mle = zb_bl(ji,jj) - zbuoy 2619 2622 ! Timestep hmle. 2620 hmle(ji,jj) = hmle(ji,jj) + zwb0 (ji,jj) * rn_rdt / zdb_mle2623 hmle(ji,jj) = hmle(ji,jj) + zwb0tot(ji,jj) * rn_rdt / zdb_mle 2621 2624 ELSE 2622 2625 IF ( zhmle(ji,jj) > zhbl(ji,jj) ) THEN
Note: See TracChangeset
for help on using the changeset viewer.