File indexing completed on 2025-09-13 12:07:39 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
0009 SUBROUTINE DARWIN_EXF_INIT_FIXED( myThid )
0010
0011
0012
0013
0014
0015 IMPLICIT NONE
0016 #include "SIZE.h"
0017 #include "EEPARAMS.h"
0018 #include "PARAMS.h"
0019 #include "EXF_PARAM.h"
d9e107d180 Oliv*0020 #include "EXF_INTERP_SIZE.h"
8fbfd1f382 Oliv*0021 #include "DARWIN_SIZE.h"
0022 #include "DARWIN_EXF_PARAMS.h"
0023 #include "DARWIN_EXF_FIELDS.h"
0024
0025
0026 INTEGER myThid
0027
0028
0029
0030
0031
0032
0033 CHARACTER*(MAX_LEN_MBUF) msgBuf
0034 INTEGER errCount
0035
0036 #ifdef ALLOW_DARWIN
0037 #ifdef ALLOW_EXF
0038
0039 _BEGIN_MASTER( myThid )
0040 errCount = 0
0041
0042
0043 IF ( PARfile .NE. ' ' ) THEN
0044 # ifdef ALLOW_DEBUG
6ed0cf4850 Oliv*0045 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START PAR',
0046 & myThid)
8fbfd1f382 Oliv*0047 # endif
8674933af5 Oliv*0048 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0049 I 'darwin', 'PAR', PARperiod,
0050 I PARstartdate1, PARstartdate2,
0051 U PARStartTime, errCount,
0052 I myThid )
8fbfd1f382 Oliv*0053 ENDIF
0054
0055 IF ( ironfile .NE. ' ' ) THEN
0056 # ifdef ALLOW_DEBUG
6ed0cf4850 Oliv*0057 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START iron',
0058 & myThid)
8fbfd1f382 Oliv*0059 # endif
8674933af5 Oliv*0060 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0061 I 'darwin', 'iron', ironperiod,
0062 I ironstartdate1, ironstartdate2,
0063 U ironStartTime, errCount,
0064 I myThid )
8fbfd1f382 Oliv*0065 ENDIF
0066
0067 IF ( icefile .NE. ' ' ) THEN
0068 # ifdef ALLOW_DEBUG
6ed0cf4850 Oliv*0069 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START ice',
0070 & myThid)
8fbfd1f382 Oliv*0071 # endif
8674933af5 Oliv*0072 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0073 I 'darwin', 'ice', iceperiod,
0074 I icestartdate1, icestartdate2,
0075 U iceStartTime, errCount,
0076 I myThid )
8fbfd1f382 Oliv*0077 ENDIF
0078
0079 IF ( windfile .NE. ' ' ) THEN
0080 # ifdef ALLOW_DEBUG
6ed0cf4850 Oliv*0081 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START wind',
0082 & myThid)
8fbfd1f382 Oliv*0083 # endif
8674933af5 Oliv*0084 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0085 I 'darwin', 'wind', windperiod,
0086 I windstartdate1, windstartdate2,
0087 U windStartTime, errCount,
0088 I myThid )
8fbfd1f382 Oliv*0089 ENDIF
0090
0091 IF ( pCO2file .NE. ' ' ) THEN
0092 # ifdef ALLOW_DEBUG
6ed0cf4850 Oliv*0093 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START pCO2',
0094 & myThid)
0095 # endif
0096 CALL EXF_GETFFIELD_START( useExfYearlyFields,
0097 I 'darwin', 'pCO2', pCO2period,
0098 I pCO2startdate1, pCO2startdate2,
0099 U pCO2StartTime, errCount,
0100 I myThid )
0101 ENDIF
0102
0103 IF ( ventHe3file .NE. ' ' ) THEN
0104 # ifdef ALLOW_DEBUG
0105 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START ventHe3',
0106 & myThid)
8fbfd1f382 Oliv*0107 # endif
8674933af5 Oliv*0108 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0109 I 'darwin', 'ventHe3', ventHe3period,
0110 I ventHe3startdate1, ventHe3startdate2,
0111 U ventHe3StartTime, errCount,
0112 I myThid )
8fbfd1f382 Oliv*0113 ENDIF
0114
e79020cc6e Oliv*0115 IF ( DOCrunofffile .NE. ' ' ) THEN
0116 # ifdef ALLOW_DEBUG
0117 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START DOCrunoff',
0118 & myThid)
0119 # endif
0120 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0121 I 'darwin', 'DOCrunoff', DOCrunoffperiod,
0122 I DOCrunoffstartdate1, DOCrunoffstartdate2,
0123 U DOCrunoffStartTime, errCount,
0124 I myThid )
e79020cc6e Oliv*0125 ENDIF
0126
0127 IF ( DONrunofffile .NE. ' ' ) THEN
0128 # ifdef ALLOW_DEBUG
0129 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START DONrunoff',
0130 & myThid)
0131 # endif
0132 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0133 I 'darwin', 'DONrunoff', DONrunoffperiod,
0134 I DONrunoffstartdate1, DONrunoffstartdate2,
0135 U DONrunoffStartTime, errCount,
0136 I myThid )
e79020cc6e Oliv*0137 ENDIF
0138
0139 IF ( DOPrunofffile .NE. ' ' ) THEN
0140 # ifdef ALLOW_DEBUG
0141 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START DOPrunoff',
0142 & myThid)
0143 # endif
0144 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0145 I 'darwin', 'DOPrunoff', DOPrunoffperiod,
0146 I DOPrunoffstartdate1, DOPrunoffstartdate2,
0147 U DOPrunoffStartTime, errCount,
0148 I myThid )
e79020cc6e Oliv*0149 ENDIF
0150
0151 IF ( DINrunofffile .NE. ' ' ) THEN
0152 # ifdef ALLOW_DEBUG
0153 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START DINrunoff',
0154 & myThid)
0155 # endif
0156 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0157 I 'darwin', 'DINrunoff', DINrunoffperiod,
0158 I DINrunoffstartdate1, DINrunoffstartdate2,
0159 U DINrunoffStartTime, errCount,
0160 I myThid )
e79020cc6e Oliv*0161 ENDIF
0162
11d365acff Oliv*0163 IF ( NO3runofffile .NE. ' ' ) THEN
0164 # ifdef ALLOW_DEBUG
0165 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START NO3runoff',
0166 & myThid)
0167 # endif
0168 CALL EXF_GETFFIELD_START( useExfYearlyFields,
0169 I 'darwin', 'NO3runoff', NO3runoffperiod,
0170 I NO3runoffstartdate1, NO3runoffstartdate2,
0171 U NO3runoffStartTime, errCount,
0172 I myThid )
0173 ENDIF
0174
0175 IF ( NO2runofffile .NE. ' ' ) THEN
0176 # ifdef ALLOW_DEBUG
0177 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START NO2runoff',
0178 & myThid)
0179 # endif
0180 CALL EXF_GETFFIELD_START( useExfYearlyFields,
0181 I 'darwin', 'NO2runoff', NO2runoffperiod,
0182 I NO2runoffstartdate1, NO2runoffstartdate2,
0183 U NO2runoffStartTime, errCount,
0184 I myThid )
0185 ENDIF
0186
0187 IF ( NH4runofffile .NE. ' ' ) THEN
0188 # ifdef ALLOW_DEBUG
0189 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START NH4runoff',
0190 & myThid)
0191 # endif
0192 CALL EXF_GETFFIELD_START( useExfYearlyFields,
0193 I 'darwin', 'NH4runoff', NH4runoffperiod,
0194 I NH4runoffstartdate1, NH4runoffstartdate2,
0195 U NH4runoffStartTime, errCount,
0196 I myThid )
0197 ENDIF
0198
e79020cc6e Oliv*0199 IF ( IPrunofffile .NE. ' ' ) THEN
0200 # ifdef ALLOW_DEBUG
0201 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START IPrunoff',
0202 & myThid)
0203 # endif
0204 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0205 I 'darwin', 'IPrunoff', IPrunoffperiod,
0206 I IPrunoffstartdate1, IPrunoffstartdate2,
0207 U IPrunoffStartTime, errCount,
0208 I myThid )
e79020cc6e Oliv*0209 ENDIF
0210
0211 IF ( DSirunofffile .NE. ' ' ) THEN
0212 # ifdef ALLOW_DEBUG
0213 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START DSirunoff',
0214 & myThid)
0215 # endif
0216 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0217 I 'darwin', 'DSirunoff', DSirunoffperiod,
0218 I DSirunoffstartdate1, DSirunoffstartdate2,
0219 U DSirunoffStartTime, errCount,
0220 I myThid )
e79020cc6e Oliv*0221 ENDIF
0222
0223 IF ( POCrunofffile .NE. ' ' ) THEN
0224 # ifdef ALLOW_DEBUG
0225 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START POCrunoff',
0226 & myThid)
0227 # endif
0228 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0229 I 'darwin', 'POCrunoff', POCrunoffperiod,
0230 I POCrunoffstartdate1, POCrunoffstartdate2,
0231 U POCrunoffStartTime, errCount,
0232 I myThid )
e79020cc6e Oliv*0233 ENDIF
0234
0235 IF ( POPrunofffile .NE. ' ' ) THEN
0236 # ifdef ALLOW_DEBUG
0237 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START POPrunoff',
0238 & myThid)
0239 # endif
0240 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0241 I 'darwin', 'POPrunoff', POPrunoffperiod,
0242 I POPrunoffstartdate1, POPrunoffstartdate2,
0243 U POPrunoffStartTime, errCount,
0244 I myThid )
e79020cc6e Oliv*0245 ENDIF
0246
0247 IF ( PONrunofffile .NE. ' ' ) THEN
0248 # ifdef ALLOW_DEBUG
0249 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START PONrunoff',
0250 & myThid)
0251 # endif
0252 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0253 I 'darwin', 'PONrunoff', PONrunoffperiod,
0254 I PONrunoffstartdate1, PONrunoffstartdate2,
0255 U PONrunoffStartTime, errCount,
0256 I myThid )
e79020cc6e Oliv*0257 ENDIF
0258
0259 IF ( DICrunofffile .NE. ' ' ) THEN
0260 # ifdef ALLOW_DEBUG
0261 IF (debugMode) CALL DEBUG_CALL('GETFFIELD_START DICrunoff',
0262 & myThid)
0263 # endif
0264 CALL EXF_GETFFIELD_START( useExfYearlyFields,
6ed0cf4850 Oliv*0265 I 'darwin', 'DICrunoff', DICrunoffperiod,
0266 I DICrunoffstartdate1, DICrunoffstartdate2,
0267 U DICrunoffStartTime, errCount,
0268 I myThid )
e79020cc6e Oliv*0269 ENDIF
0270
8fbfd1f382 Oliv*0271 IF ( errCount.GE.1 ) THEN
0272 WRITE(msgBuf,'(A,I3,A)')
0273 & 'DARWIN_EXF_INIT_FIXED: detected', errCount,' fatal error(s)'
0274 CALL PRINT_ERROR( msgBuf, myThid )
0275 CALL ALL_PROC_DIE( 0 )
0276 STOP 'ABNORMAL END: S/R DARWIN_EXF_INIT_FIXED'
0277 ENDIF
0278
0279 _END_MASTER( myThid )
0280 _BARRIER
0281
0282 #endif /* ALLOW_EXF */
0283 #endif /* ALLOW_DARWIN */
0284
0285 RETURN
0286 END