C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/atm_compon_interf/atm_export_fields.F,v 1.2 2016/01/06 00:42:51 jmc Exp $ C $Name: checkpoint66g $ #include "ATM_CPL_OPTIONS.h" CBOP C !ROUTINE: ATM_EXPORT_FIELDS C !INTERFACE: SUBROUTINE ATM_EXPORT_FIELDS( myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE ATM_EXPORT_FIELDS C | o Routine for exporting atmos. surface coupling fields C | to coupling layer. C *==========================================================* C | This version talks to the MIT Coupler. It uses the MIT C | Coupler "checkpoint1" library calls. C *==========================================================* C \ev C !USES: IMPLICIT NONE C == Global variables == #include "SIZE.h" #include "EEPARAMS.h" #include "CPL_PARAMS.h" #include "ATMCPL.h" #include "ATMIDS.h" C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == C myIter :: Current timestep number. C myThid :: Thread number for this instance of the routine. INTEGER myIter INTEGER myThid CEOP #ifdef COMPONENT_MODULE C !LOCAL VARIABLES: C == Local variables == C msgBuf :: Informational/error message buffer c CHARACTER*(MAX_LEN_MBUF) msgBuf C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C- Send Atmospheric fields to coupling layer C Note: 1) Information is sent on the atmos. model grid. C 2) MIT Coupler checkpoint1 does not allow asynchronous posting of C data, so ordering has to be consistent with coupling layer ordering C- export Sea-Level pressure: CALL ATM_EXPORT_FLD( atmSLPrName, U atmSLPr, atmSLPrTime, myThid ) C- export Net surface heat flux: CALL ATM_EXPORT_FLD( atmHeatFluxName, U heatFlux, HeatFluxTime, myThid ) C- export Net Short-Wave surface heat flux: CALL ATM_EXPORT_FLD( atmQshortWaveName, U qShortWave, qShortWaveTime, myThid ) C- export surface wind stress, Zonal & Meridional components: CALL ATM_EXPORT_FLD( atmTauXName, U tauX, tauXTime, myThid ) CALL ATM_EXPORT_FLD( atmTauYName, U tauY, tauYTime, myThid ) C- export Net fresh water flux (Evap - Precip): CALL ATM_EXPORT_FLD( atmEvMPrName, U EvMPrFlux, EvMPrTime, myThid ) #ifdef ALLOW_LAND IF ( atm_cplExch_RunOff ) THEN C- export Run Off fresh water flux: CALL ATM_EXPORT_FLD( atmRunOffName, U RunOffFlux, RunOffTime, myThid ) C- export Energy flux associated with Run Off: CALL ATM_EXPORT_FLD( atmROEnFxName, U RunOffEnFx, ROEnFxTime, myThid ) ENDIF #endif /* ALLOW_LAND */ #ifdef ALLOW_THSICE IF ( atm_cplExch1W_sIce ) THEN C- export Salt flux (related to sea-ice melting/freezing): CALL ATM_EXPORT_FLD( atmSaltFxName, U iceSaltFlx, saltFxTime, myThid ) C- export Sea-Ice Mass: CALL ATM_EXPORT_FLD( atmSIceMassName, U seaIceMass, sIceMassTime, myThid ) ENDIF IF ( atm_cplExch_SaltPl ) THEN C- export Salt-Plume flux: CALL ATM_EXPORT_FLD( atmSaltPlmFlxName, U saltPlmFlx_cpl, saltPlmFlxTime, myThid ) ENDIF #endif /* ALLOW_THSICE */ #ifdef ALLOW_AIM IF ( atm_cplExch_DIC ) THEN C- export atmospheric CO2: CALL ATM_EXPORT_FLD( atmAirCO2Name, U airCO2, airCO2Time, myThid ) C- export surface wind speed: CALL ATM_EXPORT_FLD( atmWindSpdName, U sWSpeed, sWSpeedTime, myThid ) ENDIF #endif /* ALLOW_AIM */ #ifdef ALLOW_THSICE IF ( ( atm_cplExch1W_sIce.AND.atm_cplExch_DIC ) & .OR. atm_cplExch2W_sIce ) THEN C- export seaice fraction: CALL ATM_EXPORT_FLD( atmSIceFracName, U sIceFrac_cpl, sIceFracTime, myThid ) ENDIF IF ( atm_cplExch2W_sIce ) THEN C- export seaice thickness: CALL ATM_EXPORT_FLD( atmSIceThickName, U sIceThick_cpl, sIceThickTime, myThid ) C- export snow thickness: CALL ATM_EXPORT_FLD( atmSIceSnowName, U sIceSnowH_cpl, sIceSnowHTime, myThid ) C- export seaice enthalpy (layer 1): CALL ATM_EXPORT_FLD( atmSIceQ1Name, U sIceQ1_cpl, sIceQ1Time, myThid ) C- export seaice enthalpy (layer 2): CALL ATM_EXPORT_FLD( atmSIceQ2Name, U sIceQ2_cpl, sIceQ2Time, myThid ) ENDIF #endif /* ALLOW_THSICE */ #endif /* COMPONENT_MODULE */ RETURN END