- Timestamp:
- 2021-01-08T18:33:46+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
r14281 r14283 715 715 DO jj = 2, jpjm1 716 716 DO ji = 2, jpim1 717 IF ( zdb_bl(ji,jj) < rn_osm_bl_thresh .or. ibld(ji,jj) + jp_ext(ji,jj) >= mbkt(ji,jj) .or. ibld(ji,jj)-imld(j j,ji) == 1 ) lpyc(ji,jj) = .FALSE.717 IF ( zdb_bl(ji,jj) < rn_osm_bl_thresh .or. ibld(ji,jj) + jp_ext(ji,jj) >= mbkt(ji,jj) .or. ibld(ji,jj)-imld(ji,jj) == 1 ) lpyc(ji,jj) = .FALSE. 718 718 END DO 719 719 END DO … … 915 915 IF ( j_ddh(ji,jj) == 0 ) THEN 916 916 ! Place holding code. Parametrization needs checking for these conditions. 917 zomega = ( 0.15 * zwstrl(ji,jj)**3 + zwstrc(ji,jj)**3 + 4.75 * ( zshear(ji,jj)* zhbl(ji,jj) ) **pthird)**pthird917 zomega = ( 0.15 * zwstrl(ji,jj)**3 + zwstrc(ji,jj)**3 + 4.75 * ( zshear(ji,jj)* zhbl(ji,jj) ))**pthird 918 918 zuw_bse = -0.0035 * zomega * ( 1.0 - zdh(ji,jj) / zhbl(ji,jj) ) * zdu_ml(ji,jj) 919 919 zvw_bse = -0.0075 * zomega * ( 1.0 - zdh(ji,jj) / zhbl(ji,jj) ) * zdv_ml(ji,jj) 920 920 ELSE 921 zomega = ( 0.15 * zwstrl(ji,jj)**3 + zwstrc(ji,jj)**3 + 4.75 * ( zshear(ji,jj)* zhbl(ji,jj) ) **pthird)**pthird921 zomega = ( 0.15 * zwstrl(ji,jj)**3 + zwstrc(ji,jj)**3 + 4.75 * ( zshear(ji,jj)* zhbl(ji,jj) ))**pthird 922 922 zuw_bse = -0.0035 * zomega * ( 1.0 - zdh(ji,jj) / zhbl(ji,jj) ) * zdu_ml(ji,jj) 923 923 zvw_bse = -0.0075 * zomega * ( 1.0 - zdh(ji,jj) / zhbl(ji,jj) ) * zdv_ml(ji,jj) … … 928 928 DO jk = imld(ji,jj), ibld(ji,jj) 929 929 zznd_pyc = - ( gdepw_n(ji,jj,jk) - zhbl(ji,jj) ) / zdh(ji,jj) 930 ghamu(ji,jj,jk) = ghamu(ji,jj,jk) - 0.045 * ztau_sc_u(ji,jj)**2 * ( zc_cubic * zznd_pyc**2 + zd_cubic * zznd_pyc**3 ) * ( 0.75 + 0.25 * zznd_pyc )**2 * zdbdz_pyc(ji,jj,jk) 930 ghamu(ji,jj,jk) = ghamu(ji,jj,jk) - 0.045 * ( ztau_sc_u(ji,jj)**2 ) * zuw_bse * & 931 & ( zc_cubic * zznd_pyc**2 + zd_cubic * zznd_pyc**3 ) * ( 0.75 + 0.25 * zznd_pyc )**2 * zdbdz_pyc(ji,jj,jk) 931 932 END DO 932 933 zvw_max = 0.7 * ff_t(ji,jj) * ( zustke(ji,jj) * dstokes(ji,jj) + 0.75 * zustar(ji,jj) * zhml(ji,jj) ) … … 935 936 DO jk = imld(ji,jj), ibld(ji,jj) 936 937 zznd_pyc = -( gdepw_n(ji,jj,jk) -zhbl(ji,jj) ) / zdh(ji,jj) 937 ghamv(ji,jj,jk) = ghamv(ji,jj,jk) - 0.045 * ztau_sc_u(ji,jj)**2 * ( zc_cubic * zznd_pyc**2 + zd_cubic * zznd_pyc**3 ) * ( 0.75 + 0.25 * zznd_pyc )**2 * zdbdz_pyc(ji,jj,jk) 938 ghamv(ji,jj,jk) = ghamv(ji,jj,jk) - 0.045 * ( ztau_sc_u(ji,jj)**2 ) * zvw_bse * & 939 & ( zc_cubic * zznd_pyc**2 + zd_cubic * zznd_pyc**3 ) * ( 0.75 + 0.25 * zznd_pyc )**2 * zdbdz_pyc(ji,jj,jk) 938 940 END DO 939 941 ENDIF ! lpyc … … 1067 1069 IF ( .not. lconv(ji,jj) ) THEN 1068 1070 DO jk = 2, ibld(ji,jj) 1069 znd = ( gdepw_n(ji,jj,jk) - zhbl(ji,jj) ) / zhbl(ji,jj) !ALMG to think about1071 znd = -( gdepw_n(ji,jj,jk) - zhbl(ji,jj) ) / zhbl(ji,jj) !ALMG to think about 1070 1072 IF ( znd >= 0.0 ) THEN 1071 1073 ghamu(ji,jj,jk) = ghamu(ji,jj,jk) * ( 1.0 - EXP( -10.0 * znd**2 ) ) … … 1086 1088 IF ( ibld(ji,jj) + jp_ext(ji,jj) < mbkt(ji,jj) ) THEN 1087 1089 DO jk= 2, ibld(ji,jj) 1088 znd = gdepw_n(ji,jj,jk) / zhbl(ji,jj)1089 1090 ghamt(ji,jj,jk) = ghamt(ji,jj,jk) + zdiffut(ji,jj,jk) * zdtdz_pyc(ji,jj,jk) 1090 1091 ghams(ji,jj,jk) = ghams(ji,jj,jk) + zdiffut(ji,jj,jk) * zdsdz_pyc(ji,jj,jk) … … 1407 1408 zbeta_v_sc(ji,jj) = 1.0 - 2.0 * ( zvispyc_n_sc(ji,jj) + zvispyc_s_sc(ji,jj) ) / ( zvisml_sc(ji,jj) + epsln ) 1408 1409 ELSE 1409 zbeta_d_sc = 1.01410 zbeta_v_sc = 1.01410 zbeta_d_sc(ji,jj) = 1.0 1411 zbeta_v_sc(ji,jj) = 1.0 1411 1412 ENDIF 1412 1413 ELSE … … 1448 1449 zb_cubic = -1.75 * zvispyc_s_sc(ji,jj) / zvispyc_n_sc(ji,jj) 1449 1450 zd_cubic = ( 0.5 * zvisml_sc(ji,jj) * zdh(ji,jj) / zhml(ji,jj) - 0.85 * zvispyc_s_sc(ji,jj) ) / MAX(zvispyc_n_sc(ji,jj), 1.e-8) 1450 zd_cubic = zd_cubic - zb_cubic - 2.0 * ( 1.0 - za_cubic - z d_cubic )1451 zd_cubic = zd_cubic - zb_cubic - 2.0 * ( 1.0 - za_cubic - zb_cubic ) 1451 1452 zc_cubic = 1.0 - za_cubic - zb_cubic - zd_cubic 1452 1453 DO jk = imld(ji,jj) , ibld(ji,jj) … … 1604 1605 1605 1606 DO jj = 2, jpjm1 1606 DO ji = 2, jp jm11607 DO ji = 2, jpim1 1607 1608 IF ( lshear(ji,jj) ) THEN 1608 1609 IF ( lconv(ji,jj) ) THEN … … 1779 1780 zpe_mle_layer = 0._wp 1780 1781 zpe_mle_ref = 0._wp 1782 zthermal = rab_n(ji,jj,1,jp_tem) 1783 zbeta = rab_n(ji,jj,1,jp_sal) 1784 1781 1785 DO jk = ibld(ji,jj), mld_prof(ji,jj) 1782 1786 zbuoy = grav * ( zthermal * tsn(ji,jj,jk,jp_tem) - zbeta * tsn(ji,jj,jk,jp_sal) ) … … 1816 1820 lpyc(ji,jj) = .FALSE. 1817 1821 ELSE 1818 lpyc = .TRUE.1822 lpyc(ji,jj) = .TRUE. 1819 1823 ENDIF 1820 1824 ELSE … … 2503 2507 END DO 2504 2508 2509 ! ensure salinity > 0 in unset values so EOS doesn't give FP error with fpe0 on 2510 ztsm_midu(:,jpj,jp_sal) = 10. 2511 ztsm_midv(jpi,:,jp_sal) = 10. 2512 2505 2513 CALL eos_rab(ztsm_midu, zmld_midu, zabu) 2506 2514 CALL eos_rab(ztsm_midv, zmld_midv, zabv)
Note: See TracChangeset
for help on using the changeset viewer.