Ignore:
Timestamp:
Feb 4, 2020, 10:36:32 PM (4 years ago)
Author:
lguez
Message:

If the ocean skin parameterization is working actively
(activate_ocean_skin == 2) and we are coupled to the ocean then send
ocean-air interface salinity to the ocean. New dummy argument s_int
of procedures ocean_cpl_noice and cpl_send_ocean_fields. We can
only send interface salinity from the previous time-step since
communication with the ocean is before the call to bulk_flux. So make
s_int a state variable: move s_int from phys_output_var_mod to
phys_state_var_mod. Still, we only read s_int from startphy,
define it before the call to surf_ocean and write it to restartphy
if activate_ocean_skin == 2 and type_ocean == 'couple'. In
procedure pbl_surface, for clarity, move the definition of output
variables t_int, dter, dser, tkt, tks, rf, taur to missing_val to
after the call to surf_ocean, with the definition of s_int,
ds_ns, dt_ns to missing_val. This does not change anything for
t_int, dter, dser, tkt, tks, rf, taur. In pbl_surface_newfrac, we
choose to set s_int to 35 for an appearing ocean point, this is
questionable. In surf_ocean, change the intent of s_int from out
to inout.

File:
1 edited

Legend:

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

    r3626 r3628  
    1919       wake_s, wake_dens, zgam, zmax0, zmea, zpic, zsig, &
    2020       zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, u10m, v10m, treedrg, &
    21        ale_wake, ale_bl_stat, ds_ns, dt_ns
     21       ale_wake, ale_bl_stat, s_int, ds_ns, dt_ns
    2222!FC
    2323  USE geometry_mod, ONLY : longitude_deg, latitude_deg
     
    541541
    542542  if (activate_ocean_skin >= 1) then
    543      found = phyetat0_get(1, ds_ns, "ds_ns", "delta salinity near surface", 0.)
     543     if (activate_ocean_skin == 2 .and. type_ocean == 'couple') found &
     544          = phyetat0_get(1, s_int, "S_int", "salinity at air-ocean interface", &
     545          35.)
     546     found = phyetat0_get(1, ds_ns, "dS_ns", "delta salinity near surface", 0.)
    544547     found = phyetat0_get(1, dt_ns, "dT_ns", "delta temperature near surface", &
    545548          0.)
    546549
    547550     where (pctsrf(:, is_oce) == 0.)
     551        s_int = missing_val
    548552        ds_ns = missing_val
    549553        dt_ns = missing_val
Note: See TracChangeset for help on using the changeset viewer.