Back to home page

MITgcm

 
 

    


File indexing completed on 2021-11-06 05:17:39 UTC

view on githubraw file Latest commit ebcc29af on 2021-10-24 15:53:13 UTC
5cce2b5d76 Gael*0001 #include "ECCO_OPTIONS.h"
                0002 
                0003 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0004 CBOP
                0005 C     !ROUTINE: cost_genread
                0006 C     !INTERFACE:
                0007       subroutine cost_genread(
                0008      I                           active_var_file,
                0009      O                           active_var,
ee3c6cce5d Gael*0010      O                           active_tmp,
5cce2b5d76 Gael*0011      I                           iRec,
11c3150c71 Mart*0012      I                           nz,
5cce2b5d76 Gael*0013      I                           nnzbar,
40db27aeaa Gael*0014      I                           nrecloc,
5cce2b5d76 Gael*0015      I                           preproc,
40db27aeaa Gael*0016      I                           preproc_c,
                0017      I                           preproc_i,
                0018      I                           preproc_r,
679b3bfece Gael*0019      I                           dummy,
ebcc29af97 Jean*0020      I                           myThid )
5cce2b5d76 Gael*0021 
                0022 C     !DESCRIPTION: \bv
                0023 C     reads and pre-processes bar file records
                0024 C     \ev
                0025 
                0026 C     !USES:
                0027       IMPLICIT NONE
                0028 
11c3150c71 Mart*0029 C     == Global variables ==
5cce2b5d76 Gael*0030 #include "EEPARAMS.h"
                0031 #include "SIZE.h"
                0032 #ifdef ALLOW_ECCO
13d362b8c1 Ou W*0033 # include "ECCO_SIZE.h"
                0034 # include "ECCO.h"
5cce2b5d76 Gael*0035 #endif
                0036 
11c3150c71 Mart*0037 C     !INPUT/OUTPUT PARAMETERS:
                0038 C     == Routine arguments ==
5cce2b5d76 Gael*0039 C     myThid:          thread number for this instance
                0040       CHARACTER*(*) active_var_file
11c3150c71 Mart*0041       _RL     active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nz,nSx,nSy)
                0042       _RL     active_tmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nz,nSx,nSy)
5cce2b5d76 Gael*0043       INTEGER iRec
11c3150c71 Mart*0044       INTEGER nz, nnzbar, nrecloc
                0045       CHARACTER*(MAX_LEN_FNAM) preproc(NGENPPROC)
                0046       CHARACTER*(MAX_LEN_FNAM) preproc_c(NGENPPROC)
                0047       INTEGER preproc_i(NGENPPROC)
ebcc29af97 Jean*0048       _RL     preproc_r(NGENPPROC)
                0049       _RL     dummy
                0050       INTEGER myThid
5cce2b5d76 Gael*0051 
ac486aa51f Gael*0052 #ifdef ALLOW_ECCO
11c3150c71 Mart*0053 C     !LOCAL VARIABLES:
                0054 C     == Local variables ==
                0055       INTEGER nyearsINT
                0056       _RL     recip_nyearsRL
                0057       INTEGER iyear, imon
                0058       INTEGER i,j,k,bi,bj
5cce2b5d76 Gael*0059 CEOP
                0060 
11c3150c71 Mart*0061       IF ( preproc(1) .EQ. 'clim') THEN
92d10a5666 Gael*0062 
                0063 c--   Loop over month
11c3150c71 Mart*0064        nyearsINT=int((nrecloc-irec)/preproc_i(1))+1
ebcc29af97 Jean*0065        recip_nyearsRL = nyearsINT
                0066        recip_nyearsRL = 1. _d 0/recip_nyearsRL
11c3150c71 Mart*0067 
ebcc29af97 Jean*0068        CALL ECCO_ZERO( active_var, nz, zeroRL, myThid )
11c3150c71 Mart*0069        CALL ECCO_ZERO( active_tmp, nz, zeroRL, myThid )
                0070        DO iyear=1,nyearsINT
                0071         imon=irec+(iyear-1)*preproc_i(1)
                0072         CALL ECCO_READBAR( active_var_file, active_var,
ebcc29af97 Jean*0073      &       imon, nz, nnzbar, dummy, myThid )
11c3150c71 Mart*0074         DO bj = myByLo(myThid),myByHi(myThid)
                0075          DO bi = myBxLo(myThid),myBxHi(myThid)
                0076           DO k = 1,nnzbar
                0077            DO j = 1-OLy,sNy+OLy
                0078             DO i = 1-OLx,sNx+OLx
                0079              active_tmp(i,j,k,bi,bj) = active_tmp(i,j,k,bi,bj)
                0080      &            + active_var(i,j,k,bi,bj)
                0081             ENDDO
                0082            ENDDO
                0083           ENDDO
                0084          ENDDO
                0085         ENDDO
                0086        ENDDO
                0087 
                0088        DO bj = myByLo(myThid),myByHi(myThid)
                0089         DO bi = myBxLo(myThid),myBxHi(myThid)
                0090          DO k = 1,nnzbar
                0091           DO j = 1-OLy,sNy+OLy
                0092            DO i = 1-OLx,sNx+OLx
                0093             active_var(i,j,k,bi,bj) = active_tmp(i,j,k,bi,bj)
                0094      &           * recip_nyearsRL
                0095            ENDDO
                0096           ENDDO
                0097          ENDDO
                0098         ENDDO
                0099        ENDDO
                0100       ELSE
                0101        CALL ECCO_READBAR( active_var_file, active_var,
ebcc29af97 Jean*0102      &      irec, nz, nnzbar, dummy, myThid )
11c3150c71 Mart*0103       ENDIF
92d10a5666 Gael*0104 
ac486aa51f Gael*0105 #endif /* ALLOW_ECCO */
                0106 
5cce2b5d76 Gael*0107       RETURN
                0108       END