Ignore:
Timestamp:
May 27, 2020, 4:52:16 PM (4 years ago)
Author:
lguez
Message:

Modify sensible heat due to rain sent to the ocean

Modify the sensible heat flux due to rain which is sent to the
ocean. Replace the computation of sens_prec_liq in procedure
calcul_fluxs by a call to sens_heat_rain. Set sens_prec_sol in
procedure calcul_fluxs to 0 because, for now, sens_heat_rain is
supposed to account for both rain and snow.

For the call to sens_heat_rain in procedure calcul_fluxs, we need
an additional dummy argument rhoa of calcul_fluxs. Add dummy
argument rhoa to ocean_cpl_noice, ocean_forced_noice,
ocean_forced_ice and ocean_cpl_ice because we need to pass it down
to calcul_fluxs.

Change the dimension of sens_prec_liq and sens_prec_sol in
procedures calcul_fluxs, ocean_cpl_noice, ocean_cpl_ice,
ocean_forced_noice, ocean_forced_ice, cpl_send_ocean_fields and
cpl_send_seaice_fields to knon.

In procedures ocean_forced_noice and ocean_cpl_noice, promote
sens_prec_liq from local variable to dummy argument because we need
it in surf_ocean. Remove useless initialization of sens_prec_liq
and sens_prec_sol in ocean_cpl_noice, ocean_cpl_ice,
ocean_forced_ice and ocean_forced_noice: they are intent out in
calcul_fluxs.

Remove variable rf of module phys_output_var_mod, we use
sens_prec_liq instead. Remove local variable yrf of procedure
pbl_surface. rf and yrf appeared in pbl_surface only to be output.
Remove variable o_rf of module phys_output_ctrlout_mod. Remove
dummy argument rf of procedure surf_ocean.

Do not call sens_heat_rain in surf_ocean since we now call it
from calcul_fluxs. Move the computation of rhoa in surf_ocean
before the calls to ocean_cpl_noice and ocean_forced_noice.

Add the computation of rhoa in surf_seaice, to pass it down to
ocean_cpl_ice and ocean_forced_ice.

If activate_ocean_skin == 1 then the results are changed because the
call to sens_heat_rain in calcul_fluxs now uses the SST from the
current time step of physics. On this point, the present revision
reverses revision [3463].

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Ocean_skin/libf/phylmd/pbl_surface_mod.F90

    r3628 r3687  
    293293    USE ioipsl_getin_p_mod, ONLY : getin_p
    294294    use phys_state_var_mod, only: s_int, ds_ns, dt_ns
    295     use phys_output_var_mod, only: t_int, dter, dser, tkt, tks, rf, taur
     295    use phys_output_var_mod, only: t_int, dter, dser, tkt, tks, taur
    296296#ifdef CPP_XIOS
    297297    USE wxios, ONLY: missing_val
     
    831831
    832832    real, DIMENSION(klon):: yt_int, ys_int, yds_ns, ydt_ns, ydter, ydser, &
    833          ytkt, ytks, yrf, ytaur
    834     ! compression of t_int, s_int, ds_ns, dt_ns, dter, dser, tkt, tks, rf,
     833         ytkt, ytks, ytaur
     834    ! compression of t_int, s_int, ds_ns, dt_ns, dter, dser, tkt, tks,
    835835    ! taur on ocean points
    836836
     
    19561956               y_flux_u1, y_flux_v1, yt_int(:knon), ys_int(:knon), &
    19571957               yds_ns(:knon), ydt_ns(:knon), ydter(:knon), ydser(:knon), &
    1958                ytkt(:knon), ytks(:knon), yrf(:knon), ytaur(:knon))
     1958               ytkt(:knon), ytks(:knon), ytaur(:knon))
    19591959      IF (prt_level >=10) THEN
    19601960          print *,'arg de surf_ocean: ycdragh ',ycdragh
     
    25692569          tkt = missing_val
    25702570          tks = missing_val
    2571           rf = missing_val
    25722571          taur = missing_val
    25732572         
     
    25802579          tkt(ni(:knon)) = ytkt(:knon)
    25812580          tks(ni(:knon)) = ytks(:knon)
    2582           rf(ni(:knon)) = yrf(:knon)
    25832581          taur(ni(:knon)) = ytaur(:knon)
    25842582       end if
Note: See TracChangeset for help on using the changeset viewer.