C $Header: /u/gcmpack/MITgcm/pkg/atm_ocn_coupler/cpl_recv_atm_fields.F,v 1.6 2016/01/06 00:32:11 jmc Exp $
C $Name: $
#include "CPP_OPTIONS.h"
CBOP
C !ROUTINE: CPL_RECV_ATM_FIELDS
C !INTERFACE:
SUBROUTINE CPL_RECV_ATM_FIELDS( msgUnit, iter )
C !DESCRIPTION: \bv
C *==========================================================*
C | SUBROUTINE CPL_RECV_ATM_FIELDS
C | o Routine for receiving fluxes from atmos. 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"
C !INPUT/OUTPUT PARAMETERS:
C msgUnit :: log-file I/O unit
C iter :: current iteration number
INTEGER msgUnit, iter
C !LOCAL VARIABLES:
CEOP
C- Receive Sea Level atmos. pressure from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmSLPrName,
I Nx_atm, Ny_atm,
O atmSLPr_atm )
C- Receive (net) Heat Flux from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmHeatFluxName,
I Nx_atm, Ny_atm,
O HeatFlux_atm )
C- Receive net shortwave radiation from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmQshortWaveName,
I Nx_atm, Ny_atm,
O qShortwave_atm )
C- Receive Zonal momentum flux from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmTauXName,
I Nx_atm, Ny_atm,
O TauX_atm )
C- Receive Meridional momentum flux from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmTauYName,
I Nx_atm, Ny_atm,
O TauY_atm )
C- Receive fresh water flux (=Evap-Precip) from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmEvMPrName,
I Nx_atm, Ny_atm,
O EvMPr_atm )
IF ( cpl_exchange_RunOff.GE.2 ) THEN
C- Receive fresh water flux (=RunOff) from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmRunOffName,
I Nx_atm, Ny_atm,
O RunOff_atm )
C- Receive Energy carried by RunOff from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmROEnFxName,
I Nx_atm, Ny_atm,
O ROEnFx_atm )
ENDIF
IF ( cpl_exchange1W_sIce.GE.2 ) THEN
C- Receive salt flux (<- sea-ice) from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmSaltFxName,
I Nx_atm, Ny_atm,
O SaltFlx_atm )
C- Receive sea-ice mass from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmSIceMassName,
I Nx_atm, Ny_atm,
O sIceMass_atm )
ENDIF
IF ( cpl_exchange_SaltPl.GE.2 ) THEN
C- Receive Salt-Plume flux from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmSaltPlmFlxName,
I Nx_atm, Ny_atm,
O saltPlmFlx_atm )
ENDIF
IF ( cpl_exchange_DIC.GE.2 ) THEN
C- Receive atmos CO2 from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmAirCO2Name,
I Nx_atm, Ny_atm,
O aCO2_atm )
C- Receive surface wind speed from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmWindSpdName,
I Nx_atm, Ny_atm,
O wSpeed_atm )
ENDIF
IF ( ( cpl_exchange1W_sIce.GE.2
& .AND.cpl_exchange_DIC.GE.2 )
& .OR. cpl_exchange2W_sIce.GE.2 ) THEN
C- Receive seaice fraction from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmSIceFracName,
I Nx_atm, Ny_atm,
O sIceFrac_atm )
ENDIF
IF ( cpl_exchange2W_sIce.GE.2 ) THEN
C- Receive seaice thickness from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmSIceThickName,
I Nx_atm, Ny_atm,
O sIceThick_atm )
C- Receive snow thickness from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmSIceSnowName,
I Nx_atm, Ny_atm,
O sIceSnowH_atm )
C- Receive seaice enthalpy (layer 1) from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmSIceQ1Name,
I Nx_atm, Ny_atm,
O sIceQ1_atm )
C- Receive seaice enthalpy (layer 2) from atmos. component
CALL COUPRECV_R8TILES( atmCompName, atmSIceQ2Name,
I Nx_atm, Ny_atm,
O sIceQ2_atm )
ENDIF
RETURN
END