Back to home page

MITgcm

 
 

    


File indexing completed on 2026-03-19 05:08:29 UTC

view on githubraw file Latest commit 69361556 on 2026-03-18 21:20:20 UTC
69361556c2 Mart*0001 #include "COST_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C !ROUTINE: COST_DRIVER
                0005 
                0006 C !INTERFACE: ==========================================================
                0007       SUBROUTINE COST_DRIVER(
                0008      I                        myTime, myIter, myThid )
                0009 
                0010 C !DESCRIPTION:
                0011 C Driver routine to calculate cost function terms at the end of the model run
                0012 
                0013 C !USES: ===============================================================
                0014       IMPLICIT NONE
                0015 C     == Global variables ===
                0016 #include "SIZE.h"
                0017 #include "EEPARAMS.h"
                0018 #include "PARAMS.h"
                0019 
                0020 C !INPUT PARAMETERS: ===================================================
                0021 C myTime    :: Current time in simulation
                0022 C myIter    :: Current time-step number
                0023 C myThid    :: my Thread Id number
                0024       _RL     myTime
                0025       INTEGER myIter, myThid
                0026 
                0027 C !OUTPUT PARAMETERS: ==================================================
                0028 CEOP
                0029 
                0030 #ifdef ALLOW_COST
                0031 
                0032 #ifdef ALLOW_OBCS
                0033       IF ( useOBCS ) THEN
                0034 # ifdef ALLOW_DEBUG
                0035        IF (debugMode) CALL DEBUG_CALL('OBCS_COST_DRIVER',myThid)
                0036 # endif
                0037        CALL TIMER_START('OBCS_COST_DRIVER  [COST_DRIVER]', myThid)
                0038        CALL OBCS_COST_DRIVER( myTime, myIter, myThid )
                0039        CALL TIMER_STOP ('OBCS_COST_DRIVER  [COST_DRIVER]', myThid)
                0040       ENDIF
                0041 #endif
                0042 
                0043 #ifdef ALLOW_ECCO
                0044       IF ( useECCO ) then
                0045 c--   Compute ecco specific cost function contributions, that is,
                0046 c--   user defined cost function contributions.
                0047 # ifdef ALLOW_DEBUG
                0048        IF (debugMode) CALL DEBUG_CALL('COST_GENCOST_ALL',myThid)
                0049 # endif
                0050        CALL TIMER_START('COST_GENCOST_ALL  [COST_DRIVER]', myThid)
                0051        CALL COST_GENCOST_ALL( myIter, myTime, myThid )
                0052        CALL TIMER_STOP ('COST_GENCOST_ALL  [COST_DRIVER]', myThid)
                0053       ENDIF
                0054 #endif
                0055 
                0056 #ifdef ALLOW_CTRL
                0057       IF ( useCTRL ) THEN
                0058 # ifdef ALLOW_DEBUG
                0059        IF (debugMode) CALL DEBUG_CALL('CTRL_COST_DRIVER',myThid)
                0060 # endif
                0061        CALL TIMER_START('CTRL_COST_DRIVER  [COST_DRIVER]', myThid)
                0062        CALL CTRL_COST_DRIVER( myTime, myIter, myThid )
                0063        CALL TIMER_STOP ('CTRL_COST_DRIVER  [COST_DRIVER]', myThid)
                0064       ENDIF
                0065 #endif
                0066 
                0067 #endif /* ALLOW_COST */
                0068 
                0069       RETURN
                0070       END