Changeset 3458
- Timestamp:
- Jan 30, 2019, 5:55:48 PM (6 years ago)
- Location:
- LMDZ6/branches/Ocean_skin/libf/phylmd
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Ocean_skin/libf/phylmd/pbl_surface_mod.F90
r3429 r3458 27 27 !! wx_pbl_fuse, wx_pbl_split 28 28 wx_pbl0_fuse, wx_pbl0_split 29 use config_ocean_skin_m, only: activate_ocean_skin 29 30 30 31 IMPLICIT NONE … … 963 964 rh2m_x(:) = 0. ; qsat2m_x(:) = 0. ; rh2m_w(:) = 0. ; qsat2m_w(:) = 0. 964 965 965 t_int = nf90_fill_real 966 s_int = nf90_fill_real 967 dter = nf90_fill_real 968 dser = nf90_fill_real 969 tkt = nf90_fill_real 970 tks = nf90_fill_real 971 rf = nf90_fill_real 972 taur = nf90_fill_real 966 if (activate_ocean_skin >= 1) then 967 t_int = nf90_fill_real 968 s_int = nf90_fill_real 969 dter = nf90_fill_real 970 dser = nf90_fill_real 971 tkt = nf90_fill_real 972 tks = nf90_fill_real 973 rf = nf90_fill_real 974 taur = nf90_fill_real 975 end if 973 976 974 977 ! 2b) Initialization of all local variables that will be compressed later … … 1431 1434 ENDIF 1432 1435 1433 if (nsrf == is_oce ) then1436 if (nsrf == is_oce .and. activate_ocean_skin >= 1) then 1434 1437 yds_ns(:knon) = ds_ns(ni(:knon)) 1435 1438 ydt_ns(:knon) = dt_ns(ni(:knon)) … … 2561 2564 ENDIF 2562 2565 2563 if (nsrf == is_oce ) then2566 if (nsrf == is_oce .and. activate_ocean_skin >= 1) then 2564 2567 dt_ns = nf90_fill_real 2565 2568 ds_ns = nf90_fill_real … … 3188 3191 USE indice_sol_mod 3189 3192 use phys_state_var_mod, only: ds_ns, dt_ns 3193 use config_ocean_skin_m, only: activate_ocean_skin 3190 3194 3191 3195 INCLUDE "dimsoil.h" … … 3274 3278 alb_dif(i,k,nsrf) = 0.06 3275 3279 ENDDO 3276 ds_ns(i) = 0. 3277 dt_ns(i) = 0. 3280 if (activate_ocean_skin >= 1) then 3281 ds_ns(i) = 0. 3282 dt_ns(i) = 0. 3283 end if 3278 3284 ELSE IF (nsrf.EQ.is_sic) THEN 3279 3285 tsurf(i,nsrf) = 271.35 -
LMDZ6/branches/Ocean_skin/libf/phylmd/phyetat0.F90
r3429 r3458 30 30 USE time_phylmdz_mod, ONLY: init_iteration, pdtphys, itau_phy 31 31 use netcdf, only: nf90_fill_real 32 use config_ocean_skin_m, only: activate_ocean_skin 32 33 33 34 IMPLICIT none … … 529 530 CALL fonte_neige_init(run_off_lic_0) 530 531 531 found = phyetat0_get(1, ds_ns, "ds_ns", "delta salinity near surface", 0.) 532 found = phyetat0_get(1, dt_ns, "dT_ns", "delta temperature near surface", 0.) 533 534 where (pctsrf(:, is_oce) == 0.) 535 ds_ns = nf90_fill_real 536 dt_ns = nf90_fill_real 537 end where 532 if (activate_ocean_skin >= 1) then 533 found = phyetat0_get(1, ds_ns, "ds_ns", "delta salinity near surface", 0.) 534 found = phyetat0_get(1, dt_ns, "dT_ns", "delta temperature near surface", & 535 0.) 536 537 where (pctsrf(:, is_oce) == 0.) 538 ds_ns = nf90_fill_real 539 dt_ns = nf90_fill_real 540 end where 541 end if 538 542 539 543 END SUBROUTINE phyetat0 -
LMDZ6/branches/Ocean_skin/libf/phylmd/phyredem.F90
r3429 r3458 37 37 USE ocean_slab_mod, ONLY : nslay, tslab, seaice, tice, fsic 38 38 USE time_phylmdz_mod, ONLY: annee_ref, day_end, itau_phy, pdtphys 39 use config_ocean_skin_m, only: activate_ocean_skin 39 40 40 41 IMPLICIT none … … 337 338 "tendency on zonal wind due to acama gravity waves", du_gwd_front) 338 339 339 CALL put_field("ds_ns", "delta salinity near surface", ds_ns) 340 CALL put_field("dT_ns", "delta temperature near surface", dT_ns) 340 if (activate_ocean_skin >= 1) then 341 CALL put_field("ds_ns", "delta salinity near surface", ds_ns) 342 CALL put_field("dT_ns", "delta temperature near surface", dT_ns) 343 end if 341 344 342 345 CALL close_restartphy -
LMDZ6/branches/Ocean_skin/libf/phylmd/phys_output_var_mod.F90
r3429 r3458 167 167 SUBROUTINE phys_output_var_init 168 168 use dimphy 169 use config_ocean_skin_m, only: activate_ocean_skin 169 170 170 171 IMPLICIT NONE … … 220 221 IF (ok_gwd_rando) allocate(zustr_gwd_rando(klon), zvstr_gwd_rando(klon)) 221 222 222 allocate(t_int(klon), s_int(klon), dter(klon), dser(klon), tkt(klon), &223 tks(klon), rf(klon), taur(klon))223 if (activate_ocean_skin >= 1) allocate(t_int(klon), s_int(klon), & 224 dter(klon), dser(klon), tkt(klon), tks(klon), rf(klon), taur(klon)) 224 225 225 226 END SUBROUTINE phys_output_var_init -
LMDZ6/branches/Ocean_skin/libf/phylmd/phys_output_write_mod.F90
r3429 r3458 376 376 #endif 377 377 USE tracinca_mod, ONLY: config_inca 378 use config_ocean_skin_m, only: activate_ocean_skin 378 379 379 380 IMPLICIT NONE … … 2111 2112 ENDIF !(iflag_phytrac==1) 2112 2113 2113 CALL histwrite_phy(o_t_int, t_int) 2114 CALL histwrite_phy(o_s_int, s_int) 2115 CALL histwrite_phy(o_ds_ns, ds_ns) 2116 CALL histwrite_phy(o_dt_ns, dt_ns) 2117 CALL histwrite_phy(o_dter, dter) 2118 CALL histwrite_phy(o_dser, dser) 2119 CALL histwrite_phy(o_tkt, tkt) 2120 CALL histwrite_phy(o_tks, tks) 2121 CALL histwrite_phy(o_rf, rf) 2122 CALL histwrite_phy(o_taur, taur) 2114 if (activate_ocean_skin >= 1) then 2115 CALL histwrite_phy(o_t_int, t_int) 2116 CALL histwrite_phy(o_s_int, s_int) 2117 CALL histwrite_phy(o_ds_ns, ds_ns) 2118 CALL histwrite_phy(o_dt_ns, dt_ns) 2119 CALL histwrite_phy(o_dter, dter) 2120 CALL histwrite_phy(o_dser, dser) 2121 CALL histwrite_phy(o_tkt, tkt) 2122 CALL histwrite_phy(o_tks, tks) 2123 CALL histwrite_phy(o_rf, rf) 2124 CALL histwrite_phy(o_taur, taur) 2125 end if 2123 2126 2124 2127 IF (.NOT.vars_defined) THEN -
LMDZ6/branches/Ocean_skin/libf/phylmd/phys_state_var_mod.F90
r3429 r3458 439 439 USE infotrac_phy, ONLY : nbtr 440 440 USE indice_sol_mod 441 use config_ocean_skin_m, only: activate_ocean_skin 441 442 IMPLICIT NONE 442 443 … … 621 622 if (.not. ok_hines .and. ok_gwd_rando) allocate(du_gwd_front(klon, klev)) 622 623 623 ALLOCATE(ds_ns(klon), dt_ns(klon))624 if (activate_ocean_skin >= 1) ALLOCATE(ds_ns(klon), dt_ns(klon)) 624 625 625 626 END SUBROUTINE phys_state_var_init 626 627 627 628 !====================================================================== 628 SUBROUTINE phys_state_var_end 629 SUBROUTINE phys_state_var_end 630 ! Useful only for lmdz1d. 629 631 !USE dimphy 630 632 USE indice_sol_mod 633 use config_ocean_skin_m, only: activate_ocean_skin 631 634 IMPLICIT NONE 632 635 include "clesphys.h" … … 754 757 deallocate(ale_bl_trig) 755 758 !!! fin nrlmd le 10/04/2012 759 if (activate_ocean_skin >= 1) deALLOCATE(ds_ns, dt_ns) 756 760 757 761 END SUBROUTINE phys_state_var_end -
LMDZ6/branches/Ocean_skin/libf/phylmd/surf_ocean_mod.F90
r3432 r3458 33 33 USE limit_read_mod 34 34 use sens_heat_rain_m, only: sens_heat_rain 35 use config_ocean_skin_m, only: activate_ocean_skin 35 36 ! 36 37 ! This subroutine will make a call to ocean_XXX_noice according to the ocean mode (force, … … 103 104 REAL, intent(out):: t_int(:) ! (knon) interface temperature, in K 104 105 real, intent(out):: s_int(:) ! (knon) interface salinity, in ppt 105 106 106 107 REAL, intent(out):: dter(:) ! (knon) 107 108 ! Temperature variation in the diffusive microlayer, that is … … 311 312 ENDIF 312 313 313 rhoa = PS(:KNON) / (Rd * temp_air(:knon) * (1. + retv * spechum(:knon))) 314 xlv = rlvtt 315 precip_tot = precip_rain(:knon) + precip_snow(:knon) 316 rf = sens_heat_rain(precip_tot, temp_air(:knon), spechum(:knon), rhoa, & 317 xlv, tsurf_new(:knon), ps(:knon)) 318 s1 = 35. 319 call bulk_flux(tkt, tks, taur, dter, dser, t_int, s_int, ds_ns, dt_ns, & 320 u = windsp(:knon), t_ocean_1 = tsurf_new(:knon), s1 = s1, & 321 rain = precip_tot, hf = - fluxsens(:knon), hlb = - fluxlat(:knon), & 322 rnl = - lwnet(:knon), & 323 tau = sqrt(flux_u1(:knon)**2 + flux_v1(:knon)**2), rhoa = rhoa, & 324 xlv = xlv, rf = rf, dtime = dtime, rns = swnet(:knon)) 314 if (activate_ocean_skin >= 1) then 315 rhoa = PS(:KNON) / (Rd * temp_air(:knon) * (1. + retv * spechum(:knon))) 316 xlv = rlvtt 317 precip_tot = precip_rain(:knon) + precip_snow(:knon) 318 rf = sens_heat_rain(precip_tot, temp_air(:knon), spechum(:knon), rhoa, & 319 xlv, tsurf_new(:knon), ps(:knon)) 320 s1 = 35. 321 call bulk_flux(tkt, tks, taur, dter, dser, t_int, s_int, ds_ns, dt_ns, & 322 u = windsp(:knon), t_ocean_1 = tsurf_new(:knon), s1 = s1, & 323 rain = precip_tot, hf = - fluxsens(:knon), hlb = - fluxlat(:knon), & 324 rnl = - lwnet(:knon), & 325 tau = sqrt(flux_u1(:knon)**2 + flux_v1(:knon)**2), rhoa = rhoa, & 326 xlv = xlv, rf = rf, dtime = dtime, rns = swnet(:knon)) 327 end if 328 329 if (activate_ocean_skin == 2) tsurf_new(:knon) = t_int 325 330 326 331 END SUBROUTINE surf_ocean 327 !**************************************************************************** **332 !**************************************************************************** 328 333 ! 329 334 END MODULE surf_ocean_mod
Note: See TracChangeset
for help on using the changeset viewer.