Back to home page

MITgcm

 
 

    


File indexing completed on 2025-03-03 06:11:40 UTC

view on githubraw file Latest commit b7b61e61 on 2025-03-02 15:55:22 UTC
6e6f314aa7 Patr*0001 #include "OPENAD_OPTIONS.h"
                0002 c#ifdef ALLOW_AUTODIFF
                0003 c# include "AUTODIFF_OPTIONS.h"
                0004 c#endif
                0005 #ifdef ALLOW_OBCS
                0006 # include "OBCS_OPTIONS.h"
                0007 #endif
                0008 #ifdef ALLOW_SEAICE
                0009 # include "SEAICE_OPTIONS.h"
                0010 #endif
                0011 #ifdef ALLOW_GENERIC_ADVDIFF
                0012 # include "GAD_OPTIONS.h"
                0013 #endif
51e381e9c9 Jean*0014 #ifdef ALLOW_DIC
                0015 # include "DIC_OPTIONS.h"
                0016 #endif
6e6f314aa7 Patr*0017 #ifdef ALLOW_GMREDI
                0018 # include "GMREDI_OPTIONS.h"
                0019 #endif
                0020 #ifdef ALLOW_STREAMICE
                0021 # include "STREAMICE_OPTIONS.h"
                0022 #endif
                0023 #ifdef ALLOW_GGL90
                0024 # include "GGL90_OPTIONS.h"
                0025 #endif
                0026 #ifdef ALLOW_EXF
                0027 # include "EXF_OPTIONS.h"
                0028 #endif
                0029 #ifdef ALLOW_COST
                0030 # include "COST_OPTIONS.h"
                0031 #endif
                0032 #ifdef ALLOW_CTRL
                0033 # include "CTRL_OPTIONS.h"
                0034 #endif
                0035 c#ifdef ALLOW_ECCO
                0036 c# include "ECCO_OPTIONS.h"
                0037 c#endif
                0038 
                0039 CBOP
                0040 C     !ROUTINE: INNER_DO_LOOP
                0041 C     !INTERFACE:
                0042       SUBROUTINE INNER_DO_LOOP( iloop, myTime, myIter, myThid )
                0043 
                0044 C     !DESCRIPTION: \bv
                0045 C     *================================================================*
b7b61e618a Mart*0046 C     | SUBROUTINE INNER_DO_LOOP
                0047 C     | o Inner time-stepping "do-loop" for OPENAD_DIVA
6e6f314aa7 Patr*0048 C     *================================================================*
                0049 C     \ev
                0050 
                0051 C     !USES:
                0052       IMPLICIT NONE
                0053 C     == Global variables ==
                0054 #include "SIZE.h"
                0055 #include "EEPARAMS.h"
                0056 #include "PARAMS.h"
                0057 
b7b61e618a Mart*0058 #ifdef ALLOW_OPENAD_DIVA
                0059 C-- Header files that are included in the_main_loop.F for TAF (e.g., DYNVARS.h)
                0060 C    might be needed here (where the iloop is done) for OpenAD
6e6f314aa7 Patr*0061 
                0062 # ifdef ALLOW_CTRL
                0063 #  include "CTRL_SIZE.h"
4d72283393 Mart*0064 #  include "CTRL.h"
edcd27be69 Mart*0065 #  include "CTRL_DUMMY.h"
6e6f314aa7 Patr*0066 #  include "CTRL_GENARR.h"
                0067 #  include "CTRL_OBCS.h"
                0068 # endif
                0069 # ifdef ALLOW_COST
                0070 #  include "cost.h"
                0071 # endif
                0072 
                0073 # ifdef ALLOW_PTRACERS
                0074 #  include "PTRACERS_SIZE.h"
                0075 #  include "PTRACERS_FIELDS.h"
                0076 #  include "PTRACERS_START.h"
                0077 # endif
                0078 # ifdef ALLOW_GCHEM
                0079 #  include "GCHEM_FIELDS.h"
                0080 # endif
                0081 # ifdef ALLOW_CFC
                0082 #  include "CFC.h"
                0083 # endif
                0084 # ifdef ALLOW_DIC
                0085 #  include "DIC_VARS.h"
                0086 #  include "DIC_LOAD.h"
                0087 #  include "DIC_ATMOS.h"
                0088 #  include "DIC_CTRL.h"
                0089 #  include "DIC_COST.h"
                0090 # endif
                0091 # ifdef ALLOW_OBCS
                0092 #  include "OBCS_PARAMS.h"
                0093 #  include "OBCS_FIELDS.h"
                0094 #  include "OBCS_SEAICE.h"
                0095 #  ifdef ALLOW_PTRACERS
                0096 #   include "OBCS_PTRACERS.h"
                0097 #  endif
                0098 # endif
                0099 # ifdef ALLOW_SHELFICE
                0100 #  include "SHELFICE.h"
                0101 #  include "SHELFICE_COST.h"
                0102 # endif
                0103 # ifdef ALLOW_STREAMICE
                0104 #  include "STREAMICE.h"
                0105 #  include "STREAMICE_ADV.h"
                0106 #  include "STREAMICE_BDRY.h"
                0107 #  include "STREAMICE_CG.h"
                0108 # endif
                0109 
b7b61e618a Mart*0110 #endif /* ALLOW_OPENAD_DIVA */
6e6f314aa7 Patr*0111 
                0112 C     !INPUT/OUTPUT PARAMETERS:
                0113 C     myTime :: time counter for this thread
                0114 C     myIter :: iteration counter for this thread
                0115 C     myThid :: thread number for this instance of the routine.
                0116       INTEGER iloop
                0117       _RL     myTime
                0118       INTEGER myIter
                0119       INTEGER myThid
b7b61e618a Mart*0120 
                0121 #ifdef ALLOW_OPENAD_DIVA
6e6f314aa7 Patr*0122 C     !FUNCTIONS:
                0123 
                0124 C     !LOCAL VARIABLES:
                0125       INTEGER iloop1
                0126       INTEGER prod
                0127 CEOP
                0128 
                0129 #ifdef ALLOW_DEBUG
                0130       IF (debugMode) CALL DEBUG_ENTER('INNER_DO_LOOP',myThid)
                0131 #endif
                0132 
b7b61e618a Mart*0133 C--   Start Inner time-stepping Loop:
6e6f314aa7 Patr*0134       DO iloop1 = 1, nTimeSteps
                0135         prod = (iloop-1)*nTimeSteps_l2+iloop1
                0136 
                0137 #ifdef ALLOW_DEBUG
b7b61e618a Mart*0138         IF (debugMode) CALL DEBUG_CALL('FORWARD_STEP',myThid)
6e6f314aa7 Patr*0139 #endif
                0140         CALL TIMER_START('FORWARD_STEP        [INNER_DO_LOOP]',myThid)
                0141         CALL FORWARD_STEP( prod, myTime, myIter, myThid )
                0142         CALL TIMER_STOP ('FORWARD_STEP        [INNER_DO_LOOP]',myThid)
                0143 
                0144       ENDDO
b7b61e618a Mart*0145 C--   end of Inner time-stepping Loop
6e6f314aa7 Patr*0146 
                0147 #ifdef ALLOW_DEBUG
                0148       IF (debugMode) CALL DEBUG_LEAVE('INNER_DO_LOOP',myThid)
                0149 #endif
                0150 
b7b61e618a Mart*0151 #endif /* ALLOW_OPENAD_DIVA */
6e6f314aa7 Patr*0152       RETURN
                0153       END