C $Header: /u/gcmpack/MITgcm/pkg/atm_ocn_coupler/cpl_send_atm_fields.F,v 1.7 2016/01/06 00:32:11 jmc Exp $
C $Name: $
#include "CPP_OPTIONS.h"
CBOP
C !ROUTINE: CPL_SEND_ATM_FIELDS
C !INTERFACE:
SUBROUTINE CPL_SEND_ATM_FIELDS( msgUnit, iter )
C !DESCRIPTION: \bv
C *==========================================================*
C | SUBROUTINE CPL_SEND_ATM_FIELDS
C | o Routine for sending ocean surface fields to atmos.
C | component.
C *==========================================================*
C | This version talks to the MITgcm general circulation
C | model.
C *==========================================================*
C \ev
C !USES:
IMPLICIT NONE
C == Global variables ==
#include "CPL_PARAMS.h"
#include "ATMSIZE.h"
#include "ATMVARS.h"
#include "ATMIDS.h"
#include "OCNSIZE.h"
#include "OCNVARS.h"
C !INPUT/OUTPUT PARAMETERS:
C msgUnit :: log-file I/O unit
C iter :: current iteration number
INTEGER msgUnit, iter
C !LOCAL VARIABLES:
CEOP
C-- Map ocean mixed-layer depth onto atmos. grid
CALL OCN_TO_ATM_MAPXYR8(
I Nx_ocn, Ny_ocn, OcMxlD_ocn, Nx_atm, Ny_atm,
O OcMxlD_atm )
C Send ocean mixed-layer depth to atmos. component
CALL COUPSEND_R8TILES( atmCompName, atmMxlDName,
I Nx_atm, Ny_atm, OcMxlD_atm )
C-- Map ocean surface temperature onto atmos. grid
CALL OCN_TO_ATM_MAPXYR8(
I Nx_ocn, Ny_ocn, SST_ocn, Nx_atm, Ny_atm,
O SST_atm )
C Send SST to atmos. component
CALL COUPSEND_R8TILES( atmCompName, atmSSTName,
I Nx_atm, Ny_atm, SST_atm )
C-- Map ocean surface salinity onto atmos. grid
CALL OCN_TO_ATM_MAPXYR8(
I Nx_ocn, Ny_ocn, SSS_ocn, Nx_atm, Ny_atm,
O SSS_atm )
C Send SSS to atmos. component
CALL COUPSEND_R8TILES( atmCompName, atmSSSName,
I Nx_atm, Ny_atm, SSS_atm )
C-- Map ocean surface velocity square onto atmos. grid
CALL OCN_TO_ATM_MAPXYR8(
I Nx_ocn, Ny_ocn, vSq_ocn, Nx_atm, Ny_atm,
O vSq_atm )
C Send ocean surface velocity square to atmos. component
CALL COUPSEND_R8TILES( atmCompName, atmSSVsqName,
I Nx_atm, Ny_atm, vSq_atm )
IF ( cpl_exchange_DIC.GE.2 ) THEN
C-- Map ocn->atm flux of CO2 onto atmos. grid
CALL OCN_TO_ATM_MAPXYR8(
I Nx_ocn, Ny_ocn, fluxCO2_ocn, Nx_atm, Ny_atm,
O fluxCO2_atm )
C Send ocn->atm flux of CO2 to atmos. component
CALL COUPSEND_R8TILES( atmCompName, atmCO2FluxName,
I Nx_atm, Ny_atm, fluxCO2_atm )
ENDIF
IF ( cpl_exchange2W_sIce.EQ.3 ) THEN
C-- Map pkg/thsice fields onto atmos. grid:
C Map seaice fraction from ocean compon.
CALL OCN_TO_ATM_MAPXYR8(
I Nx_ocn, Ny_ocn, SIceFrac_ocn, Nx_atm, Ny_atm,
O SIceFrac_atm )
C Map seaice thickness
CALL OCN_TO_ATM_MAPXYR8(
I Nx_ocn, Ny_ocn, sIceThick_ocn, Nx_atm, Ny_atm,
O sIceThick_atm )
C Map snow thickness
CALL OCN_TO_ATM_MAPXYR8(
I Nx_ocn, Ny_ocn, sIceSnowH_ocn, Nx_atm, Ny_atm,
O sIceSnowH_atm )
C Map seaice enthalpy (layer 1)
CALL OCN_TO_ATM_MAPXYR8(
I Nx_ocn, Ny_ocn, sIceQ1_ocn, Nx_atm, Ny_atm,
O sIceQ1_atm )
C Map seaice enthalpy (layer 2)
CALL OCN_TO_ATM_MAPXYR8(
I Nx_ocn, Ny_ocn, sIceQ2_ocn, Nx_atm, Ny_atm,
O sIceQ2_atm )
ENDIF
IF ( cpl_exchange2W_sIce.GE.2 ) THEN
C-- Send pkg/thsice fields to atmos. component:
C Send sea-ice fraction
CALL COUPSEND_R8TILES( atmCompName, atmSIceFracName,
I Nx_atm, Ny_atm, SIceFrac_atm )
C Send seaice thickness
CALL COUPSEND_R8TILES( atmCompName, atmSIceThickName,
I Nx_atm, Ny_atm, sIceThick_atm )
C Send snow thickness
CALL COUPSEND_R8TILES( atmCompName, atmSIceSnowName,
I Nx_atm, Ny_atm, sIceSnowH_atm )
C Send seaice enthalpy (layer 1)
CALL COUPSEND_R8TILES( atmCompName, atmSIceQ1Name,
I Nx_atm, Ny_atm, sIceQ1_atm )
C Send seaice enthalpy (layer 2)
CALL COUPSEND_R8TILES( atmCompName, atmSIceQ2Name,
I Nx_atm, Ny_atm, sIceQ2_atm )
ENDIF
RETURN
END