File indexing completed on 2026-05-21 20:04:51 UTC
view on githubraw file Latest commit ea437dae on 2026-04-07 22:15:22 UTC
69361556c2 Mart*0001 #include "OBCS_OPTIONS.h"
0002 #ifdef ALLOW_CTRL
0003 # include "CTRL_OPTIONS.h"
0004 #endif
0005
0006
0007
0008
0009
0010 SUBROUTINE OBCS_COST_DRIVER(
0011 I myTime, myIter, myThid )
0012
0013
0014
0015
0016
0017
0018
0019 IMPLICIT NONE
0020
0021 #include "SIZE.h"
0022 #include "EEPARAMS.h"
0023 #ifdef ALLOW_CTRL
0024 # include "CTRL_SIZE.h"
0025 # include "CTRL.h"
0026 # include "CTRL_OBCS.h"
0027 #endif
0028
0029
0030 _RL myTime
0031 INTEGER myIter
0032 INTEGER myThid
0033
0034 #if defined ALLOW_CTRL && defined ALLOW_COST
0035
0036 INTEGER ivar
0037 INTEGER iobcsN, iobcsS, iobcsE, iobcsW
ea437dae83 Hugo 0038 # ifdef ALLOW_OBCS_CONTROL
0039 INTEGER startrec, endrec
0040 # endif
69361556c2 Mart*0041
0042
0043 IF ( useObcsCostContribution ) THEN
0044
0045
0046 iobcsN = 0
0047 iobcsS = 0
0048 iobcsE = 0
0049 iobcsW = 0
0050 DO ivar = 1, maxcvars
0051 IF ( ncvargrd(ivar) .EQ. 'm' ) THEN
0052 IF ( ncvarindex(ivar) .EQ. 1 ) iobcsN = ivar
0053 IF ( ncvarindex(ivar) .EQ. 2 ) iobcsS = ivar
0054 IF ( ncvarindex(ivar) .EQ. 3 ) iobcsE = ivar
0055 IF ( ncvarindex(ivar) .EQ. 4 ) iobcsW = ivar
0056 ENDIF
0057 ENDDO
0058
0059 #ifdef ALLOW_OBCSN_CONTROL
0060 IF ( iobcsN.GT.0 ) THEN
0061
0062 startrec = ncvarrecstart(iobcsN)
0063 endrec = ncvarrecsend(iobcsN)
0064 CALL OBCS_COST_OB_N( startrec, endrec,
0065 I myTime, myIter, myThid )
0066 ENDIF
0067 #endif
0068 #ifdef ALLOW_OBCSS_CONTROL
0069 IF ( iobcsS.GT.0 ) THEN
0070
0071 startrec = ncvarrecstart(iobcsS)
0072 endrec = ncvarrecsend(iobcsS)
0073 CALL OBCS_COST_OB_S( startrec, endrec,
0074 I myTime, myIter, myThid )
0075 ENDIF
0076 #endif
0077 #ifdef ALLOW_OBCSE_CONTROL
0078 IF ( iobcsE.GT.0 ) THEN
0079
0080 startrec = ncvarrecstart(iobcsE)
0081 endrec = ncvarrecsend(iobcsE)
0082 CALL OBCS_COST_OB_E( startrec, endrec,
0083 I myTime, myIter, myThid )
0084 ENDIF
0085 #endif
0086 #ifdef ALLOW_OBCSW_CONTROL
0087 IF ( iobcsW.GT.0 ) THEN
0088
0089 startrec = ncvarrecstart(iobcsW)
0090 endrec = ncvarrecsend(iobcsW)
0091 CALL OBCS_COST_OB_W( startrec, endrec,
0092 I myTime, myIter, myThid )
0093 ENDIF
0094 #endif
0095
0096 #ifdef OBCS_VOLFLUX_COST_CONTRIBUTION
0097 STOP 'CPP-flag OBCS_VOLFLUX_COST_CONTRIBUTION defined: '//
0098 & 'S/R OBCS_COST_VOL needs to be fixed!'
0099
0100
0101
0102
0103 #endif
0104
0105
0106 ENDIF
0107
0108 #endif /* ALLOW_CTRL and ALLOW_COST */
0109
0110 RETURN
0111 END