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

    r3626 r3628  
    292292    USE print_control_mod,  ONLY : prt_level,lunout
    293293    USE ioipsl_getin_p_mod, ONLY : getin_p
    294     use phys_state_var_mod, only: ds_ns, dt_ns
    295     use phys_output_var_mod, only: t_int, s_int, dter, dser, tkt, tks, rf, taur
     294    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
    296296#ifdef CPP_XIOS
    297297    USE wxios, ONLY: missing_val
     
    969969    rh2m_x(:) = 0. ; qsat2m_x(:) = 0. ; rh2m_w(:) = 0. ; qsat2m_w(:) = 0.
    970970
    971     if (activate_ocean_skin >= 1) then
    972        t_int = missing_val
    973        s_int = missing_val
    974        dter = missing_val
    975        dser = missing_val
    976        tkt = missing_val
    977        tks = missing_val
    978        rf = missing_val
    979        taur = missing_val
    980     end if
    981 
    982971! 2b) Initialization of all local variables that will be compressed later
    983972!****************************************************************************************
     
    14401429
    14411430       if (nsrf == is_oce .and. activate_ocean_skin >= 1) then
     1431          if (activate_ocean_skin == 2 .and. type_ocean == "couple") &
     1432               ys_int(:knon) = s_int(ni(:knon))
    14421433          yds_ns(:knon) = ds_ns(ni(:knon))
    14431434          ydt_ns(:knon) = dt_ns(ni(:knon))
     
    25702561
    25712562       if (nsrf == is_oce .and. activate_ocean_skin >= 1) then
     2563          s_int = missing_val
     2564          ds_ns = missing_val
    25722565          dt_ns = missing_val
    2573           ds_ns = missing_val
     2566          t_int = missing_val
     2567          dter = missing_val
     2568          dser = missing_val
     2569          tkt = missing_val
     2570          tks = missing_val
     2571          rf = missing_val
     2572          taur = missing_val
     2573         
     2574          s_int(ni(:knon)) = ys_int(:knon)
    25742575          ds_ns(ni(:knon)) = yds_ns(:knon)
    25752576          dt_ns(ni(:knon)) = ydt_ns(:knon)
    2576 
    25772577          t_int(ni(:knon)) = yt_int(:knon)
    2578           s_int(ni(:knon)) = ys_int(:knon)
    25792578          dter(ni(:knon)) = ydter(:knon)
    25802579          dser(ni(:knon)) = ydser(:knon)
     
    31953194
    31963195    USE indice_sol_mod
    3197     use phys_state_var_mod, only: ds_ns, dt_ns
     3196    use phys_state_var_mod, only: s_int, ds_ns, dt_ns
    31983197    use config_ocean_skin_m, only: activate_ocean_skin
    31993198
     
    32843283                   ENDDO
    32853284                   if (activate_ocean_skin >= 1) then
     3285                      if (activate_ocean_skin == 2 &
     3286                           .and. type_ocean == "couple") s_int(i) = 35.
    32863287                      ds_ns(i) = 0.
    32873288                      dt_ns(i) = 0.
Note: See TracChangeset for help on using the changeset viewer.