Coupled formulation (sbccpl.F90 module)


!-----------------------------------------------------------------------
&namsbc_cpl    !   coupled ocean/atmosphere model                       ("key_oasis3")
!-----------------------------------------------------------------------
!                    !     description       !  multiple  !    vector   !      vector          ! vector !
!                    !                       ! categories !  reference  !    orientation       ! grids  !
! send
   sn_snd_temp   =       'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   ''
   sn_snd_alb    =       'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   ''
   sn_snd_thick  =       'none'                 ,    'no'   ,     ''      ,         ''           ,   ''
   sn_snd_crt    =       'none'                 ,    'no'    , 'spherical' , 'eastward-northward' ,  'T'
   sn_snd_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
! receive
   sn_rcv_w10m   =       'none'                 ,    'no'    ,     ''      ,         ''          ,   ''
   sn_rcv_taumod =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''
   sn_rcv_tau    =       'oce only'             ,    'no'    , 'cartesian' , 'eastward-northward',  'U,V'
   sn_rcv_dqnsdt =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''
   sn_rcv_qsr    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   ''
   sn_rcv_qns    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   ''
   sn_rcv_emp    =       'conservative'         ,    'no'    ,     ''      ,         ''          ,   ''
   sn_rcv_rnf    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''
   sn_rcv_cal    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''
   sn_rcv_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''
!
   nn_cplmodel   =     1     !  Maximum number of models to/from which NEMO is potentialy sending/receiving data
   ln_usecplmask = .false.   !  use a coupling mask file to merge data received from several models
                             !   -> file cplmask.nc with the float variable called cplmask (jpi,jpj,nn_cplmodel)
/

In the coupled formulation of the surface boundary condition, the fluxes are provided by the OASIS coupler at a frequency which is defined in the OASIS coupler, while sea and ice surface temperature, ocean and ice albedo, and ocean currents are sent to the atmospheric component.

A generalised coupled interface has been developed. It is currently interfaced with OASIS-3-MCT (key_ oasis3). It has been successfully used to interface NEMO to most of the European atmospheric GCM (ARPEGE, ECHAM, ECMWF, HadAM, HadGAM, LMDz), as well as to WRF (Weather Research and Forecasting Model).

Note that in addition to the setting of ln_cpl to true, the key_ coupled have to be defined. The CPP key is mainly used in sea-ice to ensure that the atmospheric fluxes are actually recieved by the ice-ocean system (no calculation of ice sublimation in coupled mode). When PISCES biogeochemical model (key_ top and key_ pisces) is also used in the coupled system, the whole carbon cycle is computed by defining key_ cpl_carbon_cycle. In this case, CO$ _2$ fluxes will be exchanged between the atmosphere and the ice-ocean system (and need to be activated in namsbc_cpl ).

The namelist above allows control of various aspects of the coupling fields (particularly for vectors) and now allows for any coupling fields to have multiple sea ice categories (as required by LIM3 and CICE). When indicating a multi-category coupling field in namsbc_cpl the number of categories will be determined by the number used in the sea ice model. In some limited cases it may be possible to specify single category coupling fields even when the sea ice model is running with multiple categories - in this case the user should examine the code to be sure the assumptions made are satisfactory. In cases where this is definitely not possible the model should abort with an error message. The new code has been tested using ECHAM with LIM2, and HadGAM3 with CICE but although it will compile with key_ lim3 additional minor code changes may be required to run using LIM3.

Gurvan Madec and the NEMO Team
NEMO European Consortium2017-02-17