Ignore:
Timestamp:
Feb 3, 2020, 2:27:46 PM (4 years ago)
Author:
lguez
Message:

If the ocean skin parameterization is working (passively or actively,
activate_ocean_skin >= 1) and we are coupled to the ocean then
receive bulk salinity of the surface layer of the ocean from the ocean
and feed it to procedure bulk_flux instead of the constant
value 35. If the ocean skin parameterization is working actively
(activate_ocean_skin == 2) and we are coupled to the ocean then send
ocean-air interface temperature to the ocean. We can only send
interface temperature from the previous time-step since communication
with the ocean is before the call to bulk_flux. In module cpl_mod,
define cpl_t_int with rank 1: no dimension for cpl_index because
t_int is only defined over ocean. New dummy argument sss of
procedures cpl_receive_ocean_fields and ocean_cpl_noice. New dummy
argument t_int of cpl_send_ocean_fields. In procedure
surf_ocean, rename local variable s1 to sss and give it the size
klon, which is required by the coupling machinery.

File:
1 edited

Legend:

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

    r3605 r3627  
    5959  INTEGER, PARAMETER :: ids_qraiic = 28
    6060  INTEGER, PARAMETER :: ids_qsnoic = 29
    61   INTEGER, PARAMETER :: maxsend    = 29  ! Maximum number of fields to send
     61  INTEGER, PARAMETER :: ids_t_int = 30
     62 
     63  INTEGER, PARAMETER :: maxsend    = 30  ! Maximum number of fields to send
    6264 
    6365  ! Id for fields received from ocean
     66
    6467  INTEGER, PARAMETER :: idr_sisutw = 1
    6568  INTEGER, PARAMETER :: idr_icecov = 2
     
    7073  INTEGER, PARAMETER :: idr_curenz = 7
    7174  INTEGER, PARAMETER :: idr_oceco2 = 8
    72   INTEGER, PARAMETER :: maxrecv    = 8  ! Maximum number of fields to receive
     75
     76  INTEGER, PARAMETER :: idr_sss = 9
     77  ! bulk salinity of the surface layer of the ocean, in ppt
     78
     79  INTEGER, PARAMETER :: maxrecv    = 9  ! Maximum number of fields to receive
    7380 
    7481
     
    183190    infosend(ids_calvin)%action = .TRUE. ; infosend(ids_calvin)%name = 'COCALVIN'
    184191   
     192    if (activate_ocean_skin == 2) then
     193       infosend(ids_t_int)%action = .TRUE.
     194       infosend(ids_t_int)%name = 'T_int'
     195    end if
     196           
    185197    IF (version_ocean=='nemo') THEN
    186198        infosend(ids_shftot)%action = .TRUE. ; infosend(ids_shftot)%name = 'COQSRMIX'
     
    219231   inforecv(idr_icealw)%action = .TRUE. ; inforecv(idr_icealw)%name = 'SIICEALW'
    220232   inforecv(idr_icetem)%action = .TRUE. ; inforecv(idr_icetem)%name = 'SIICTEMW'
     233
     234   if (activate_ocean_skin >= 1) then
     235      inforecv(idr_sss)%action = .TRUE.
     236      inforecv(idr_sss)%name = 'salinity'
     237   end if
    221238   
    222239   IF (cpl_current ) THEN
Note: See TracChangeset for help on using the changeset viewer.