1 |
INTEGER nForcingPer |
2 |
PARAMETER ( nForcingPer = 12) |
3 |
|
4 |
COMMON/TMSTPS4OCN/dtatmo,dtocno,dtcouplo |
5 |
_RS dtatmo ! atmospheric time step (s) |
6 |
_RS dtocno ! ocean time step (s) |
7 |
_RS dtcouplo ! time of coupling period (s) |
8 |
|
9 |
COMMON /MEANWIND/ |
10 |
& atmosTauuFile, atmosTauvFile,atmosWindFile, |
11 |
& atau, atav, awind |
12 |
CHARACTER*(MAX_LEN_FNAM) atmosTauuFile |
13 |
CHARACTER*(MAX_LEN_FNAM) atmosTauvFile |
14 |
CHARACTER*(MAX_LEN_FNAM) atmosWindFile |
15 |
_RL atau(jm0,nForcingPer) |
16 |
_RL atav(jm0,nForcingPer) |
17 |
_RL awind(jm0,nForcingPer) |
18 |
|
19 |
|
20 |
COMMON /OCEAN_2D_FILES/ |
21 |
& tauuFile, tauvFile, windFile, |
22 |
& qnetFile, evapFile, precipFile |
23 |
|
24 |
CHARACTER*(MAX_LEN_FNAM) tauuFile |
25 |
CHARACTER*(MAX_LEN_FNAM) tauvFile |
26 |
CHARACTER*(MAX_LEN_FNAM) windFile |
27 |
CHARACTER*(MAX_LEN_FNAM) qnetFile |
28 |
CHARACTER*(MAX_LEN_FNAM) evapFile |
29 |
CHARACTER*(MAX_LEN_FNAM) precipFile |
30 |
|
31 |
|
32 |
COMMON /OCEAN_RELAX_FILES/ |
33 |
& thetaRelaxFile, saltRelaxFile, |
34 |
& tauThetaRelax, tauSaltRelax, |
35 |
& r_tauThetaRelax, r_tauSaltRelax, |
36 |
& nttyperelax, nstyperelax |
37 |
|
38 |
|
39 |
CHARACTER*(MAX_LEN_FNAM) thetaRelaxFile |
40 |
CHARACTER*(MAX_LEN_FNAM) saltRelaxFile |
41 |
_RL tauThetaRelax |
42 |
_RL tauSaltRelax |
43 |
_RL r_tauThetaRelax |
44 |
_RL r_tauSaltRelax |
45 |
INTEGER ntTypeRelax |
46 |
INTEGER nsTypeRelax |
47 |
|
48 |
|
49 |
COMMON /RUNOFF_DATA/ |
50 |
& runoffFile, runoffMapFile, |
51 |
& runoffVal, numBands, rband, runIndex |
52 |
|
53 |
CHARACTER*(MAX_LEN_FNAM) runoffFile |
54 |
CHARACTER*(MAX_LEN_FNAM) runoffMapFile |
55 |
_RL runoffVal (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
56 |
INTEGER numBands ! number of runoff bands |
57 |
INTEGER rband(sNy) ! first band j=1,rband(1); next j=rband(1)+1,rband(2) etc. |
58 |
INTEGER runIndex(sNy) ! for specific latitude, corresponding runoff band |
59 |
|
60 |
COMMON /OPTIONS_1DTO2D/ |
61 |
& useObsEmP, useObsRunoff, useAltDeriv |
62 |
LOGICAL useObsEmP |
63 |
LOGICAL useObsRunoff |
64 |
LOGICAL useAltDeriv |
65 |
|
66 |
COMMON /ATMOS4OCN/ atm_tauu, atm_tauv, atm_Tair, |
67 |
& atm_precip, atm_runoff, |
68 |
& atm_evap_ice, atm_evap_ocn, |
69 |
& atm_qnet_ice, atm_qnet_ocn, |
70 |
& atm_dLdt_ice, atm_dLdt_ocn, |
71 |
& atm_dFdt_ice, atm_dFdt_ocn, |
72 |
& atm_dLdt_iceq, atm_dLdt_ocnq, |
73 |
& atm_dFdt_iceq, atm_dFdt_ocnq, |
74 |
& atm_solarinc, atm_solar_ice, |
75 |
& atm_solar_ocn, atm_windspeed, |
76 |
& atm_slp, atm_pco2 |
77 |
_RL atm_tauu(jm0) ! zonal mom flux at lower boundary (N/m2) |
78 |
_RL atm_tauv(jm0) ! merid. mom flux at lower boundary (N/m2) |
79 |
_RL atm_Tair(jm0) ! precipitation temp (used over seaice) (C) |
80 |
_RL atm_precip(jm0) ! precip (m/s) (+=out of ocean, - definite) |
81 |
_RL atm_runoff(jm0) ! runoff (m3/s) (+=out of ocean, - definite) |
82 |
_RL atm_evap_ice(jm0) ! seaice evap. (m/s) (-=out of ocean, normally -) |
83 |
_RL atm_evap_ocn(jm0) ! ocean evap. (m/s) (-=out of ocean, normally -) |
84 |
_RL atm_qnet_ice(jm0) ! seaice surf. heat flux (W/m2) (+=upward) |
85 |
_RL atm_qnet_ocn(jm0) ! ocean surf. heat flux (W/m2) (+=upward) |
86 |
_RL atm_dLdt_ice(jm0) ! dL/dT ice (m/s/K) (-) |
87 |
_RL atm_dLdt_ocn(jm0) ! dL/dT ocean (m/s/K) (-) |
88 |
_RL atm_dFdt_ice(jm0) ! dF/dT ice (W/m2/K) (+) |
89 |
_RL atm_dFdt_ocn(jm0) ! dF/dT ocean (W/m2/K) (+) |
90 |
_RL atm_dLdt_iceq(jm0) ! dL/dT ice, alternate form (m/s/K) (-) |
91 |
_RL atm_dLdt_ocnq(jm0) ! dL/dT ocean, alternate form (m/s/K) (-) |
92 |
_RL atm_dFdt_iceq(jm0) ! dF/dT ice, alternate form (W/m2/K) (+) |
93 |
_RL atm_dFdt_ocnq(jm0) ! dF/dT ocean, alternate form (W/m2/K) (+) |
94 |
_RL atm_solarinc(jm0) ! solar incoming (+=out of ocean) |
95 |
_RL atm_solar_ice(jm0) ! net solar radation to ice (+=into ocean) |
96 |
_RL atm_solar_ocn(jm0) ! solar incoming to ocean (+=into ocean) |
97 |
_RL atm_windspeed(jm0) ! windspeed at ocean surface (m/s) |
98 |
_RL atm_slp(jm0) ! SLP (mb) |
99 |
_RL atm_pco2(jm0) ! atmospheric pCO2 (units?) |
100 |
|
101 |
c |
102 |
c ocean data zonal means |
103 |
COMMON/OCN_ZONALMN/ ctocn, ctice, cfice, csAlb, ocnArea, cco2flux |
104 |
_RL ctocn(jm0) |
105 |
_RL ctice(jm0) |
106 |
_RL cfice(jm0) |
107 |
_RL csAlb(jm0) |
108 |
_RL ocnArea(jm0) |
109 |
_RL cco2flux(jm0) |
110 |
|
111 |
c |
112 |
c fluxes that get converted from 1D to 2D, whether by flux adj., |
113 |
c restoring, or by manipulating 1D atmos values for ocean model |
114 |
c |
115 |
COMMON/FLUXES_2D_OCN/ qneto_2D, evapo_2D, runoff_2D, |
116 |
& precipo_2D, fu_2D, fv_2D, solarnet_ocn_2D, |
117 |
& slp_2D, pCO2_2D, wspeed_2D |
118 |
_RL qneto_2D(1:sNx,1:sNy) ! ocean surf. heat flux (W/m2) (+=upward) |
119 |
_RL evapo_2D(1:sNx,1:sNy) ! ocean evap. (m/s) (-=out of ocean) |
120 |
_RL runoff_2D(1:sNx,1:sNy) ! runoff (m/s over gridcell) (+=out of ocean, - def) |
121 |
_RL precipo_2D(1:sNx,1:sNy) ! precip (m/s) (+=out of ocean, - definite) |
122 |
_RL fu_2D(1:sNx,1:sNy) ! zonal mom flux at lower boundary (N/m2) |
123 |
_RL fv_2D(1:sNx,1:sNy) ! merid. mom flux at lower boundary (N/m2) |
124 |
_RL solarnet_ocn_2D(1:sNx,1:sNy) ! solar incoming to ocean (+=into ocean) |
125 |
_RL slp_2D(1:sNx,1:sNy) ! SLP (mb) |
126 |
_RL pCO2_2D(1:sNx,1:sNy) ! atmospheric pCO2 (units?) |
127 |
_RL wspeed_2D(1:sNx,1:sNy) ! windspeed at ocean surface (m/s) |
128 |
|
129 |
c |
130 |
c fluxes that get converted from 1D to 2D, whether by flux adj., |
131 |
c restoring, or by manipulating 1D atmos values for seaice model |
132 |
c |
133 |
COMMON/FLUXES_2D_ICE/ qneti_2D, evapi_2D, precipi_2D, |
134 |
& solarinc_2D, dFdT_ice_2D, Tair_2D |
135 |
_RL qneti_2D(1:sNx,1:sNy) ! seaice surf. heat flux (W/m2) (+=upward) |
136 |
_RL evapi_2D(1:sNx,1:sNy) ! ocean evap. (m/s) (-=out of ocean) |
137 |
_RL precipi_2D(1:sNx,1:sNy) ! precip (m/s) (+=out of ocean, - definite) |
138 |
_RL solarinc_2D(1:sNx,1:sNy)! solar incoming (+=out of ocean) |
139 |
_RL dFdT_ice_2D(1:sNx,1:sNy)! dF/dT ice (W/m^2/K) (+ given +=up HF) |
140 |
_RL Tair_2D(1:sNx,1:sNy) ! precipitation temp (used over seaice) (C) |
141 |
|
142 |
c |
143 |
c lookup table for ocean gridcell to atmos grid cell. The weight |
144 |
c is for that atmos grid cell; 1-weight is for atmos cell+1. |
145 |
c |
146 |
COMMON/LOOKUP_GRID/ atm_oc_ind, atm_oc_wgt |
147 |
INTEGER atm_oc_ind(sNy) |
148 |
_RL atm_oc_wgt(sNy) |
149 |
|
150 |
|
151 |
COMMON/OCN_FLUXES_SUM/ sum_runoff, sum_precip, sum_evap, sum_qnet, |
152 |
& sum_fu, sum_fv, sum_wspeed, |
153 |
& sum_solarnet, sum_slp, sum_pCO2, |
154 |
& sum_prcIce, sum_snowPrc, sum_evapIce, |
155 |
& sum_sHeat, sum_flxCnB |
156 |
_RL sum_runoff(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! runoff (m/s) (+=out of ocean, - def) |
157 |
_RL sum_precip(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! ocean-only precip |
158 |
_RL sum_evap(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
159 |
_RL sum_qnet(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
160 |
_RL sum_fu(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
161 |
_RL sum_fv(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
162 |
_RL sum_wspeed(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
163 |
_RL sum_solarnet(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
164 |
_RL sum_slp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
165 |
_RL sum_pCO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
166 |
_RL sum_prcIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! total P over ice (kg/m2/s, + def) |
167 |
_RL sum_snowPrc(1-OLx:sNx+OLx,1-OLy:sNy+OLy)! snow precip to ice (kg/m2/s, + def) |
168 |
_RL sum_evapIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy)! total E over ice (kg/m2/s, +=up) |
169 |
_RL sum_sHeat(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! top ice melting flux, post temp ice step |
170 |
_RL sum_flxCnB(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! bottom ice freezing/warming flux, "" |
171 |
|
172 |
COMMON/OCN_FLUXES_PASS/ pass_runoff, pass_precip, pass_evap, pass_qnet, |
173 |
& pass_fu, pass_fv, pass_wspeed, |
174 |
& pass_solarnet, pass_slp, pass_sIceLoad, pass_pCO2, |
175 |
& pass_prcAtm, sFluxFromIce |
176 |
_RL pass_runoff(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
177 |
_RL pass_precip(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
178 |
_RL pass_evap(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
179 |
_RL pass_qnet(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
180 |
_RL pass_fu(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
181 |
_RL pass_fv(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
182 |
_RL pass_wspeed(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
183 |
_RL pass_solarnet(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
184 |
_RL pass_slp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
185 |
_RL pass_sIceLoad(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
186 |
_RL pass_pCO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
187 |
_RL pass_prcAtm(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! total P-E over ice (+=precip to ice) |
188 |
_RL sFluxFromIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! salt flux to ocean, "" |
189 |
|
190 |
COMMON/DIAGS_1DTO2D/ qnet_atm, evap_atm, precip_atm, runoff_atm, |
191 |
& sum_qrel, sum_frel, |
192 |
& sum_iceMask, sum_iceHeight, sum_iceTime, |
193 |
& sum_oceMxLT, sum_oceMxLS, |
194 |
& qnet_atm_ta, evap_atm_ta, |
195 |
& precip_atm_ta, runoff_atm_ta, |
196 |
& sum_qrel_ta, sum_frel_ta, |
197 |
& sum_iceMask_ta, sum_iceHeight_ta, |
198 |
& sum_iceTime_ta, |
199 |
& sum_oceMxLT_ta, sum_oceMxLS_ta, |
200 |
& sum_tauu_ta, sum_tauv_ta, sum_wsocean_ta, |
201 |
& sum_ps4ocean_ta |
202 |
_RL qnet_atm(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
203 |
_RL evap_atm(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
204 |
_RL precip_atm(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
205 |
_RL runoff_atm(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
206 |
_RL sum_qrel(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
207 |
_RL sum_frel(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
208 |
_RL sum_iceMask(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
209 |
_RL sum_iceHeight(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
210 |
_RL sum_iceTime(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
211 |
_RL sum_oceMxLT(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
212 |
_RL sum_oceMxLS(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! |
213 |
_RL qnet_atm_ta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nForcingPer) ! |
214 |
_RL evap_atm_ta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nForcingPer) ! |
215 |
_RL precip_atm_ta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nForcingPer) ! |
216 |
_RL runoff_atm_ta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nForcingPer) ! |
217 |
_RL sum_qrel_ta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nForcingPer) ! |
218 |
_RL sum_frel_ta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nForcingPer) ! |
219 |
_RL sum_iceMask_ta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nForcingPer) ! |
220 |
_RL sum_iceHeight_ta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nForcingPer) ! |
221 |
_RL sum_iceTime_ta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nForcingPer) ! |
222 |
_RL sum_oceMxLT_ta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nForcingPer) ! |
223 |
_RL sum_oceMxLS_ta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nForcingPer) ! |
224 |
_RL sum_tauu_ta(jm0,nForcingPer) |
225 |
_RL sum_tauv_ta(jm0,nForcingPer) |
226 |
_RL sum_wsocean_ta(jm0,nForcingPer) |
227 |
_RL sum_ps4ocean_ta(jm0,nForcingPer) |
228 |
|
229 |
COMMON/FROM_OCN/ sstFromOcn, sssFromOcn, fluxCO2, mlDepth |
230 |
_RL sstFromOcn(1:sNx,1:sNy) |
231 |
_RL sssFromOcn(1:sNx,1:sNy) |
232 |
_RL fluxCO2(1:sNx,1:sNy) |
233 |
_RL mlDepth(1:sNx,1:sNy) |
234 |
|