| 1 | mmazloff | 1.1 | C $Header: /u/gcmpack/MITgcm/pkg/exf/exf_getffields.F,v 1.42 2009/02/16 09:10:18 mlosch Exp $ | 
| 2 |  |  | C $Name:  $ | 
| 3 |  |  |  | 
| 4 |  |  | #include "EXF_OPTIONS.h" | 
| 5 |  |  |  | 
| 6 |  |  | subroutine exf_getffields( mytime, myiter, mythid ) | 
| 7 |  |  |  | 
| 8 |  |  | c     ================================================================== | 
| 9 |  |  | c     SUBROUTINE exf_getffields | 
| 10 |  |  | c     ================================================================== | 
| 11 |  |  | c | 
| 12 |  |  | c     o Read-in atmospheric state and/or surface fluxes from files. | 
| 13 |  |  | c | 
| 14 |  |  | c       heimbach@mit.edu, 23-May-2003 totally re-structured | 
| 15 |  |  | c       5-Aug-2003: added USE_EXF_INTERPOLATION for arbitrary input grid | 
| 16 |  |  | c | 
| 17 |  |  | c     ================================================================== | 
| 18 |  |  | c     SUBROUTINE exf_getffields | 
| 19 |  |  | c     ================================================================== | 
| 20 |  |  |  | 
| 21 |  |  | implicit none | 
| 22 |  |  |  | 
| 23 |  |  | c     == global variables == | 
| 24 |  |  |  | 
| 25 |  |  | #include "EEPARAMS.h" | 
| 26 |  |  | #include "SIZE.h" | 
| 27 |  |  | #include "PARAMS.h" | 
| 28 |  |  | #include "DYNVARS.h" | 
| 29 |  |  | #include "GRID.h" | 
| 30 |  |  |  | 
| 31 |  |  | #include "EXF_PARAM.h" | 
| 32 |  |  | #include "EXF_FIELDS.h" | 
| 33 |  |  | #include "EXF_CONSTANTS.h" | 
| 34 |  |  |  | 
| 35 |  |  | #ifdef ALLOW_AUTODIFF | 
| 36 |  |  | # include "ctrl.h" | 
| 37 |  |  | # include "ctrl_dummy.h" | 
| 38 |  |  | #endif | 
| 39 |  |  |  | 
| 40 |  |  | c     == routine arguments == | 
| 41 |  |  |  | 
| 42 |  |  | integer mythid | 
| 43 |  |  | integer myiter | 
| 44 |  |  | _RL     mytime | 
| 45 |  |  |  | 
| 46 |  |  | c     == local variables == | 
| 47 |  |  |  | 
| 48 |  |  | integer i, j, bi, bj, interp_method | 
| 49 |  |  | parameter(interp_method=2) | 
| 50 |  |  | CMM      parameter(interp_method=1) | 
| 51 |  |  |  | 
| 52 |  |  | c     == end of interface == | 
| 53 |  |  |  | 
| 54 |  |  | c--   read forcing fields from files and temporal interpolation | 
| 55 |  |  |  | 
| 56 |  |  | c     Zonal and meridional wind stress. | 
| 57 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 58 |  |  | call exf_set_uv( | 
| 59 |  |  | &     ustressfile, ustressstartdate, ustressperiod, | 
| 60 |  |  | &     exf_inscal_ustress, ustress, ustress0, ustress1, ustressmask, | 
| 61 |  |  | &     ustress_lon0, ustress_lon_inc, ustress_lat0, ustress_lat_inc, | 
| 62 |  |  | &     ustress_nlon, ustress_nlat, | 
| 63 |  |  | &     ustress_exfremo_intercept, ustress_exfremo_slope, | 
| 64 |  |  | &     vstressfile, vstressstartdate, vstressperiod, | 
| 65 |  |  | &     exf_inscal_vstress, vstress, vstress0, vstress1, vstressmask, | 
| 66 |  |  | &     vstress_lon0, vstress_lon_inc, vstress_lat0, vstress_lat_inc, | 
| 67 |  |  | &     vstress_nlon, vstress_nlat, | 
| 68 |  |  | &     vstress_exfremo_intercept, vstress_exfremo_slope, | 
| 69 |  |  | &     mytime, myiter, mythid ) | 
| 70 |  |  | #else /* ifndef USE_EXF_INTERPOLATION */ | 
| 71 |  |  | call exf_set_gen( | 
| 72 |  |  | &     ustressfile, ustressstartdate, ustressperiod, | 
| 73 |  |  | &     exf_inscal_ustress, | 
| 74 |  |  | &     ustress_exfremo_intercept, ustress_exfremo_slope, | 
| 75 |  |  | &     ustress, ustress0, ustress1, ustressmask, | 
| 76 |  |  | &     mytime, myiter, mythid ) | 
| 77 |  |  | call exf_set_gen( | 
| 78 |  |  | &     vstressfile, vstressstartdate, vstressperiod, | 
| 79 |  |  | &     exf_inscal_vstress, | 
| 80 |  |  | &     vstress_exfremo_intercept, vstress_exfremo_slope, | 
| 81 |  |  | &     vstress, vstress0, vstress1, vstressmask, | 
| 82 |  |  | &     mytime, myiter, mythid ) | 
| 83 |  |  | #endif /* USE_EXF_INTERPOLATION */ | 
| 84 |  |  |  | 
| 85 |  |  | c--   wind speed | 
| 86 |  |  | call exf_set_gen( | 
| 87 |  |  | &     wspeedfile, wspeedstartdate, wspeedperiod, | 
| 88 |  |  | &     exf_inscal_wspeed, | 
| 89 |  |  | &     wspeed_exfremo_intercept, wspeed_exfremo_slope, | 
| 90 |  |  | &     wspeed, wspeed0, wspeed1, wspeedmask, | 
| 91 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 92 |  |  | &     wspeed_lon0, wspeed_lon_inc, | 
| 93 |  |  | &     wspeed_lat0, wspeed_lat_inc, | 
| 94 |  |  | &     wspeed_nlon, wspeed_nlat, xC, yC, interp_method, | 
| 95 |  |  | #endif | 
| 96 |  |  | &     mytime, myiter, mythid ) | 
| 97 |  |  |  | 
| 98 |  |  | #ifdef ALLOW_ATM_WIND | 
| 99 |  |  |  | 
| 100 |  |  | c     Zonal and meridional wind. | 
| 101 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 102 |  |  | call exf_set_uv( | 
| 103 |  |  | &     uwindfile, uwindstartdate, uwindperiod, | 
| 104 |  |  | &     exf_inscal_uwind, uwind, uwind0, uwind1, uwindmask, | 
| 105 |  |  | &     uwind_lon0, uwind_lon_inc, uwind_lat0, uwind_lat_inc, | 
| 106 |  |  | &     uwind_nlon, uwind_nlat, | 
| 107 |  |  | &     uwind_exfremo_intercept, uwind_exfremo_slope, | 
| 108 |  |  | &     vwindfile, vwindstartdate, vwindperiod, | 
| 109 |  |  | &     exf_inscal_vwind, vwind, vwind0, vwind1, vwindmask, | 
| 110 |  |  | &     vwind_lon0, vwind_lon_inc, vwind_lat0, vwind_lat_inc, | 
| 111 |  |  | &     vwind_nlon, vwind_nlat, | 
| 112 |  |  | &     vwind_exfremo_intercept, vwind_exfremo_slope, | 
| 113 |  |  | &     mytime, myiter, mythid ) | 
| 114 |  |  | #else /* ifndef USE_EXF_INTERPOLATION */ | 
| 115 |  |  | call exf_set_gen( | 
| 116 |  |  | &     uwindfile, uwindstartdate, uwindperiod, | 
| 117 |  |  | &     exf_inscal_uwind, | 
| 118 |  |  | &     uwind_exfremo_intercept, uwind_exfremo_slope, | 
| 119 |  |  | &     uwind, uwind0, uwind1, uwindmask, | 
| 120 |  |  | &     mytime, myiter, mythid ) | 
| 121 |  |  | call exf_set_gen( | 
| 122 |  |  | &     vwindfile, vwindstartdate, vwindperiod, | 
| 123 |  |  | &     exf_inscal_vwind, | 
| 124 |  |  | &     vwind_exfremo_intercept, vwind_exfremo_slope, | 
| 125 |  |  | &     vwind, vwind0, vwind1, vwindmask, | 
| 126 |  |  | &     mytime, myiter, mythid ) | 
| 127 |  |  | #endif /* USE_EXF_INTERPOLATION */ | 
| 128 |  |  |  | 
| 129 |  |  | if (useRelativeWind) then | 
| 130 |  |  | C     Subtract UVEL and VVEL from UWIND and VWIND. | 
| 131 |  |  | do bj = mybylo(mythid),mybyhi(mythid) | 
| 132 |  |  | do bi = mybxlo(mythid),mybxhi(mythid) | 
| 133 |  |  | do j = 1,sny | 
| 134 |  |  | do i = 1,snx | 
| 135 |  |  | uwind(i,j,bi,bj) = uwind(i,j,bi,bj) - 0.5 _d 0 * | 
| 136 |  |  | &          (uVel(i,j,1,bi,bj)+uVel(i+1,j,1,bi,bj)) | 
| 137 |  |  | vwind(i,j,bi,bj) = vwind(i,j,bi,bj) - 0.5 _d 0 * | 
| 138 |  |  | &          (vVel(i,j,1,bi,bj)+vVel(i,j+1,1,bi,bj)) | 
| 139 |  |  | enddo | 
| 140 |  |  | enddo | 
| 141 |  |  | enddo | 
| 142 |  |  | enddo | 
| 143 |  |  | endif | 
| 144 |  |  |  | 
| 145 |  |  | #endif /* ALLOW_ATM_WIND */ | 
| 146 |  |  |  | 
| 147 |  |  | c     Atmospheric heat flux. | 
| 148 |  |  | call exf_set_gen  ( | 
| 149 |  |  | &     hfluxfile, hfluxstartdate, hfluxperiod, | 
| 150 |  |  | &     exf_inscal_hflux, | 
| 151 |  |  | &     hflux_exfremo_intercept, hflux_exfremo_slope, | 
| 152 |  |  | &     hflux, hflux0, hflux1, hfluxmask, | 
| 153 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 154 |  |  | &     hflux_lon0, hflux_lon_inc, hflux_lat0, hflux_lat_inc, | 
| 155 |  |  | &     hflux_nlon, hflux_nlat, xC, yC, interp_method, | 
| 156 |  |  | #endif | 
| 157 |  |  | &     mytime, myiter, mythid ) | 
| 158 |  |  |  | 
| 159 |  |  | c     Salt flux. | 
| 160 |  |  | call exf_set_gen  ( | 
| 161 |  |  | &     sfluxfile, sfluxstartdate, sfluxperiod, | 
| 162 |  |  | &     exf_inscal_sflux, | 
| 163 |  |  | &     sflux_exfremo_intercept, sflux_exfremo_slope, | 
| 164 |  |  | &     sflux, sflux0, sflux1, sfluxmask, | 
| 165 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 166 |  |  | &     sflux_lon0, sflux_lon_inc, sflux_lat0, sflux_lat_inc, | 
| 167 |  |  | &     sflux_nlon, sflux_nlat, xC, yC, interp_method, | 
| 168 |  |  | #endif | 
| 169 |  |  | &     mytime, myiter, mythid ) | 
| 170 |  |  |  | 
| 171 |  |  | #ifdef ALLOW_ATM_TEMP | 
| 172 |  |  |  | 
| 173 |  |  | c     Atmospheric temperature. | 
| 174 |  |  | call exf_set_gen( | 
| 175 |  |  | &     atempfile, atempstartdate, atempperiod, | 
| 176 |  |  | &     exf_inscal_atemp, | 
| 177 |  |  | &     atemp_exfremo_intercept, atemp_exfremo_slope, | 
| 178 |  |  | &     atemp, atemp0, atemp1, atempmask, | 
| 179 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 180 |  |  | &     atemp_lon0, atemp_lon_inc, atemp_lat0, atemp_lat_inc, | 
| 181 |  |  | &     atemp_nlon, atemp_nlat, xC, yC, interp_method, | 
| 182 |  |  | #endif | 
| 183 |  |  | &     mytime, myiter, mythid ) | 
| 184 |  |  | do bj = mybylo(mythid),mybyhi(mythid) | 
| 185 |  |  | do bi = mybxlo(mythid),mybxhi(mythid) | 
| 186 |  |  | do j = 1,sny | 
| 187 |  |  | do i = 1,snx | 
| 188 |  |  | atemp(i,j,bi,bj) = atemp(i,j,bi,bj) + exf_offset_atemp | 
| 189 |  |  | enddo | 
| 190 |  |  | enddo | 
| 191 |  |  | enddo | 
| 192 |  |  | enddo | 
| 193 |  |  |  | 
| 194 |  |  | c     Atmospheric humidity. | 
| 195 |  |  | call exf_set_gen( | 
| 196 |  |  | &     aqhfile, aqhstartdate, aqhperiod, | 
| 197 |  |  | &     exf_inscal_aqh, | 
| 198 |  |  | &     aqh_exfremo_intercept, aqh_exfremo_slope, | 
| 199 |  |  | &     aqh, aqh0, aqh1, aqhmask, | 
| 200 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 201 |  |  | &     aqh_lon0, aqh_lon_inc, aqh_lat0, aqh_lat_inc, | 
| 202 |  |  | &     aqh_nlon, aqh_nlat, xC, yC, interp_method, | 
| 203 |  |  | #endif | 
| 204 |  |  | &     mytime, myiter, mythid ) | 
| 205 |  |  |  | 
| 206 |  |  | c     Net long wave radiative flux. | 
| 207 |  |  | call exf_set_gen( | 
| 208 |  |  | &     lwfluxfile, lwfluxstartdate, lwfluxperiod, | 
| 209 |  |  | &     exf_inscal_lwflux, | 
| 210 |  |  | &     lwflux_exfremo_intercept, lwflux_exfremo_slope, | 
| 211 |  |  | &     lwflux, lwflux0, lwflux1, lwfluxmask, | 
| 212 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 213 |  |  | &     lwflux_lon0, lwflux_lon_inc, lwflux_lat0, lwflux_lat_inc, | 
| 214 |  |  | &     lwflux_nlon, lwflux_nlat, xC, yC, interp_method, | 
| 215 |  |  | #endif | 
| 216 |  |  | &     mytime, myiter, mythid ) | 
| 217 |  |  |  | 
| 218 |  |  | c     Precipitation. | 
| 219 |  |  | call exf_set_gen( | 
| 220 |  |  | &     precipfile, precipstartdate, precipperiod, | 
| 221 |  |  | &     exf_inscal_precip, | 
| 222 |  |  | &     precip_exfremo_intercept, precip_exfremo_slope, | 
| 223 |  |  | &     precip, precip0, precip1, precipmask, | 
| 224 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 225 |  |  | &     precip_lon0, precip_lon_inc, precip_lat0, precip_lat_inc, | 
| 226 |  |  | &     precip_nlon, precip_nlat, xC, yC, interp_method, | 
| 227 |  |  | #endif | 
| 228 |  |  | &     mytime, myiter, mythid ) | 
| 229 |  |  |  | 
| 230 |  |  | c     Snow. | 
| 231 |  |  | call exf_set_gen( | 
| 232 |  |  | &     snowprecipfile, snowprecipstartdate, snowprecipperiod, | 
| 233 |  |  | &     exf_inscal_snowprecip, | 
| 234 |  |  | &     snowprecip_exfremo_intercept, snowprecip_exfremo_slope, | 
| 235 |  |  | &     snowprecip, snowprecip0, snowprecip1, snowprecipmask, | 
| 236 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 237 |  |  | &     snowprecip_lon0, snowprecip_lon_inc, | 
| 238 |  |  | &     snowprecip_lat0, snowprecip_lat_inc, | 
| 239 |  |  | &     snowprecip_nlon, snowprecip_nlat, xC, yC, interp_method, | 
| 240 |  |  | #endif | 
| 241 |  |  | &     mytime, myiter, mythid ) | 
| 242 |  |  |  | 
| 243 |  |  | #endif /* ALLOW_ATM_TEMP */ | 
| 244 |  |  |  | 
| 245 |  |  | #if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING) | 
| 246 |  |  | c     Net short wave radiative flux. | 
| 247 |  |  | call exf_set_gen  ( | 
| 248 |  |  | &     swfluxfile, swfluxstartdate, swfluxperiod, | 
| 249 |  |  | &     exf_inscal_swflux, | 
| 250 |  |  | &     swflux_exfremo_intercept, swflux_exfremo_slope, | 
| 251 |  |  | &     swflux, swflux0, swflux1, swfluxmask, | 
| 252 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 253 |  |  | &     swflux_lon0, swflux_lon_inc, swflux_lat0, swflux_lat_inc, | 
| 254 |  |  | &     swflux_nlon, swflux_nlat, xC, yC, interp_method, | 
| 255 |  |  | #endif | 
| 256 |  |  | &     mytime, myiter, mythid ) | 
| 257 |  |  | #endif | 
| 258 |  |  |  | 
| 259 |  |  | #ifdef EXF_READ_EVAP | 
| 260 |  |  | c     Evaporation | 
| 261 |  |  | call exf_set_gen  ( | 
| 262 |  |  | &     evapfile, evapstartdate, evapperiod, | 
| 263 |  |  | &     exf_inscal_evap, | 
| 264 |  |  | &     evap_exfremo_intercept, evap_exfremo_slope, | 
| 265 |  |  | &     evap, evap0, evap1, evapmask, | 
| 266 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 267 |  |  | &     evap_lon0, evap_lon_inc, evap_lat0, evap_lat_inc, | 
| 268 |  |  | &     evap_nlon, evap_nlat, xC, yC, interp_method, | 
| 269 |  |  | #endif | 
| 270 |  |  | &     mytime, myiter, mythid ) | 
| 271 |  |  | #endif | 
| 272 |  |  |  | 
| 273 |  |  | #ifdef ALLOW_DOWNWARD_RADIATION | 
| 274 |  |  |  | 
| 275 |  |  | c     Downward shortwave radiation. | 
| 276 |  |  | call exf_set_gen  ( | 
| 277 |  |  | &     swdownfile, swdownstartdate, swdownperiod, | 
| 278 |  |  | &     exf_inscal_swdown, | 
| 279 |  |  | &     swdown_exfremo_intercept, swdown_exfremo_slope, | 
| 280 |  |  | &     swdown, swdown0, swdown1, swdownmask, | 
| 281 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 282 |  |  | &     swdown_lon0, swdown_lon_inc, swdown_lat0, swdown_lat_inc, | 
| 283 |  |  | &     swdown_nlon, swdown_nlat, xC, yC, interp_method, | 
| 284 |  |  | #endif | 
| 285 |  |  | &     mytime, myiter, mythid ) | 
| 286 |  |  |  | 
| 287 |  |  | c     Downward longwave radiation. | 
| 288 |  |  | call exf_set_gen  ( | 
| 289 |  |  | &     lwdownfile, lwdownstartdate, lwdownperiod, | 
| 290 |  |  | &     exf_inscal_lwdown, | 
| 291 |  |  | &     lwdown_exfremo_intercept, lwdown_exfremo_slope, | 
| 292 |  |  | &     lwdown, lwdown0, lwdown1, lwdownmask, | 
| 293 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 294 |  |  | &     lwdown_lon0, lwdown_lon_inc, lwdown_lat0, lwdown_lat_inc, | 
| 295 |  |  | &     lwdown_nlon, lwdown_nlat, xC, yC, interp_method, | 
| 296 |  |  | #endif | 
| 297 |  |  | &     mytime, myiter, mythid ) | 
| 298 |  |  |  | 
| 299 |  |  | #endif | 
| 300 |  |  |  | 
| 301 |  |  | #ifdef ATMOSPHERIC_LOADING | 
| 302 |  |  | c     Atmos. pressure forcing | 
| 303 |  |  | call exf_set_gen  ( | 
| 304 |  |  | &     apressurefile, apressurestartdate, apressureperiod, | 
| 305 |  |  | &     exf_inscal_apressure, | 
| 306 |  |  | &     apressure_exfremo_intercept, apressure_exfremo_slope, | 
| 307 |  |  | &     apressure, apressure0, apressure1, apressuremask, | 
| 308 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 309 |  |  | &     apressure_lon0, apressure_lon_inc, apressure_lat0, | 
| 310 |  |  | &     apressure_lat_inc, apressure_nlon, apressure_nlat, xC, yC, | 
| 311 |  |  | &     interp_method, | 
| 312 |  |  | #endif | 
| 313 |  |  | &     mytime, myiter, mythid ) | 
| 314 |  |  | #endif | 
| 315 |  |  |  | 
| 316 |  |  | #ifdef ALLOW_ICE_AREAMASK | 
| 317 |  |  | c     fractional ice-covered area MASK | 
| 318 |  |  | call exf_set_gen  ( | 
| 319 |  |  | &     areamaskfile, areamaskstartdate, areamaskperiod, | 
| 320 |  |  | &     exf_inscal_areamask, | 
| 321 |  |  | &     areamask_exfremo_intercept, areamask_exfremo_slope, | 
| 322 |  |  | &     areamask, areamask0, areamask1, areamaskmask, | 
| 323 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 324 |  |  | &     areamask_lon0, areamask_lon_inc, areamask_lat0, | 
| 325 |  |  | &     areamask_lat_inc, areamask_nlon, areamask_nlat, xC, yC, | 
| 326 |  |  | &     interp_method, | 
| 327 |  |  | #endif | 
| 328 |  |  | &     mytime, myiter, mythid ) | 
| 329 |  |  | #endif | 
| 330 |  |  |  | 
| 331 |  |  | #ifdef ALLOW_RUNOFF | 
| 332 |  |  | c     Runoff | 
| 333 |  |  | #ifdef USE_NO_INTERP_RUNOFF | 
| 334 |  |  | call exf_set_runoff  ( | 
| 335 |  |  | &     runofffile, runoffstartdate, runoffperiod, | 
| 336 |  |  | &     exf_inscal_runoff, | 
| 337 |  |  | &     runoff_exfremo_intercept, runoff_exfremo_slope, | 
| 338 |  |  | &     runoff, runoff0, runoff1, runoffmask, | 
| 339 |  |  | &     mytime, myiter, mythid ) | 
| 340 |  |  | #else /* ndef USE_NO_INTERP_RUNOFF */ | 
| 341 |  |  | call exf_set_gen  ( | 
| 342 |  |  | &     runofffile, runoffstartdate, runoffperiod, | 
| 343 |  |  | &     exf_inscal_runoff, | 
| 344 |  |  | &     runoff_exfremo_intercept, runoff_exfremo_slope, | 
| 345 |  |  | &     runoff, runoff0, runoff1, runoffmask, | 
| 346 |  |  | #ifdef USE_EXF_INTERPOLATION | 
| 347 |  |  | &     runoff_lon0, runoff_lon_inc, runoff_lat0, | 
| 348 |  |  | &     runoff_lat_inc, runoff_nlon, runoff_nlat, xC, yC, | 
| 349 |  |  | &     interp_method, | 
| 350 |  |  | #endif | 
| 351 |  |  | &     mytime, myiter, mythid ) | 
| 352 |  |  | #endif /* def USE_NO_INTERP_RUNOFF */ | 
| 353 |  |  | #endif | 
| 354 |  |  |  | 
| 355 |  |  | c-- Control variables for atmos. state | 
| 356 |  |  |  | 
| 357 |  |  | #ifdef ALLOW_ATEMP_CONTROL | 
| 358 |  |  | call ctrl_get_gen ( | 
| 359 |  |  | &     xx_atemp_file, xx_atempstartdate, xx_atempperiod, | 
| 360 |  |  | &     maskc, atemp, xx_atemp0, xx_atemp1, xx_atemp_dummy, | 
| 361 |  |  | &     xx_atemp_remo_intercept, xx_atemp_remo_slope, | 
| 362 |  |  | &     mytime, myiter, mythid ) | 
| 363 |  |  | #endif | 
| 364 |  |  |  | 
| 365 |  |  | #ifdef ALLOW_AQH_CONTROL | 
| 366 |  |  | call ctrl_get_gen ( | 
| 367 |  |  | &     xx_aqh_file, xx_aqhstartdate, xx_aqhperiod, | 
| 368 |  |  | &     maskc, aqh, xx_aqh0, xx_aqh1, xx_aqh_dummy, | 
| 369 |  |  | &     xx_aqh_remo_intercept, xx_aqh_remo_slope, | 
| 370 |  |  | &     mytime, myiter, mythid ) | 
| 371 |  |  | #endif | 
| 372 |  |  |  | 
| 373 |  |  | #ifdef ALLOW_PRECIP_CONTROL | 
| 374 |  |  | call ctrl_get_gen ( | 
| 375 |  |  | &     xx_precip_file, xx_precipstartdate, xx_precipperiod, | 
| 376 |  |  | &     maskc, precip, xx_precip0, xx_precip1, xx_precip_dummy, | 
| 377 |  |  | &     xx_precip_remo_intercept, xx_precip_remo_slope, | 
| 378 |  |  | &     mytime, myiter, mythid ) | 
| 379 |  |  | #endif | 
| 380 |  |  |  | 
| 381 |  |  | #ifdef ALLOW_SWFLUX_CONTROL | 
| 382 |  |  | call ctrl_get_gen ( | 
| 383 |  |  | &     xx_swflux_file, xx_swfluxstartdate, xx_swfluxperiod, | 
| 384 |  |  | &     maskc, swflux, xx_swflux0, xx_swflux1, xx_swflux_dummy, | 
| 385 |  |  | &     xx_swflux_remo_intercept, xx_swflux_remo_slope, | 
| 386 |  |  | &     mytime, myiter, mythid ) | 
| 387 |  |  | #endif | 
| 388 |  |  |  | 
| 389 |  |  | #ifdef ALLOW_SWDOWN_CONTROL | 
| 390 |  |  | call ctrl_get_gen ( | 
| 391 |  |  | &     xx_swdown_file, xx_swdownstartdate, xx_swdownperiod, | 
| 392 |  |  | &     maskc, swdown, xx_swdown0, xx_swdown1, xx_swdown_dummy, | 
| 393 |  |  | &     xx_swdown_remo_intercept, xx_swdown_remo_slope, | 
| 394 |  |  | &     mytime, myiter, mythid ) | 
| 395 |  |  | #endif | 
| 396 |  |  |  | 
| 397 |  |  | #ifdef ALLOW_LWFLUX_CONTROL | 
| 398 |  |  | call ctrl_get_gen ( | 
| 399 |  |  | &     xx_lwflux_file, xx_lwfluxstartdate, xx_lwfluxperiod, | 
| 400 |  |  | &     maskc, lwflux, xx_lwflux0, xx_lwflux1, xx_lwflux_dummy, | 
| 401 |  |  | &     xx_lwflux_remo_intercept, xx_lwflux_remo_slope, | 
| 402 |  |  | &     mytime, myiter, mythid ) | 
| 403 |  |  | #endif | 
| 404 |  |  |  | 
| 405 |  |  | #ifdef ALLOW_LWDOWN_CONTROL | 
| 406 |  |  | call ctrl_get_gen ( | 
| 407 |  |  | &     xx_lwdown_file, xx_lwdownstartdate, xx_lwdownperiod, | 
| 408 |  |  | &     maskc, lwdown, xx_lwdown0, xx_lwdown1, xx_lwdown_dummy, | 
| 409 |  |  | &     xx_lwdown_remo_intercept, xx_lwdown_remo_slope, | 
| 410 |  |  | &     mytime, myiter, mythid ) | 
| 411 |  |  | #endif | 
| 412 |  |  |  | 
| 413 |  |  | #ifdef ALLOW_EVAP_CONTROL | 
| 414 |  |  | call ctrl_get_gen ( | 
| 415 |  |  | &     xx_evap_file, xx_evapstartdate, xx_evapperiod, | 
| 416 |  |  | &     maskc, evap, xx_evap0, xx_evap1, xx_evap_dummy, | 
| 417 |  |  | &     xx_evap_remo_intercept, xx_evap_remo_slope, | 
| 418 |  |  | &     mytime, myiter, mythid ) | 
| 419 |  |  | #endif | 
| 420 |  |  |  | 
| 421 |  |  | #ifdef ALLOW_SNOWPRECIP_CONTROL | 
| 422 |  |  | call ctrl_get_gen ( | 
| 423 |  |  | &     xx_snowprecip_file, xx_snowprecipstartdate, | 
| 424 |  |  | &     xx_snowprecipperiod, | 
| 425 |  |  | &     maskc, snowprecip, xx_snowprecip0, xx_snowprecip1, | 
| 426 |  |  | &     xx_snowprecip_dummy, | 
| 427 |  |  | &     xx_snowprecip_remo_intercept, xx_snowprecip_remo_slope, | 
| 428 |  |  | &     mytime, myiter, mythid ) | 
| 429 |  |  | #endif | 
| 430 |  |  |  | 
| 431 |  |  | #ifdef ALLOW_APRESSURE_CONTROL | 
| 432 |  |  | call ctrl_get_gen ( | 
| 433 |  |  | &     xx_apressure_file, xx_apressurestartdate, | 
| 434 |  |  | &     xx_apressureperiod, | 
| 435 |  |  | &     maskc, apressure, xx_apressure0, xx_apressure1, | 
| 436 |  |  | &     xx_apressure_dummy, | 
| 437 |  |  | &     xx_apressure_remo_intercept, xx_apressure_remo_slope, | 
| 438 |  |  | &     mytime, myiter, mythid ) | 
| 439 |  |  | #endif | 
| 440 |  |  |  | 
| 441 |  |  | #ifdef ALLOW_UWIND_CONTROL | 
| 442 |  |  | call ctrl_get_gen ( | 
| 443 |  |  | &     xx_uwind_file, xx_uwindstartdate, xx_uwindperiod, | 
| 444 |  |  | &     maskc, uwind, xx_uwind0, xx_uwind1, xx_uwind_dummy, | 
| 445 |  |  | &     xx_uwind_remo_intercept, xx_uwind_remo_slope, | 
| 446 |  |  | &     mytime, myiter, mythid ) | 
| 447 |  |  | #endif /* ALLOW_UWIND_CONTROL */ | 
| 448 |  |  |  | 
| 449 |  |  | #ifdef ALLOW_VWIND_CONTROL | 
| 450 |  |  | call ctrl_get_gen ( | 
| 451 |  |  | &     xx_vwind_file, xx_vwindstartdate, xx_vwindperiod, | 
| 452 |  |  | &     maskc, vwind, xx_vwind0, xx_vwind1, xx_vwind_dummy, | 
| 453 |  |  | &     xx_vwind_remo_intercept, xx_vwind_remo_slope, | 
| 454 |  |  | &     mytime, myiter, mythid ) | 
| 455 |  |  | #endif /* ALLOW_VWIND_CONTROL */ | 
| 456 |  |  |  | 
| 457 |  |  | cdm transferred from exf_init_runoff.F | 
| 458 |  |  | cdm functionality needs to be checked before turning on | 
| 459 |  |  | cdm #ifdef ALLOW_RUNOFF_CONTROL | 
| 460 |  |  | cdm       call ctrl_get_gen ( | 
| 461 |  |  | cdm      &     xx_runoff_file, xx_runoffstartdate, xx_runoffperiod, | 
| 462 |  |  | cdm      &     maskc, runoff, xx_runoff0, xx_runoff1, xx_runoff_dummy, | 
| 463 |  |  | cdm      &     xx_runoff_remo_intercept, xx_runoff_remo_slope, | 
| 464 |  |  | cdm      &     0., 0., mythid ) | 
| 465 |  |  | cdm #endif | 
| 466 |  |  |  | 
| 467 |  |  | end |