Changeset 5116 for LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin
- Timestamp:
- Jul 24, 2024, 2:54:37 PM (4 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin/bulk_flux_m.F90
r5113 r5116 8 8 u, t_ocean_1, s1, rain, hf, hlb, rnl, tau, rhoa, xlv, rf, dtime, rns) 9 9 10 use config_ocean_skin_m, only: jwarm, jcool, rain_effect11 use Microlayer_m, only: Microlayer12 use mom_flux_rain_m, only: mom_flux_rain13 use Near_Surface_m, only: Near_Surface, depth14 use therm_expans_m, only: therm_expans10 use config_ocean_skin_m, ONLY: jwarm, jcool, rain_effect 11 use Microlayer_m, ONLY: Microlayer 12 use mom_flux_rain_m, ONLY: mom_flux_rain 13 use Near_Surface_m, ONLY: Near_Surface, depth 14 use therm_expans_m, ONLY: therm_expans 15 15 16 16 real, intent(out):: tkt(:) … … 97 97 !------------------------------------------------------------------- 98 98 99 if (rain_effect) then99 if (rain_effect) THEN 100 100 taur = mom_flux_rain(u, rain) 101 101 else … … 106 106 if (jwarm .or. jcool) tau_with_min = tau + tau_0 * (1. - exp(- tau_0 / tau)) 107 107 108 if (Jwarm) then109 if (rain_effect) then108 if (Jwarm) THEN 109 if (rain_effect) THEN 110 110 CALL Near_Surface(al, t_subskin, s_subskin, ds_ns, dt_ns, & 111 111 tau_with_min, taur, hlb, rhoa, xlv, dtime, t_ocean_1, s1, rain, & … … 122 122 end if 123 123 124 if (Jcool) then124 if (Jcool) THEN 125 125 ! First guess: 126 126 tkt = 0.001 … … 131 131 dels = rns * (0.065 + 11. * tkt - 6.6e-5 / tkt & 132 132 * (1. - exp(- tkt / 8e-4))) ! equation 16 Ohlmann 133 if (rain_effect) then133 if (rain_effect) THEN 134 134 CALL Microlayer(dter, dser, tkt, tks, hlb, tau_with_min, & 135 135 s_subskin, al, xlv, taur, rf, rain, & -
LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin/config_ocean_skin_m.F90
r5113 r5116 30 30 31 31 #ifdef IN_LMDZ 32 use lmdz_ioipsl_getin_p, only: getin_p33 use lmdz_assert, only: assert32 use lmdz_ioipsl_getin_p, ONLY: getin_p 33 use lmdz_assert, ONLY: assert 34 34 #endif 35 35 … … 45 45 CALL assert(activate_ocean_skin >= 0 .and. activate_ocean_skin <= 2, & 46 46 "config_ocean_skin bad value of activate_ocean_skin") 47 if (activate_ocean_skin >= 1) then47 if (activate_ocean_skin >= 1) THEN 48 48 CALL getin_p("flag_ocean_skin", flag_ocean_skin) 49 49 CALL getin_p("depth_1", depth_1) 50 50 end if 51 51 #else 52 write(unit = *, nml = config_ocean_skin_nml)52 WRITE(unit = *, nml = config_ocean_skin_nml) 53 53 print *, "Enter namelist config_ocean_skin_nml." 54 54 read(unit = *, nml = config_ocean_skin_nml) 55 write(unit = *, nml = config_ocean_skin_nml)55 WRITE(unit = *, nml = config_ocean_skin_nml) 56 56 #endif 57 57 -
LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin/esat_m.F90
r5113 r5116 18 18 * exp(17.502 * (T - 273.15) / (T - 32.18)) 19 19 20 end functionesat20 END FUNCTION esat 21 21 22 22 end module esat_m -
LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin/fv_m.F90
r5113 r5116 30 30 !--------------------------------------------------------------------- 31 31 32 if (rain > 0.) then32 if (rain > 0.) THEN 33 33 rc = 0.4 ! mm 34 34 z_mm = z * 1000. ! mm and <0 … … 42 42 endif 43 43 44 end functionfV44 END FUNCTION fV 45 45 46 46 end module fv_m -
LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin/microlayer_m.F90
r5103 r5116 10 10 ! H. Bellenger 2016 11 11 12 use const, only: beta, cpw, grav, rhow13 use fv_m, only: fv12 use const, ONLY: beta, cpw, grav, rhow 13 use fv_m, ONLY: fv 14 14 15 15 real, intent(out):: dter(:) -
LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin/mom_flux_rain_m.F90
r5113 r5116 20 20 ! as in paragraph 3.a, maybe adequate if u is the wind at 10 m) 21 21 22 end functionmom_flux_rain22 END FUNCTION mom_flux_rain 23 23 24 24 end module mom_flux_rain_m -
LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin/near_surface_m.F90
r5103 r5116 13 13 ! Hugo Bellenger, 2016 14 14 15 use config_ocean_skin_m, only: depth_116 use const, only: beta, cpw, grav, rhow, von17 use Phiw_m, only: Phiw18 use therm_expans_m, only: therm_expans15 use config_ocean_skin_m, ONLY: depth_1 16 use const, ONLY: beta, cpw, grav, rhow, von 17 use Phiw_m, ONLY: Phiw 18 use therm_expans_m, ONLY: therm_expans 19 19 20 20 real, intent(out):: al(:) ! water thermal expansion coefficient (in K-1) … … 93 93 end where 94 94 95 if (depth_1 < depth) then95 if (depth_1 < depth) THEN 96 96 correction = 1. - (depth_1 / depth)**eta 97 97 ! (neglecting microlayer thickness compared to depth_1 and depth) -
LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin/phiw_m.F90
r5113 r5116 13 13 !---------------------------------------------- 14 14 15 if (zL < 0.) then15 if (zL < 0.) THEN 16 16 Phiw = (1. - 16. * zL)**(- 0.5) 17 17 else … … 20 20 end if 21 21 22 end functionPhiw22 END FUNCTION Phiw 23 23 24 24 end module Phiw_m -
LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin/sens_heat_rain_m.F90
r5113 r5116 18 18 ! OpenMP 5.0. 19 19 20 use const, only: cpa, cpw, rgas20 use const, ONLY: cpa, cpw, rgas 21 21 #ifndef IN_LMDZ 22 use const, only: eps_w22 use const, ONLY: eps_w 23 23 #endif 24 use esat_m, only: esat24 use esat_m, ONLY: esat 25 25 26 26 #ifdef IN_LMDZ … … 66 66 sens_heat_rain = rain * alfac * cpw * (t_int - t + (q_int - q) * xlv / cpa) 67 67 68 end functionsens_heat_rain68 END FUNCTION sens_heat_rain 69 69 70 70 end module sens_heat_rain_m -
LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin/therm_expans_m.F90
r5113 r5116 15 15 therm_expans = 2.1e-5 * (t - 269.95)**0.79 16 16 17 end functiontherm_expans17 END FUNCTION therm_expans 18 18 19 19 end module therm_expans_m
Note: See TracChangeset
for help on using the changeset viewer.