File indexing completed on 2018-03-02 18:37:37 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
7f58e89433 Jean*0001 #include "CPP_OPTIONS.h"
0002
9944d6f836 Jean*0003
0004
0005
4abf9d9a22 Jean*0006 SUBROUTINE CPL_SEND_OCN_FIELDS( msgUnit, iter )
9944d6f836 Jean*0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
7f58e89433 Jean*0019 IMPLICIT NONE
0020
0021
00df836f46 Jean*0022 #include "CPL_PARAMS.h"
7f58e89433 Jean*0023 #include "ATMSIZE.h"
0024 #include "ATMVARS.h"
0025 #include "OCNSIZE.h"
0026 #include "OCNVARS.h"
0027 #include "OCNIDS.h"
0028
9944d6f836 Jean*0029
4abf9d9a22 Jean*0030
0031
0032 INTEGER msgUnit, iter
7f58e89433 Jean*0033
9944d6f836 Jean*0034
4abf9d9a22 Jean*0035 _RL tmpFld(Nx_ocn,Ny_ocn)
9944d6f836 Jean*0036
7f58e89433 Jean*0037
0038
0039 CALL ATM_TO_OCN_MAPXYR8(
0040 I Nx_atm, Ny_atm, atmSLPr_atm, Nx_ocn, Ny_ocn,
0041 O atmSLPr_ocn )
0042
9944d6f836 Jean*0043 CALL COUPSEND_R8TILES( ocnCompName, ocnSLPrName,
7f58e89433 Jean*0044 I Nx_ocn, Ny_ocn, atmSLPr_ocn )
0045
0046
0047 CALL ATM_TO_OCN_MAPXYR8(
0048 I Nx_atm, Ny_atm, HeatFlux_atm, Nx_ocn, Ny_ocn,
0049 O HeatFlux_ocn )
4abf9d9a22 Jean*0050 IF ( cpl_exchange_RunOff.GE.2 ) THEN
7f58e89433 Jean*0051
0052
4abf9d9a22 Jean*0053 CALL ATM_TO_OCN_MAPRUNOFF(
0054 I ROEnFx_atm,
0055 O tmpFld,
0056 U HeatFlux_ocn )
0057 ENDIF
7f58e89433 Jean*0058
9944d6f836 Jean*0059 CALL COUPSEND_R8TILES( ocnCompName, ocnHeatFluxName,
7f58e89433 Jean*0060 I Nx_ocn, Ny_ocn, HeatFlux_ocn )
0061
0062
0063 CALL ATM_TO_OCN_MAPXYR8(
0064 I Nx_atm, Ny_atm, qShortWave_atm, Nx_ocn, Ny_ocn,
0065 O qShortWave_ocn )
0066
9944d6f836 Jean*0067 CALL COUPSEND_R8TILES( ocnCompName, ocnQshortWaveName,
7f58e89433 Jean*0068 I Nx_ocn, Ny_ocn, qShortWave_ocn )
0069
0070
0071 CALL ATM_TO_OCN_MAPXYR8(
0072 I Nx_atm, Ny_atm, TauX_atm, Nx_ocn, Ny_ocn,
0073 O TauX_ocn )
0074
9944d6f836 Jean*0075 CALL COUPSEND_R8TILES( ocnCompName, ocnTauXName,
7f58e89433 Jean*0076 I Nx_ocn, Ny_ocn, TauX_ocn )
0077
0078
0079 CALL ATM_TO_OCN_MAPXYR8(
0080 I Nx_atm, Ny_atm, TauY_atm, Nx_ocn, Ny_ocn,
0081 O TauY_ocn )
0082
9944d6f836 Jean*0083 CALL COUPSEND_R8TILES( ocnCompName, ocnTauYName,
7f58e89433 Jean*0084 I Nx_ocn, Ny_ocn, TauY_ocn )
0085
0086
0087 CALL ATM_TO_OCN_MAPXYR8(
0088 I Nx_atm, Ny_atm, EvMPr_atm, Nx_ocn, Ny_ocn,
0089 O FWFlux_ocn )
4abf9d9a22 Jean*0090 IF ( cpl_exchange_RunOff.GE.2 ) THEN
7f58e89433 Jean*0091
0092
4abf9d9a22 Jean*0093 CALL ATM_TO_OCN_MAPRUNOFF(
0094 I RunOff_atm,
0095 O RunOff_ocn,
0096 U FWFlux_ocn )
0097 ENDIF
7f58e89433 Jean*0098
9944d6f836 Jean*0099 CALL COUPSEND_R8TILES( ocnCompName, ocnFWFluxName,
7f58e89433 Jean*0100 I Nx_ocn, Ny_ocn, FWFlux_ocn )
0101
4abf9d9a22 Jean*0102 IF ( MOD(cpl_exchange1W_sIce,2).EQ.1 ) THEN
7f58e89433 Jean*0103
4abf9d9a22 Jean*0104 CALL ATM_TO_OCN_MAPXYR8(
0105 I Nx_atm, Ny_atm, SaltFlx_atm, Nx_ocn, Ny_ocn,
7f58e89433 Jean*0106 O SaltFlx_ocn )
0107
4abf9d9a22 Jean*0108 CALL COUPSEND_R8TILES( ocnCompName, ocnSaltFxName,
0109 I Nx_ocn, Ny_ocn, SaltFlx_ocn )
7f58e89433 Jean*0110
0111
4abf9d9a22 Jean*0112 CALL ATM_TO_OCN_MAPXYR8(
0113 I Nx_atm, Ny_atm, sIceMass_atm, Nx_ocn, Ny_ocn,
0114 O sIceMass_ocn )
7f58e89433 Jean*0115
4abf9d9a22 Jean*0116 CALL COUPSEND_R8TILES( ocnCompName, ocnSIceMassName,
0117 I Nx_ocn, Ny_ocn, sIceMass_ocn )
0118 ENDIF
7f58e89433 Jean*0119
4abf9d9a22 Jean*0120 IF ( MOD(cpl_exchange_SaltPl,2).EQ.1 ) THEN
0121
0122 CALL ATM_TO_OCN_MAPXYR8(
0123 I Nx_atm, Ny_atm, saltPlmFlx_atm, Nx_ocn, Ny_ocn,
0124 O saltPlmFlx_ocn )
0125
0126 CALL COUPSEND_R8TILES( ocnCompName, ocnSaltPlmFlxName,
0127 I Nx_ocn, Ny_ocn, saltPlmFlx_ocn )
0128 ENDIF
4ee86acaaf Jeff*0129
4abf9d9a22 Jean*0130 IF ( MOD(cpl_exchange_RunOff,2).EQ.1 ) THEN
0131
0132 CALL COUPSEND_R8TILES( ocnCompName, ocnRunOffName,
0133 I Nx_ocn, Ny_ocn, RunOff_ocn )
0134 ENDIF
0135
0136 IF ( MOD(cpl_exchange_DIC,2).EQ.1 ) THEN
9944d6f836 Jean*0137
0138 CALL ATM_TO_OCN_MAPXYR8(
0139 I Nx_atm, Ny_atm, aCO2_atm, Nx_ocn, Ny_ocn,
0140 O aCO2_ocn )
0141
0142 CALL COUPSEND_R8TILES( ocnCompName, ocnAirCO2Name,
0143 I Nx_ocn, Ny_ocn, aCO2_ocn )
0144
4abf9d9a22 Jean*0145
9944d6f836 Jean*0146 CALL ATM_TO_OCN_MAPXYR8(
0147 I Nx_atm, Ny_atm, wSpeed_atm, Nx_ocn, Ny_ocn,
0148 O wSpeed_ocn )
0149
00df836f46 Jean*0150 CALL COUPSEND_R8TILES( ocnCompName, ocnWindSpdName,
9944d6f836 Jean*0151 I Nx_ocn, Ny_ocn, wSpeed_ocn )
4abf9d9a22 Jean*0152 ENDIF
9944d6f836 Jean*0153
4abf9d9a22 Jean*0154 IF ( ( MOD(cpl_exchange1W_sIce,2).EQ.1
0155 & .AND.MOD(cpl_exchange_DIC,2).EQ.1 )
0156 & .OR. MOD(cpl_exchange2W_sIce,2).EQ.1 ) THEN
0157
0158 IF ( ( cpl_exchange1W_sIce.GE.2
0159 & .AND.cpl_exchange_DIC.GE.2 )
0160 & .OR. cpl_exchange2W_sIce.GE.2 ) THEN
9944d6f836 Jean*0161 CALL ATM_TO_OCN_MAPXYR8(
0162 I Nx_atm, Ny_atm, SIceFrac_atm, Nx_ocn, Ny_ocn,
0163 O SIceFrac_ocn )
4abf9d9a22 Jean*0164 ENDIF
9944d6f836 Jean*0165
00df836f46 Jean*0166 CALL COUPSEND_R8TILES( ocnCompName, ocnSIceFracName,
9944d6f836 Jean*0167 I Nx_ocn, Ny_ocn, SIceFrac_ocn )
4abf9d9a22 Jean*0168 ENDIF
9944d6f836 Jean*0169
4abf9d9a22 Jean*0170 IF ( cpl_exchange2W_sIce.EQ.3 ) THEN
0171
0172
0173 CALL ATM_TO_OCN_MAPXYR8(
0174 I Nx_atm, Ny_atm, sIceThick_atm, Nx_ocn, Ny_ocn,
0175 O sIceThick_ocn )
0176
0177 CALL ATM_TO_OCN_MAPXYR8(
0178 I Nx_atm, Ny_atm, sIceSnowH_atm, Nx_ocn, Ny_ocn,
0179 O sIceSnowH_ocn )
0180
0181 CALL ATM_TO_OCN_MAPXYR8(
0182 I Nx_atm, Ny_atm, sIceQ1_atm, Nx_ocn, Ny_ocn,
0183 O sIceQ1_ocn )
0184
0185 CALL ATM_TO_OCN_MAPXYR8(
0186 I Nx_atm, Ny_atm, sIceQ2_atm, Nx_ocn, Ny_ocn,
0187 O sIceQ2_ocn )
0188 ENDIF
0189 IF ( MOD(cpl_exchange2W_sIce,2).EQ.1 ) THEN
0190
0191
0192 CALL COUPSEND_R8TILES( ocnCompName, ocnSIceThickName,
0193 I Nx_ocn, Ny_ocn, sIceThick_ocn )
0194
0195 CALL COUPSEND_R8TILES( ocnCompName, ocnSIceSnowName,
0196 I Nx_ocn, Ny_ocn, sIceSnowH_ocn )
0197
0198 CALL COUPSEND_R8TILES( ocnCompName, ocnSIceQ1Name,
0199 I Nx_ocn, Ny_ocn, sIceQ1_ocn )
0200
0201 CALL COUPSEND_R8TILES( ocnCompName, ocnSIceQ2Name,
0202 I Nx_ocn, Ny_ocn, sIceQ2_ocn )
9944d6f836 Jean*0203 ENDIF
4ee86acaaf Jeff*0204
7f58e89433 Jean*0205 RETURN
0206 END