File indexing completed on 2025-09-13 12:07:40 UTC
view on githubraw file Latest commit 11d365ac on 2025-06-05 16:41:12 UTC
8fbfd1f382 Oliv*0001 #include "DARWIN_OPTIONS.h"
0002 #include "EXF_OPTIONS.h"
0003
0004
0005
0006
0007
0008 SUBROUTINE DARWIN_EXF_LOAD( mytime, myiter, mythid )
0009
0010
0011
0012
0013
0014 IMPLICIT NONE
0015 #include "SIZE.h"
0016 #include "GRID.h"
0017 #include "EEPARAMS.h"
0018 #include "PARAMS.h"
0019 #ifdef ALLOW_EXF
d9e107d180 Oliv*0020 #include "EXF_INTERP_SIZE.h"
8fbfd1f382 Oliv*0021 #endif
0022 #include "DARWIN_SIZE.h"
0023 #include "DARWIN_EXF_PARAMS.h"
0024 #include "DARWIN_EXF_FIELDS.h"
0025
0026
0027 _RL mytime
0028 integer myiter
0029 integer mythid
0030
0031
0032 #ifdef ALLOW_DARWIN
0033 #ifdef ALLOW_EXF
0034
0035
0036 #ifdef ALLOW_RADTRANS
0037 INTEGER l
0038 #endif
0039
0040
0041
0042 IF (.NOT.(darwin_loadFieldsEarly.AND.myiter.EQ.niter0)) THEN
0043
6ed0cf4850 Oliv*0044
fecf0f6104 Oliv*0045 call exf_set_fld(
0046 & 'PAR', PARfile, PARmask,
0047 & PARStartTime, PARperiod, PARRepCycle,
8fbfd1f382 Oliv*0048 & darwin_inscal_PAR,
0049 & PAR_exfremo_intercept, PAR_exfremo_slope,
fecf0f6104 Oliv*0050 & surfPAR, PAR0, PAR1,
8fbfd1f382 Oliv*0051 #ifdef USE_EXF_INTERPOLATION
0052 & PAR_lon0, PAR_lon_inc,
0053 & PAR_lat0, PAR_lat_inc,
6ed0cf4850 Oliv*0054 & PAR_nlon, PAR_nlat, xC, yC,
0055 & PAR_interpMethod,
8fbfd1f382 Oliv*0056 #endif
0057 & mytime, myiter, mythid )
0058
fecf0f6104 Oliv*0059 call exf_set_fld(
0060 & 'iron', ironfile, ironmask,
0061 & ironStartTime, ironperiod, ironRepCycle,
8fbfd1f382 Oliv*0062 & darwin_inscal_iron,
0063 & iron_exfremo_intercept, iron_exfremo_slope,
fecf0f6104 Oliv*0064 & inputFe, iron0, iron1,
8fbfd1f382 Oliv*0065 #ifdef USE_EXF_INTERPOLATION
0066 & iron_lon0, iron_lon_inc,
0067 & iron_lat0, iron_lat_inc,
6ed0cf4850 Oliv*0068 & iron_nlon, iron_nlat, xC, yC,
0069 & iron_interpMethod,
8fbfd1f382 Oliv*0070 #endif
0071 & mytime, myiter, mythid )
0072
fecf0f6104 Oliv*0073 call exf_set_fld(
0074 & 'ice', icefile, icemask,
0075 & iceStartTime, iceperiod, iceRepCycle,
8fbfd1f382 Oliv*0076 & darwin_inscal_ice,
0077 & ice_exfremo_intercept, ice_exfremo_slope,
fecf0f6104 Oliv*0078 & iceFrac, ice0, ice1,
8fbfd1f382 Oliv*0079 #ifdef USE_EXF_INTERPOLATION
0080 & ice_lon0, ice_lon_inc,
0081 & ice_lat0, ice_lat_inc,
6ed0cf4850 Oliv*0082 & ice_nlon, ice_nlat, xC, yC,
0083 & ice_interpMethod,
8fbfd1f382 Oliv*0084 #endif
0085 & mytime, myiter, mythid )
0086
fecf0f6104 Oliv*0087 call exf_set_fld(
0088 & 'wind', windfile, windmask,
0089 & windStartTime, windperiod, windRepCycle,
8fbfd1f382 Oliv*0090 & darwin_inscal_wind,
0091 & wind_exfremo_intercept, wind_exfremo_slope,
fecf0f6104 Oliv*0092 & windSpeed, wind0, wind1,
8fbfd1f382 Oliv*0093 #ifdef USE_EXF_INTERPOLATION
0094 & wind_lon0, wind_lon_inc,
0095 & wind_lat0, wind_lat_inc,
6ed0cf4850 Oliv*0096 & wind_nlon, wind_nlat, xC, yC,
0097 & wind_interpMethod,
8fbfd1f382 Oliv*0098 #endif
0099 & mytime, myiter, mythid )
0100
fecf0f6104 Oliv*0101 call exf_set_fld(
0102 & 'pCO2', pCO2file, pCO2mask,
0103 & pCO2StartTime, pCO2period, pCO2RepCycle,
8fbfd1f382 Oliv*0104 & darwin_inscal_pCO2,
0105 & pCO2_exfremo_intercept, pCO2_exfremo_slope,
fecf0f6104 Oliv*0106 & atmospCO2, pCO20, pCO21,
8fbfd1f382 Oliv*0107 #ifdef USE_EXF_INTERPOLATION
0108 & pCO2_lon0, pCO2_lon_inc,
0109 & pCO2_lat0, pCO2_lat_inc,
6ed0cf4850 Oliv*0110 & pCO2_nlon, pCO2_nlat, xC, yC,
0111 & pCO2_interpMethod,
0112 #endif
0113 & mytime, myiter, mythid )
0114
0115 call exf_set_fld(
0116 & 'ventHe3', ventHe3file, ventHe3mask,
0117 & ventHe3StartTime, ventHe3period, ventHe3RepCycle,
0118 & darwin_inscal_ventHe3,
0119 & ventHe3_exfremo_intercept, ventHe3_exfremo_slope,
0120 & ventHe3, ventHe30, ventHe31,
0121 #ifdef USE_EXF_INTERPOLATION
0122 & ventHe3_lon0, ventHe3_lon_inc,
0123 & ventHe3_lat0, ventHe3_lat_inc,
0124 & ventHe3_nlon, ventHe3_nlat, xC, yC,
0125 & ventHe3_interpMethod,
8fbfd1f382 Oliv*0126 #endif
0127 & mytime, myiter, mythid )
0128
e79020cc6e Oliv*0129 call exf_set_fld(
0130 & 'DOCrunoff', DOCrunofffile, DOCrunoffmask,
0131 & DOCrunoffStartTime, DOCrunoffperiod, DOCrunoffRepCycle,
0132 & darwin_inscal_DOCrunoff,
0133 & DOCrunoff_exfremo_intercept, DOCrunoff_exfremo_slope,
0134 & DOCrunoff, DOCrunoff0, DOCrunoff1,
0135 #ifdef USE_EXF_INTERPOLATION
0136 & DOCrunoff_lon0, DOCrunoff_lon_inc,
0137 & DOCrunoff_lat0, DOCrunoff_lat_inc,
0138 & DOCrunoff_nlon, DOCrunoff_nlat, xC, yC,
0139 & DOCrunoff_interpMethod,
0140 #endif
0141 & mytime, myiter, mythid )
0142
0143 call exf_set_fld(
0144 & 'DONrunoff', DONrunofffile, DONrunoffmask,
0145 & DONrunoffStartTime, DONrunoffperiod, DONrunoffRepCycle,
0146 & darwin_inscal_DONrunoff,
0147 & DONrunoff_exfremo_intercept, DONrunoff_exfremo_slope,
0148 & DONrunoff, DONrunoff0, DONrunoff1,
0149 #ifdef USE_EXF_INTERPOLATION
0150 & DONrunoff_lon0, DONrunoff_lon_inc,
0151 & DONrunoff_lat0, DONrunoff_lat_inc,
0152 & DONrunoff_nlon, DONrunoff_nlat, xC, yC,
0153 & DONrunoff_interpMethod,
0154 #endif
0155 & mytime, myiter, mythid )
0156
0157 call exf_set_fld(
0158 & 'DOPrunoff', DOPrunofffile, DOPrunoffmask,
0159 & DOPrunoffStartTime, DOPrunoffperiod, DOPrunoffRepCycle,
0160 & darwin_inscal_DOPrunoff,
0161 & DOPrunoff_exfremo_intercept, DOPrunoff_exfremo_slope,
0162 & DOPrunoff, DOPrunoff0, DOPrunoff1,
0163 #ifdef USE_EXF_INTERPOLATION
0164 & DOPrunoff_lon0, DOPrunoff_lon_inc,
0165 & DOPrunoff_lat0, DOPrunoff_lat_inc,
0166 & DOPrunoff_nlon, DOPrunoff_nlat, xC, yC,
0167 & DOPrunoff_interpMethod,
0168 #endif
0169 & mytime, myiter, mythid )
0170
0171 call exf_set_fld(
0172 & 'DINrunoff', DINrunofffile, DINrunoffmask,
0173 & DINrunoffStartTime, DINrunoffperiod, DINrunoffRepCycle,
0174 & darwin_inscal_DINrunoff,
0175 & DINrunoff_exfremo_intercept, DINrunoff_exfremo_slope,
0176 & DINrunoff, DINrunoff0, DINrunoff1,
0177 #ifdef USE_EXF_INTERPOLATION
0178 & DINrunoff_lon0, DINrunoff_lon_inc,
0179 & DINrunoff_lat0, DINrunoff_lat_inc,
0180 & DINrunoff_nlon, DINrunoff_nlat, xC, yC,
0181 & DINrunoff_interpMethod,
0182 #endif
0183 & mytime, myiter, mythid )
0184
11d365acff Oliv*0185 call exf_set_fld(
0186 & 'NO3runoff', NO3runofffile, NO3runoffmask,
0187 & NO3runoffStartTime, NO3runoffperiod, NO3runoffRepCycle,
0188 & darwin_inscal_NO3runoff,
0189 & NO3runoff_exfremo_intercept, NO3runoff_exfremo_slope,
0190 & NO3runoff, NO3runoff0, NO3runoff1,
0191 #ifdef USE_EXF_INTERPOLATION
0192 & NO3runoff_lon0, NO3runoff_lon_inc,
0193 & NO3runoff_lat0, NO3runoff_lat_inc,
0194 & NO3runoff_nlon, NO3runoff_nlat, xC, yC,
0195 & NO3runoff_interpMethod,
0196 #endif
0197 & mytime, myiter, mythid )
0198
0199 call exf_set_fld(
0200 & 'NO2runoff', NO2runofffile, NO2runoffmask,
0201 & NO2runoffStartTime, NO2runoffperiod, NO2runoffRepCycle,
0202 & darwin_inscal_NO2runoff,
0203 & NO2runoff_exfremo_intercept, NO2runoff_exfremo_slope,
0204 & NO2runoff, NO2runoff0, NO2runoff1,
0205 #ifdef USE_EXF_INTERPOLATION
0206 & NO2runoff_lon0, NO2runoff_lon_inc,
0207 & NO2runoff_lat0, NO2runoff_lat_inc,
0208 & NO2runoff_nlon, NO2runoff_nlat, xC, yC,
0209 & NO2runoff_interpMethod,
0210 #endif
0211 & mytime, myiter, mythid )
0212
0213 call exf_set_fld(
0214 & 'NH4runoff', NH4runofffile, NH4runoffmask,
0215 & NH4runoffStartTime, NH4runoffperiod, NH4runoffRepCycle,
0216 & darwin_inscal_NH4runoff,
0217 & NH4runoff_exfremo_intercept, NH4runoff_exfremo_slope,
0218 & NH4runoff, NH4runoff0, NH4runoff1,
0219 #ifdef USE_EXF_INTERPOLATION
0220 & NH4runoff_lon0, NH4runoff_lon_inc,
0221 & NH4runoff_lat0, NH4runoff_lat_inc,
0222 & NH4runoff_nlon, NH4runoff_nlat, xC, yC,
0223 & NH4runoff_interpMethod,
0224 #endif
0225 & mytime, myiter, mythid )
0226
e79020cc6e Oliv*0227 call exf_set_fld(
0228 & 'IPrunoff', IPrunofffile, IPrunoffmask,
0229 & IPrunoffStartTime, IPrunoffperiod, IPrunoffRepCycle,
0230 & darwin_inscal_IPrunoff,
0231 & IPrunoff_exfremo_intercept, IPrunoff_exfremo_slope,
0232 & IPrunoff, IPrunoff0, IPrunoff1,
0233 #ifdef USE_EXF_INTERPOLATION
0234 & IPrunoff_lon0, IPrunoff_lon_inc,
0235 & IPrunoff_lat0, IPrunoff_lat_inc,
0236 & IPrunoff_nlon, IPrunoff_nlat, xC, yC,
0237 & IPrunoff_interpMethod,
0238 #endif
0239 & mytime, myiter, mythid )
0240
0241 call exf_set_fld(
0242 & 'DSirunoff', DSirunofffile, DSirunoffmask,
0243 & DSirunoffStartTime, DSirunoffperiod, DSirunoffRepCycle,
0244 & darwin_inscal_DSirunoff,
0245 & DSirunoff_exfremo_intercept, DSirunoff_exfremo_slope,
0246 & DSirunoff, DSirunoff0, DSirunoff1,
0247 #ifdef USE_EXF_INTERPOLATION
0248 & DSirunoff_lon0, DSirunoff_lon_inc,
0249 & DSirunoff_lat0, DSirunoff_lat_inc,
0250 & DSirunoff_nlon, DSirunoff_nlat, xC, yC,
0251 & DSirunoff_interpMethod,
0252 #endif
0253 & mytime, myiter, mythid )
0254
0255 call exf_set_fld(
0256 & 'POCrunoff', POCrunofffile, POCrunoffmask,
0257 & POCrunoffStartTime, POCrunoffperiod, POCrunoffRepCycle,
0258 & darwin_inscal_POCrunoff,
0259 & POCrunoff_exfremo_intercept, POCrunoff_exfremo_slope,
0260 & POCrunoff, POCrunoff0, POCrunoff1,
0261 #ifdef USE_EXF_INTERPOLATION
0262 & POCrunoff_lon0, POCrunoff_lon_inc,
0263 & POCrunoff_lat0, POCrunoff_lat_inc,
0264 & POCrunoff_nlon, POCrunoff_nlat, xC, yC,
0265 & POCrunoff_interpMethod,
0266 #endif
0267 & mytime, myiter, mythid )
0268
0269 call exf_set_fld(
0270 & 'POPrunoff', POPrunofffile, POPrunoffmask,
0271 & POPrunoffStartTime, POPrunoffperiod, POPrunoffRepCycle,
0272 & darwin_inscal_POPrunoff,
0273 & POPrunoff_exfremo_intercept, POPrunoff_exfremo_slope,
0274 & POPrunoff, POPrunoff0, POPrunoff1,
0275 #ifdef USE_EXF_INTERPOLATION
0276 & POPrunoff_lon0, POPrunoff_lon_inc,
0277 & POPrunoff_lat0, POPrunoff_lat_inc,
0278 & POPrunoff_nlon, POPrunoff_nlat, xC, yC,
0279 & POPrunoff_interpMethod,
0280 #endif
0281 & mytime, myiter, mythid )
0282
0283 call exf_set_fld(
0284 & 'PONrunoff', PONrunofffile, PONrunoffmask,
0285 & PONrunoffStartTime, PONrunoffperiod, PONrunoffRepCycle,
0286 & darwin_inscal_PONrunoff,
0287 & PONrunoff_exfremo_intercept, PONrunoff_exfremo_slope,
0288 & PONrunoff, PONrunoff0, PONrunoff1,
0289 #ifdef USE_EXF_INTERPOLATION
0290 & PONrunoff_lon0, PONrunoff_lon_inc,
0291 & PONrunoff_lat0, PONrunoff_lat_inc,
0292 & PONrunoff_nlon, PONrunoff_nlat, xC, yC,
0293 & PONrunoff_interpMethod,
0294 #endif
0295 & mytime, myiter, mythid )
0296
0297 call exf_set_fld(
0298 & 'DICrunoff', DICrunofffile, DICrunoffmask,
0299 & DICrunoffStartTime, DICrunoffperiod, DICrunoffRepCycle,
0300 & darwin_inscal_DICrunoff,
0301 & DICrunoff_exfremo_intercept, DICrunoff_exfremo_slope,
0302 & DICrunoff, DICrunoff0, DICrunoff1,
0303 #ifdef USE_EXF_INTERPOLATION
0304 & DICrunoff_lon0, DICrunoff_lon_inc,
0305 & DICrunoff_lat0, DICrunoff_lat_inc,
0306 & DICrunoff_nlon, DICrunoff_nlat, xC, yC,
0307 & DICrunoff_interpMethod,
0308 #endif
0309 & mytime, myiter, mythid )
0310
8fbfd1f382 Oliv*0311 _EXCH_XY_RL( surfPAR, myThid )
0312 _EXCH_XY_RL( inputFe, myThid )
0313 _EXCH_XY_RL( iceFrac, myThid )
0314 _EXCH_XY_RL( windSpeed, myThid )
0315 _EXCH_XY_RL( atmospCO2, myThid )
6ed0cf4850 Oliv*0316 _EXCH_XY_RL( ventHe3, myThid )
e79020cc6e Oliv*0317 _EXCH_XY_RL( DOCrunoff, myThid )
0318 _EXCH_XY_RL( DONrunoff, myThid )
0319 _EXCH_XY_RL( DOPrunoff, myThid )
0320 _EXCH_XY_RL( DINrunoff, myThid )
11d365acff Oliv*0321 _EXCH_XY_RL( NO3runoff, myThid )
0322 _EXCH_XY_RL( NO2runoff, myThid )
0323 _EXCH_XY_RL( NH4runoff, myThid )
e79020cc6e Oliv*0324 _EXCH_XY_RL( IPrunoff, myThid )
0325 _EXCH_XY_RL( DSirunoff, myThid )
0326 _EXCH_XY_RL( POCrunoff, myThid )
0327 _EXCH_XY_RL( POPrunoff, myThid )
0328 _EXCH_XY_RL( PONrunoff, myThid )
0329 _EXCH_XY_RL( DICrunoff, myThid )
0330
8fbfd1f382 Oliv*0331 ENDIF
0332
0333 #endif /* ALLOW_EXF */
0334 #endif /* ALLOW_DARWIN */
0335
0336 RETURN
0337 END