File indexing completed on 2026-03-19 05:08:48 UTC
view on githubraw file Latest commit 69361556 on 2026-03-18 21:20:20 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 #endif
0027 #ifdef ALLOW_OBCS_CONTROL
0028 # include "CTRL_OBCS.h"
0029 #endif
0030
0031
0032 _RL myTime
0033 INTEGER myIter
0034 INTEGER myThid
0035
0036 #if defined ALLOW_CTRL && defined ALLOW_COST
0037
0038 INTEGER startrec
0039 INTEGER endrec
0040 INTEGER ivar
0041 INTEGER iobcsN, iobcsS, iobcsE, iobcsW
0042
0043
0044 IF ( useObcsCostContribution ) THEN
0045
0046
0047 iobcsN = 0
0048 iobcsS = 0
0049 iobcsE = 0
0050 iobcsW = 0
0051 DO ivar = 1, maxcvars
0052 IF ( ncvargrd(ivar) .EQ. 'm' ) THEN
0053 IF ( ncvarindex(ivar) .EQ. 1 ) iobcsN = ivar
0054 IF ( ncvarindex(ivar) .EQ. 2 ) iobcsS = ivar
0055 IF ( ncvarindex(ivar) .EQ. 3 ) iobcsE = ivar
0056 IF ( ncvarindex(ivar) .EQ. 4 ) iobcsW = ivar
0057 ENDIF
0058 ENDDO
0059
0060 #ifdef ALLOW_OBCSN_CONTROL
0061 IF ( iobcsN.GT.0 ) THEN
0062
0063 startrec = ncvarrecstart(iobcsN)
0064 endrec = ncvarrecsend(iobcsN)
0065 CALL OBCS_COST_OB_N( startrec, endrec,
0066 I myTime, myIter, myThid )
0067 ENDIF
0068 #endif
0069 #ifdef ALLOW_OBCSS_CONTROL
0070 IF ( iobcsS.GT.0 ) THEN
0071
0072 startrec = ncvarrecstart(iobcsS)
0073 endrec = ncvarrecsend(iobcsS)
0074 CALL OBCS_COST_OB_S( startrec, endrec,
0075 I myTime, myIter, myThid )
0076 ENDIF
0077 #endif
0078 #ifdef ALLOW_OBCSE_CONTROL
0079 IF ( iobcsE.GT.0 ) THEN
0080
0081 startrec = ncvarrecstart(iobcsE)
0082 endrec = ncvarrecsend(iobcsE)
0083 CALL OBCS_COST_OB_E( startrec, endrec,
0084 I myTime, myIter, myThid )
0085 ENDIF
0086 #endif
0087 #ifdef ALLOW_OBCSW_CONTROL
0088 IF ( iobcsW.GT.0 ) THEN
0089
0090 startrec = ncvarrecstart(iobcsW)
0091 endrec = ncvarrecsend(iobcsW)
0092 CALL OBCS_COST_OB_W( startrec, endrec,
0093 I myTime, myIter, myThid )
0094 ENDIF
0095 #endif
0096
0097 #ifdef OBCS_VOLFLUX_COST_CONTRIBUTION
0098 STOP 'CPP-flag OBCS_VOLFLUX_COST_CONTRIBUTION defined: '//
0099 & 'S/R OBCS_COST_VOL needs to be fixed!'
0100
0101
0102
0103
0104 #endif
0105
0106
0107 ENDIF
0108
0109 #endif /* ALLOW_CTRL and ALLOW_COST */
0110
0111 RETURN
0112 END