File indexing completed on 2025-11-15 13:23:47 UTC
view on githubraw file Latest commit b7411f1a on 2025-11-06 19:05:26 UTC
01070dbc48 Patr*0001 #include "PACKAGES_CONFIG.h"
0002 #include "CPP_OPTIONS.h"
429468f71e Patr*0003 #ifdef ALLOW_OPENAD
0004 # include "OPENAD_OPTIONS.h"
0005 #endif
c10ffac493 Jean*0006
0007
0008
01070dbc48 Patr*0009 #ifdef ALLOW_GENERIC_ADVDIFF
0010 # include "GAD_OPTIONS.h"
0011 #endif
1dc3e353c5 Jean*0012 #ifdef ALLOW_GGL90
0013 # include "GGL90_OPTIONS.h"
0014 #endif
01070dbc48 Patr*0015 #ifdef ALLOW_GMREDI
0016 # include "GMREDI_OPTIONS.h"
0017 #endif
1dc3e353c5 Jean*0018 #ifdef ALLOW_OBCS
0019 # include "OBCS_OPTIONS.h"
01070dbc48 Patr*0020 #endif
1dc3e353c5 Jean*0021 #ifdef ALLOW_SEAICE
0022 # include "SEAICE_OPTIONS.h"
0023 #endif
0024 #ifdef ALLOW_GCHEM
0025 # include "GCHEM_OPTIONS.h"
0026 #endif
0027 #ifdef ALLOW_DIC
0028 # include "DIC_OPTIONS.h"
01070dbc48 Patr*0029 #endif
0030 #ifdef ALLOW_EXF
0031 # include "EXF_OPTIONS.h"
0032 #endif
1dc3e353c5 Jean*0033 #ifdef ALLOW_STREAMICE
0034 # include "STREAMICE_OPTIONS.h"
0035 #endif
c10ffac493 Jean*0036 #ifdef ALLOW_COST
0037 # include "COST_OPTIONS.h"
0038 #endif
01070dbc48 Patr*0039 #ifdef ALLOW_CTRL
0040 # include "CTRL_OPTIONS.h"
0041 #endif
30c7aa4d63 Gael*0042
0043
0044
b4daa24319 Shre*0045 #ifdef ALLOW_TAPENADE
0046 # ifdef ALLOW_SALT_PLUME
0047 # include "SALT_PLUME_OPTIONS.h"
0048 # endif
0049 #ifdef ALLOW_ECCO
0050 # include "ECCO_OPTIONS.h"
0051 #endif
0052
0053
0054
0055 #endif
0056 #ifdef ALLOW_BLING
0057 # include "BLING_OPTIONS.h"
0058 #endif
01070dbc48 Patr*0059
0060
0061
e5d0e61ee8 Patr*0062 SUBROUTINE MAIN_DO_LOOP( iloop, myTime, myIter, myThid )
01070dbc48 Patr*0063
7855a13227 Mart*0064
01070dbc48 Patr*0065
7855a13227 Mart*0066
0067
01070dbc48 Patr*0068
7855a13227 Mart*0069
0070
0071
0072
0073
01070dbc48 Patr*0074
0075
0076
0077 IMPLICIT NONE
0078
0079 #include "SIZE.h"
0080 #include "EEPARAMS.h"
0081 #include "PARAMS.h"
0082
0083
b4daa24319 Shre*0084 #if (defined ALLOW_OPENAD || defined ALLOW_TAPENADE)
31ec373cce Jean*0085
01070dbc48 Patr*0086 # ifdef ALLOW_CTRL
31ec373cce Jean*0087 # include "CTRL_SIZE.h"
4d72283393 Mart*0088 # include "CTRL.h"
edcd27be69 Mart*0089 # include "CTRL_DUMMY.h"
31ec373cce Jean*0090 # include "CTRL_GENARR.h"
4948b10fac Gael*0091 # include "CTRL_OBCS.h"
01070dbc48 Patr*0092 # endif
0093 # ifdef ALLOW_COST
0094 # include "cost.h"
0095 # endif
0096
31ec373cce Jean*0097 # ifdef ALLOW_PTRACERS
0098 # include "PTRACERS_SIZE.h"
0099 # include "PTRACERS_FIELDS.h"
0100 # include "PTRACERS_START.h"
0101 # endif
18bb8f81a8 Patr*0102 # ifdef ALLOW_GCHEM
1dc3e353c5 Jean*0103 # include "GCHEM_SIZE.h"
18bb8f81a8 Patr*0104 # include "GCHEM_FIELDS.h"
0105 # endif
0106 # ifdef ALLOW_CFC
0107 # include "CFC.h"
0108 # endif
0109 # ifdef ALLOW_DIC
0110 # include "DIC_VARS.h"
0111 # include "DIC_LOAD.h"
0112 # include "DIC_ATMOS.h"
0113 # include "DIC_CTRL.h"
0114 # include "DIC_COST.h"
0115 # endif
8569d7fc09 Patr*0116 # ifdef ALLOW_OBCS
0117 # include "OBCS_PARAMS.h"
0118 # include "OBCS_FIELDS.h"
0119 # include "OBCS_SEAICE.h"
0120 # ifdef ALLOW_PTRACERS
0121 # include "OBCS_PTRACERS.h"
18bb8f81a8 Patr*0122 # endif
8569d7fc09 Patr*0123 # endif
0124 # ifdef ALLOW_SHELFICE
0125 # include "SHELFICE.h"
0126 # include "SHELFICE_COST.h"
0127 # endif
0128 # ifdef ALLOW_STREAMICE
0129 # include "STREAMICE.h"
0130 # include "STREAMICE_ADV.h"
0131 # include "STREAMICE_BDRY.h"
0132 # include "STREAMICE_CG.h"
0133 # endif
18bb8f81a8 Patr*0134
b4daa24319 Shre*0135 #endif /* ALLOW_OPENAD or ALLOW_TAPENADE */
0136
0137 #ifdef ALLOW_TAPENADE
0138 # ifdef ALLOW_EXF
0139 # include "EXF_PARAM.h"
0140 # include "EXF_INTERP_SIZE.h"
0141 # include "EXF_INTERP_PARAM.h"
0142 # include "EXF_FIELDS.h"
0143 # endif
0144 # ifdef ALLOW_CD_CODE
0145 # include "CD_CODE_VARS.h"
0146 # endif
0147 # ifdef ALLOW_GMREDI
0148 # include "GMREDI.h"
0149 # endif
0150 # include "FFIELDS.h"
0151 # include "DYNVARS.h"
0152 # include "SURFACE.h"
0153 # include "GRID.h"
0154 # ifdef ALLOW_SEAICE
0155 # include "SEAICE_SIZE.h"
0156 # include "SEAICE.h"
0157 # endif
0158 # ifdef ALLOW_KPP
0159 # include "KPP.h"
0160
0161 # endif
0162 # ifdef ALLOW_DOWN_SLOPE
0163 # include "DWNSLP_SIZE.h"
0164 # include "DWNSLP_VARS.h"
0165 # endif
0166 # ifdef ALLOW_THSICE
0167 # include "THSICE_VARS.h"
0168 # endif
0169 # ifdef ALLOW_SALT_PLUME
0170 # include "SALT_PLUME.h"
0171 # endif
0172 # ifdef ALLOW_ECCO
0173 # include "ECCO_SIZE.h"
0174 # include "ECCO.h"
0175 # endif
0176 # ifdef ALLOW_BLING
0177 # include "BLING_VARS.h"
0178 # include "BLING_LOAD.h"
0179 # endif
0180 #endif /* ALLOW_TAPENADE */
0181
01070dbc48 Patr*0182
0183
0184
0185
0186
0187
7855a13227 Mart*0188 INTEGER iloop
01070dbc48 Patr*0189 _RL myTime
0190 INTEGER myIter
0191 INTEGER myThid
0192
0193
0194
0195
0196 #ifdef ALLOW_DEBUG
0197 IF (debugMode) CALL DEBUG_ENTER('MAIN_DO_LOOP',myThid)
0198 #endif
0199
c10ffac493 Jean*0200 #ifdef ALLOW_OPENAD
d5885b3057 Jean*0201
0202
429468f71e Patr*0203 # ifdef ALLOW_OPENAD_DIVA
6e6f314aa7 Patr*0204 DO iloop = 1, nTimeSteps_l2
429468f71e Patr*0205 # else
b6f3d01b24 Jean*0206 DO iloop = 1, nTimeSteps
429468f71e Patr*0207 # endif
0208 #endif /* ALLOW_OPENAD */
6e6f314aa7 Patr*0209
01070dbc48 Patr*0210 #ifdef ALLOW_DEBUG
7855a13227 Mart*0211 IF (debugMode) CALL DEBUG_CALL('FORWARD_STEP',myThid)
01070dbc48 Patr*0212 #endif
0213
6e6f314aa7 Patr*0214 #ifndef ALLOW_OPENAD
429468f71e Patr*0215 # ifdef ALLOW_ATM2D
22b72941c7 Jean*0216 CALL TIMER_START('FORWARD_STEP_ATM2D [MAIN_DO_LOOP]',myThid)
0217 CALL FORWARD_STEP_ATM2D( iloop, myTime, myIter, myThid )
0218 CALL TIMER_STOP ('FORWARD_STEP_ATM2D [MAIN_DO_LOOP]',myThid)
429468f71e Patr*0219 # else
22b72941c7 Jean*0220 CALL TIMER_START('FORWARD_STEP [MAIN_DO_LOOP]',myThid)
0221 CALL FORWARD_STEP( iloop, myTime, myIter, myThid )
0222 CALL TIMER_STOP ('FORWARD_STEP [MAIN_DO_LOOP]',myThid)
429468f71e Patr*0223 # endif
7855a13227 Mart*0224 #else /* ALLOW_OPENAD */
429468f71e Patr*0225 # ifdef ALLOW_OPENAD_DIVA
7855a13227 Mart*0226 CALL TIMER_START('INNER_DO_LOOP [MAIN_DO_LOOP]',myThid)
0227 nTimeSteps_l2 = 2
0228 CALL INNER_DO_LOOP( iloop, myTime, myIter, myThid )
0229 CALL TIMER_STOP ('INNER_DO_LOOP [MAIN_DO_LOOP]',myThid)
429468f71e Patr*0230 # else
7855a13227 Mart*0231 CALL TIMER_START('FORWARD_STEP [MAIN_DO_LOOP]',myThid)
0232 nTimeSteps_l2 = 2
0233 CALL FORWARD_STEP( iloop, myTime, myIter, myThid )
0234 CALL TIMER_STOP ('FORWARD_STEP [MAIN_DO_LOOP]',myThid)
429468f71e Patr*0235 # endif
7855a13227 Mart*0236 #endif /* ALLOW_OPENAD */
01070dbc48 Patr*0237
c10ffac493 Jean*0238 #ifdef ALLOW_OPENAD
eca630dafc Jean*0239 ENDDO
d5885b3057 Jean*0240
0241
429468f71e Patr*0242 #endif /* ALLOW_OPENAD */
01070dbc48 Patr*0243
0244 #ifdef ALLOW_DEBUG
0245 IF (debugMode) CALL DEBUG_LEAVE('MAIN_DO_LOOP',myThid)
0246 #endif
0247
0248 RETURN
0249 END