Back to home page

MITgcm

 
 

    


File indexing completed on 2024-06-06 05:10:33 UTC

view on githubraw file Latest commit af61e5eb on 2024-06-06 03:30:35 UTC
5ed655852f Jean*0001 #include "COST_OPTIONS.h"
449f3c105b Patr*0002 
9f5240b52a Jean*0003       SUBROUTINE cost_accumulate_mean( myThid )
449f3c105b Patr*0004 C     *==========================================================*
9f5240b52a Jean*0005 C     | SUBROUTINE cost_accumulate_mean                          |
449f3c105b Patr*0006 C     | o accumulate mean state for cost evalualtion             |
                0007 C     *==========================================================*
                0008       IMPLICIT NONE
                0009 
                0010 C     == Global variables ===
                0011 #include "SIZE.h"
                0012 #include "EEPARAMS.h"
                0013 #include "PARAMS.h"
                0014 #include "DYNVARS.h"
                0015 #include "GRID.h"
                0016 
                0017 #include "cost.h"
                0018 
                0019 C     == Routine arguments ==
                0020 C     myThid - Thread number for this instance of the routine.
9f5240b52a Jean*0021       INTEGER myThid
449f3c105b Patr*0022 
18c2d26d44 Davi*0023 #ifdef ALLOW_COST
449f3c105b Patr*0024 C     == Local variables
9f5240b52a Jean*0025       INTEGER i, j, k
af61e5eb16 Mart*0026       INTEGER bi, bj
                0027       _RL     deltaTfrac
                0028 
                0029       deltaTfrac = deltaTClock/lastinterval
449f3c105b Patr*0030 
                0031 C--   Calculate cost function on tile of this instance
9f5240b52a Jean*0032       DO bj = myByLo(myThid), myByHi(myThid)
                0033         DO bi = myBxLo(myThid), myBxHi(myThid)
                0034           DO k = 1, Nr
                0035             DO j=1,sNy
                0036               DO i=1,sNx
449f3c105b Patr*0037                 cMeanTheta(i,j,k,bi,bj) = cMeanTheta(i,j,k,bi,bj)
af61e5eb16 Mart*0038      &                + theta(i,j,k,bi,bj) * deltaTfrac
449f3c105b Patr*0039                 cMeanUVel(i,j,k,bi,bj) = cMeanUVel(i,j,k,bi,bj)
af61e5eb16 Mart*0040      &               + uVel(i,j,k,bi,bj) * deltaTfrac
449f3c105b Patr*0041                 cMeanVVel(i,j,k,bi,bj) = cMeanVVel(i,j,k,bi,bj)
af61e5eb16 Mart*0042      &               + vVel(i,j,k,bi,bj) * deltaTfrac
781d8676b2 Patr*0043 
de62b6d2c5 Jean*0044                 cMeanThetaUVel(i,j,k,bi,bj) =
781d8676b2 Patr*0045      &               cMeanThetaUVel(i,j,k,bi,bj)
af61e5eb16 Mart*0046      &               + halfRL*(theta(i,j,k,bi,bj)+theta(i-1,j,k,bi,bj))
                0047      &                 *uvel(i,j,k,bi,bj)
a4efec1784 Patr*0048      &                 *maskW(i,j,k,bi,bj)*maskC(i,j,k,bi,bj)
af61e5eb16 Mart*0049      &                 *deltaTfrac
de62b6d2c5 Jean*0050                 cMeanThetaVVel(i,j,k,bi,bj) =
781d8676b2 Patr*0051      &               cMeanThetaVVel(i,j,k,bi,bj)
af61e5eb16 Mart*0052      &               + halfRL*(theta(i,j,k,bi,bj)+theta(i,j-1,k,bi,bj))
                0053      &                 *vvel(i,j,k,bi,bj)
a4efec1784 Patr*0054      &                 *maskS(i,j,k,bi,bj)*maskC(i,j,k,bi,bj)
af61e5eb16 Mart*0055      &                 *deltaTfrac
9f5240b52a Jean*0056               ENDDO
                0057             ENDDO
                0058           ENDDO
                0059         ENDDO
                0060       ENDDO
449f3c105b Patr*0061 
60daad5b3d Patr*0062 #endif
449f3c105b Patr*0063 
de62b6d2c5 Jean*0064       RETURN
449f3c105b Patr*0065       END