1 |
c $Header$ |
C |
2 |
|
C $Header$ |
3 |
|
C $Name$ |
4 |
|
|
5 |
#include "EXF_CPPOPTIONS.h" |
#include "AD_CONFIG.h" |
6 |
|
#include "EXF_OPTIONS.h" |
7 |
|
|
8 |
subroutine exf_getffields( mycurrenttime, mycurrentiter, mythid ) |
subroutine exf_getffields( mycurrenttime, mycurrentiter, mythid ) |
9 |
|
|
14 |
c o Read-in atmospheric state and/or surface fluxes from files. |
c o Read-in atmospheric state and/or surface fluxes from files. |
15 |
c |
c |
16 |
c heimbach@mit.edu, 23-May-2003 totally re-structured |
c heimbach@mit.edu, 23-May-2003 totally re-structured |
17 |
|
c 5-Aug-2003: added USE_EXF_INTERPOLATION for arbitrary input grid |
18 |
c |
c |
19 |
c ================================================================== |
c ================================================================== |
20 |
c SUBROUTINE exf_getffields |
c SUBROUTINE exf_getffields |
60 |
& uwindfile, uwindstartdate, uwindperiod, |
& uwindfile, uwindstartdate, uwindperiod, |
61 |
& exf_inscal_uwind, |
& exf_inscal_uwind, |
62 |
& uwind, uwind0, uwind1, uwindmask, |
& uwind, uwind0, uwind1, uwindmask, |
63 |
|
#ifdef USE_EXF_INTERPOLATION |
64 |
|
& uwind_lon0, uwind_lon_inc, uwind_lat0, uwind_lat_inc, |
65 |
|
& uwind_nlon, uwind_nlat, xC, yC, |
66 |
|
#endif |
67 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
68 |
|
|
69 |
c Meridional wind. |
c Meridional wind. |
71 |
& vwindfile, vwindstartdate, vwindperiod, |
& vwindfile, vwindstartdate, vwindperiod, |
72 |
& exf_inscal_vwind, |
& exf_inscal_vwind, |
73 |
& vwind, vwind0, vwind1, vwindmask, |
& vwind, vwind0, vwind1, vwindmask, |
74 |
|
#ifdef USE_EXF_INTERPOLATION |
75 |
|
& vwind_lon0, vwind_lon_inc, vwind_lat0, vwind_lat_inc, |
76 |
|
& vwind_nlon, vwind_nlat, xC, yC, |
77 |
|
#endif |
78 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
79 |
|
|
80 |
#ifdef ALLOW_UWIND_CONTROL |
#ifdef ALLOW_UWIND_CONTROL |
98 |
& ustressfile, ustressstartdate, ustressperiod, |
& ustressfile, ustressstartdate, ustressperiod, |
99 |
& exf_inscal_ustress, |
& exf_inscal_ustress, |
100 |
& ustress, ustress0, ustress1, ustressmask, |
& ustress, ustress0, ustress1, ustressmask, |
101 |
|
#ifdef USE_EXF_INTERPOLATION |
102 |
|
& ustress_lon0, ustress_lon_inc, ustress_lat0, ustress_lat_inc, |
103 |
|
& ustress_nlon, ustress_nlat, xG, yC, |
104 |
|
#endif |
105 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
106 |
|
|
107 |
c Meridional wind stress. |
c Meridional wind stress. |
109 |
& vstressfile, vstressstartdate, vstressperiod, |
& vstressfile, vstressstartdate, vstressperiod, |
110 |
& exf_inscal_vstress, |
& exf_inscal_vstress, |
111 |
& vstress, vstress0, vstress1, vstressmask, |
& vstress, vstress0, vstress1, vstressmask, |
112 |
|
#ifdef USE_EXF_INTERPOLATION |
113 |
|
& vstress_lon0, vstress_lon_inc, vstress_lat0, vstress_lat_inc, |
114 |
|
& vstress_nlon, vstress_nlat, xC, yG, |
115 |
|
#endif |
116 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
117 |
|
|
118 |
#endif /* ifndef ALLOW_ATM_WIND */ |
#endif /* ifndef ALLOW_ATM_WIND */ |
124 |
& atempfile, atempstartdate, atempperiod, |
& atempfile, atempstartdate, atempperiod, |
125 |
& exf_inscal_atemp, |
& exf_inscal_atemp, |
126 |
& atemp, atemp0, atemp1, atempmask, |
& atemp, atemp0, atemp1, atempmask, |
127 |
|
#ifdef USE_EXF_INTERPOLATION |
128 |
|
& atemp_lon0, atemp_lon_inc, atemp_lat0, atemp_lat_inc, |
129 |
|
& atemp_nlon, atemp_nlat, xC, yC, |
130 |
|
#endif |
131 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
132 |
|
|
133 |
c Atmospheric humidity. |
c Atmospheric humidity. |
135 |
& aqhfile, aqhstartdate, aqhperiod, |
& aqhfile, aqhstartdate, aqhperiod, |
136 |
& exf_inscal_aqh, |
& exf_inscal_aqh, |
137 |
& aqh, aqh0, aqh1, aqhmask, |
& aqh, aqh0, aqh1, aqhmask, |
138 |
|
#ifdef USE_EXF_INTERPOLATION |
139 |
|
& aqh_lon0, aqh_lon_inc, aqh_lat0, aqh_lat_inc, |
140 |
|
& aqh_nlon, aqh_nlat, xC, yC, |
141 |
|
#endif |
142 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
143 |
|
|
144 |
c Net long wave radiative flux. |
c Net long wave radiative flux. |
146 |
& lwfluxfile, lwfluxstartdate, lwfluxperiod, |
& lwfluxfile, lwfluxstartdate, lwfluxperiod, |
147 |
& exf_inscal_lwflux, |
& exf_inscal_lwflux, |
148 |
& lwflux, lwflux0, lwflux1, lwfluxmask, |
& lwflux, lwflux0, lwflux1, lwfluxmask, |
149 |
|
#ifdef USE_EXF_INTERPOLATION |
150 |
|
& lwflux_lon0, lwflux_lon_inc, lwflux_lat0, lwflux_lat_inc, |
151 |
|
& lwflux_nlon, lwflux_nlat, xC, yC, |
152 |
|
#endif |
153 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
154 |
|
|
155 |
c Precipitation. |
c Precipitation. |
157 |
& precipfile, precipstartdate, precipperiod, |
& precipfile, precipstartdate, precipperiod, |
158 |
& exf_inscal_precip, |
& exf_inscal_precip, |
159 |
& precip, precip0, precip1, precipmask, |
& precip, precip0, precip1, precipmask, |
160 |
|
#ifdef USE_EXF_INTERPOLATION |
161 |
|
& precip_lon0, precip_lon_inc, precip_lat0, precip_lat_inc, |
162 |
|
& precip_nlon, precip_nlat, xC, yC, |
163 |
|
#endif |
164 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
165 |
|
|
166 |
#ifdef ALLOW_ATEMP_CONTROL |
#ifdef ALLOW_ATEMP_CONTROL |
183 |
call exf_set_gen ( |
call exf_set_gen ( |
184 |
& hfluxfile, hfluxstartdate, hfluxperiod, exf_inscal_hflux, |
& hfluxfile, hfluxstartdate, hfluxperiod, exf_inscal_hflux, |
185 |
& hflux, hflux0, hflux1, hfluxmask, |
& hflux, hflux0, hflux1, hfluxmask, |
186 |
|
#ifdef USE_EXF_INTERPOLATION |
187 |
|
& hflux_lon0, hflux_lon_inc, hflux_lat0, hflux_lat_inc, |
188 |
|
& hflux_nlon, hflux_nlat, xC, yC, |
189 |
|
#endif |
190 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
191 |
|
|
192 |
c Salt flux. |
c Salt flux. |
193 |
call exf_set_gen ( |
call exf_set_gen ( |
194 |
& sfluxfile, sfluxstartdate, sfluxperiod, exf_inscal_sflux, |
& sfluxfile, sfluxstartdate, sfluxperiod, exf_inscal_sflux, |
195 |
& sflux, sflux0, sflux1, sfluxmask, |
& sflux, sflux0, sflux1, sfluxmask, |
196 |
|
#ifdef USE_EXF_INTERPOLATION |
197 |
|
& sflux_lon0, sflux_lon_inc, sflux_lat0, sflux_lat_inc, |
198 |
|
& sflux_nlon, sflux_nlat, xC, yC, |
199 |
|
#endif |
200 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
201 |
|
|
202 |
#endif /* ifndef ALLOW_ATM_TEMP */ |
#endif /* ifndef ALLOW_ATM_TEMP */ |
206 |
call exf_set_gen ( |
call exf_set_gen ( |
207 |
& swfluxfile, swfluxstartdate, swfluxperiod, exf_inscal_swflux, |
& swfluxfile, swfluxstartdate, swfluxperiod, exf_inscal_swflux, |
208 |
& swflux, swflux0, swflux1, swfluxmask, |
& swflux, swflux0, swflux1, swfluxmask, |
209 |
|
#ifdef USE_EXF_INTERPOLATION |
210 |
|
& swflux_lon0, swflux_lon_inc, swflux_lat0, swflux_lat_inc, |
211 |
|
& swflux_nlon, swflux_nlat, xC, yC, |
212 |
|
#endif |
213 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
214 |
#endif |
#endif |
215 |
|
|
218 |
call exf_set_gen ( |
call exf_set_gen ( |
219 |
& evapfile, evapstartdate, evapperiod, exf_inscal_evap, |
& evapfile, evapstartdate, evapperiod, exf_inscal_evap, |
220 |
& evap, evap0, evap1, evapmask, |
& evap, evap0, evap1, evapmask, |
221 |
|
#ifdef USE_EXF_INTERPOLATION |
222 |
|
& evap_lon0, evap_lon_inc, evap_lat0, evap_lat_inc, |
223 |
|
& evap_nlon, evap_nlat, xC, yC, |
224 |
|
#endif |
225 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
226 |
#endif |
#endif |
227 |
|
|
231 |
call exf_set_gen ( |
call exf_set_gen ( |
232 |
& swdownfile, swdownstartdate, swdownperiod, exf_inscal_swdown, |
& swdownfile, swdownstartdate, swdownperiod, exf_inscal_swdown, |
233 |
& swdown, swdown0, swdown1, swdownmask, |
& swdown, swdown0, swdown1, swdownmask, |
234 |
|
#ifdef USE_EXF_INTERPOLATION |
235 |
|
& swdown_lon0, swdown_lon_inc, swdown_lat0, swdown_lat_inc, |
236 |
|
& swdown_nlon, swdown_nlat, xC, yC, |
237 |
|
#endif |
238 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
239 |
|
|
240 |
c Downward longwave radiation. |
c Downward longwave radiation. |
241 |
call exf_set_gen ( |
call exf_set_gen ( |
242 |
& lwdownfile, lwdownstartdate, lwdownperiod, exf_inscal_lwdown, |
& lwdownfile, lwdownstartdate, lwdownperiod, exf_inscal_lwdown, |
243 |
& lwdown, lwdown0, lwdown1, lwdownmask, |
& lwdown, lwdown0, lwdown1, lwdownmask, |
244 |
|
#ifdef USE_EXF_INTERPOLATION |
245 |
|
& lwdown_lon0, lwdown_lon_inc, lwdown_lat0, lwdown_lat_inc, |
246 |
|
& lwdown_nlon, lwdown_nlat, xC, yC, |
247 |
|
#endif |
248 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
249 |
|
|
250 |
#endif |
#endif |
255 |
& apressurefile, apressurestartdate, apressureperiod, |
& apressurefile, apressurestartdate, apressureperiod, |
256 |
& exf_inscal_apressure, |
& exf_inscal_apressure, |
257 |
& apressure, apressure0, apressure1, apressuremask, |
& apressure, apressure0, apressure1, apressuremask, |
258 |
|
#ifdef USE_EXF_INTERPOLATION |
259 |
|
& apressure_lon0, apressure_lon_inc, apressure_lat0, |
260 |
|
& apressure_lat_inc, apressure_nlon, apressure_nlat, xC, yC, |
261 |
|
#endif |
262 |
& mycurrenttime, mycurrentiter, mythid ) |
& mycurrenttime, mycurrentiter, mythid ) |
263 |
#endif |
#endif |
264 |
|
|