1 |
C $Header: /u/gcmpack/MITgcm/pkg/atm_compon_interf/ATMCPL.h,v 1.4 2007/10/01 14:51:38 jmc Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
C *==========================================================* |
5 |
C | ATMCPL.h |
6 |
C | o Variables shared between atmos. component to coupler |
7 |
C | layer. |
8 |
C *==========================================================* |
9 |
C | These variables are used in the atmos component. Grid |
10 |
C | variables have already been mapped/interpolated to the |
11 |
C | atmos grid. |
12 |
C | Which variables are exported will depend on the specific |
13 |
C | ocean coupling being utilised. The variables |
14 |
C | carried here will need to be customised accordingly. |
15 |
C *==========================================================* |
16 |
|
17 |
C-- fields sent from ATM to OCN: |
18 |
|
19 |
C- COMMON /ATM_ATM2CPL_R/ |
20 |
C atmSLPr :: Atmospheric Sea-Level pressure anomaly (Pa=N/m2) |
21 |
C HeatFlux :: Atmospheric net surface heat flux (W/m^2) (+=upward). |
22 |
C qShortWave :: net shortwave radiation heat flux (W/m^2) (+=upward). |
23 |
C tauX :: Atmospheric zonal momentum flux at lower boundary (N/m^2). |
24 |
C Same sign as wind. Positive zonal wind is westward. |
25 |
C tauY :: Atmospheric meridional momentum flux at lower boundary (N/m^2). |
26 |
C Same sign as wind. Positive meridional wind is northward. |
27 |
C EvMPrFlux :: Fresh water flux (=Evap-Precip) on atmos. grid |
28 |
C ( kg/m2/s, positive into atmosphere). |
29 |
C atmSLPrTime :: Time fraction over which term has been integrated. |
30 |
C HeatFluxTime :: Time fraction over which term has been integrated. |
31 |
C qShortWaveTime :: Time fraction over which term has been integrated. |
32 |
C tauXTime :: Time fraction over which term has been integrated. |
33 |
C tauYTime :: Time fraction over which term has been integrated. |
34 |
C EvMPrTime :: Time fraction over which term has been integrated. |
35 |
COMMON /ATM_ATM2CPL_R/ |
36 |
& atmSLPr, HeatFlux, qShortWave, |
37 |
& tauX, tauY, EvMPrFlux, |
38 |
& atmSLPrTime, HeatFluxTime, qShortWaveTime, |
39 |
& tauXtime, tauYtime, EvMPrTime |
40 |
_RL atmSLPr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
41 |
_RL HeatFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
42 |
_RL qShortWave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
43 |
_RL tauX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
44 |
_RL tauY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
45 |
_RL EvMPrFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
46 |
_RL atmSLPrTime (nSx,nSy) |
47 |
_RL HeatFluxTime (nSx,nSy) |
48 |
_RL qShortWaveTime(nSx,nSy) |
49 |
_RL tauXTime (nSx,nSy) |
50 |
_RL tauYTime (nSx,nSy) |
51 |
_RL EvMPrTime (nSx,nSy) |
52 |
|
53 |
#ifdef ALLOW_LAND |
54 |
C- COMMON /ATM_LAND2CPL_R/ |
55 |
C RunOffFlux :: Fresh water flux (=RunOff) on atmos. grid |
56 |
C ( kg/m2/s, positive is leaving the land bucket) |
57 |
C RunOffEnFx :: Energy carried by RunOff (W/m2) (+=leaving land bucket) |
58 |
C RunOffTime :: Time fraction over which term has been integrated. |
59 |
C ROEnFxTime :: Time fraction over which term has been integrated. |
60 |
COMMON /ATM_LAND2CPL_R/ |
61 |
& RunOffFlux, RunOffEnFx, |
62 |
& RunOffTime, ROEnFxTime |
63 |
_RL RunOffFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
64 |
_RL RunOffEnFx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
65 |
_RL RunOffTime (nSx,nSy) |
66 |
_RL ROEnFxTime (nSx,nSy) |
67 |
#endif /* ALLOW_LAND */ |
68 |
|
69 |
#ifdef ALLOW_THSICE |
70 |
C- COMMON /ATM_SICE2CPL_R/ |
71 |
C iceSaltFlx :: salt flux from sea-ice compon. (+=upward) |
72 |
C seaIceMass :: sea-ice mass (kg/m2) |
73 |
C saltPlmFlx_cpl :: salt-plume flux for salt_plume pkg |
74 |
C saltFxTime :: Time fraction over which term has been integrated. |
75 |
C sIceMassTime :: Time fraction over which term has been integrated. |
76 |
C saltPlmFlxTime :: Time fraction over which term has been integrated |
77 |
COMMON /ATM_SICE2CPL_R/ |
78 |
& iceSaltFlx, seaIceMass, saltPlmFlx_cpl, |
79 |
& saltFxTime, sIceMassTime, saltPlmFlxTime |
80 |
_RL iceSaltFlx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
81 |
_RL seaIceMass (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
82 |
_RL saltPlmFlx_cpl(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
83 |
_RL saltFxTime (nSx,nSy) |
84 |
_RL sIceMassTime (nSx,nSy) |
85 |
_RL saltPlmFlxTime(nSx,nSy) |
86 |
#endif /* ALLOW_THSICE */ |
87 |
|
88 |
#ifdef ALLOW_AIM |
89 |
C- COMMON /ATM_AIM2CPL_R/ |
90 |
C airCO2 :: atmospheric CO2 (parts by volume) |
91 |
C sWSpeed :: surface wind speed (m/s) |
92 |
C airCO2Time :: Time fraction over which term has been integrated. |
93 |
C sWSpeedTime :: Time fraction over which term has been integrated. |
94 |
COMMON /ATM_AIM2CPL_R/ |
95 |
& airCO2, sWSpeed, |
96 |
& airCO2Time, sWSpeedTime |
97 |
_RL airCO2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
98 |
_RL sWSpeed (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
99 |
_RL airCO2Time (nSx,nSy) |
100 |
_RL sWSpeedTime(nSx,nSy) |
101 |
#endif /* ALLOW_AIM */ |
102 |
|
103 |
#ifdef ALLOW_THSICE |
104 |
C-- fields used for multiple purpose: |
105 |
C- COMMON /ATM_CPL_ICE_R/ |
106 |
C sIceFrac_cpl :: seaice fraction |
107 |
C sIceFracTime :: Time fraction over which term has been integrated. |
108 |
COMMON /ATM_CPL_ICE_R/ |
109 |
& sIceFrac_cpl, sIceFracTime |
110 |
_RL sIceFrac_cpl (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
111 |
_RL sIceFracTime (nSx,nSy) |
112 |
|
113 |
C-- fields sent in both direction: |
114 |
C- COMMON /ATM_CPL_2WAYS_R/ |
115 |
C sIceThick_cpl :: seaice thickness [m] |
116 |
C sIceSnowH_cpl :: snow thickness over seaice [m] |
117 |
C sIceQ1_cpl :: seaice enthalpy of ice layer 1 [J/kg] |
118 |
C sIceQ2_cpl :: seaice enthalpy of ice layer 2 [J/kg] |
119 |
C sIceThickTime :: Time fraction over which term has been integrated. |
120 |
C sIceSnowHTime :: Time fraction over which term has been integrated. |
121 |
C sIceQ1Time :: Time fraction over which term has been integrated. |
122 |
C sIceQ2Time :: Time fraction over which term has been integrated. |
123 |
COMMON /ATM_CPL_2WAYS_R/ |
124 |
& sIceThick_cpl, sIceSnowH_cpl, sIceQ1_cpl, sIceQ2_cpl, |
125 |
& sIceThickTime, sIceSnowHTime, sIceQ1Time, sIceQ2Time |
126 |
_RL sIceThick_cpl(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
127 |
_RL sIceSnowH_cpl(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
128 |
_RL sIceQ1_cpl (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
129 |
_RL sIceQ2_cpl (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
130 |
_RL sIceThickTime(nSx,nSy) |
131 |
_RL sIceSnowHTime(nSx,nSy) |
132 |
_RL sIceQ1Time (nSx,nSy) |
133 |
_RL sIceQ2Time (nSx,nSy) |
134 |
#endif /* ALLOW_THSICE */ |
135 |
|
136 |
C-- fields sent from OCN to ATM: |
137 |
|
138 |
C- COMMON /ATM_CPL2ATM_R/ |
139 |
C ocMxlD :: Ocean mixed-layer depth (m). ocMxlD==0. => land. |
140 |
C SSTocn :: Ocean surface temperature (oC). Undefined data for land points. |
141 |
C SSSocn :: Ocean surface salinity (psu). Undefined data for land points. |
142 |
C vSqocn :: Ocean surface velocity square (m2/s2). |
143 |
COMMON /ATM_CPL2ATM_R/ |
144 |
& ocMxlD, SSTocn, SSSocn, vSqocn |
145 |
_RL ocMxlD (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
146 |
_RL SSTocn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
147 |
_RL SSSocn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
148 |
_RL vSqocn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
149 |
|
150 |
#ifdef ALLOW_AIM |
151 |
C- COMMON /ATM_CPL2AIM_R/ |
152 |
C flxCO2ocn :: Ocean flux of CO2 (mol/m2/s). |
153 |
COMMON /ATM_CPL2AIM_R/ |
154 |
& flxCO2ocn |
155 |
_RL flxCO2ocn(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
156 |
#endif /* ALLOW_AIM */ |
157 |
|
158 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |