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/surf_seaice_mod.F90

    r3102 r3687  
    3737    INCLUDE "dimsoil.h"
    3838    INCLUDE "clesphys.h"
     39
     40    INCLUDE "YOMCST.h"
     41    ! for rd and retv
    3942
    4043! Input arguments
     
    8790    REAL, DIMENSION(klon) :: alb1_new,alb2_new
    8891!albedo SB <<<
    89 !
     92
     93    real rhoa(knon) ! density of moist air  (kg / m3)
     94
    9095! End definitions
    9196!****************************************************************************************
     
    98103    radsol(:) = 0.0
    99104    radsol(1:knon) = swnet(1:knon) + lwnet(1:knon)
     105
     106    rhoa = PS(:KNON) / (Rd * temp_air(:knon) * (1. + retv * spechum(:knon)))
    100107
    101108!****************************************************************************************
     
    116123            radsol, snow, qsurf, &
    117124            alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
    118             tsurf_new, dflux_s, dflux_l)
     125            tsurf_new, dflux_s, dflux_l, rhoa)
    119126       
    120127    ELSE IF (type_ocean == 'slab'.AND.version_ocean=='sicINT') THEN
     
    138145            radsol, snow, qsol, agesno, tsoil, &
    139146            qsurf, alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
    140             tsurf_new, dflux_s, dflux_l)
     147            tsurf_new, dflux_s, dflux_l, rhoa)
    141148
    142149    END IF
Note: See TracChangeset for help on using the changeset viewer.