File indexing completed on 2024-11-26 06:10:41 UTC
view on githubraw file Latest commit 27ce1202 on 2024-11-25 17:10:12 UTC
7bd66d7dc3 Patr*0001 #include "CTRL_OPTIONS.h"
0002
0003
0004
0005
0006 SUBROUTINE CTRL_MAP_GENTIM2D(
0007 I myTime, myIter, myThid )
0008
0009
0010
0011
a78204c019 Mart*0012
7bd66d7dc3 Patr*0013
0014
0015 IMPLICIT NONE
0016
0017
0018 #include "SIZE.h"
0019 #include "EEPARAMS.h"
0020 #include "PARAMS.h"
0021 #include "GRID.h"
0022 #include "CTRL_SIZE.h"
4d72283393 Mart*0023 #include "CTRL.h"
7bd66d7dc3 Patr*0024 #include "CTRL_GENARR.h"
edcd27be69 Mart*0025 #include "CTRL_DUMMY.h"
7bd66d7dc3 Patr*0026
0027
0028
a78204c019 Mart*0029
0030
0031
7bd66d7dc3 Patr*0032 _RL myTime
0033 INTEGER myIter
0034 INTEGER myThid
0035
7c50f07931 Mart*0036 #ifdef ALLOW_GENTIM2D_CONTROL
7bd66d7dc3 Patr*0037
0038
a78204c019 Mart*0039 INTEGER bi, bj
0040 INTEGER i, j
0041 INTEGER iarr
0042 _RL xx_gentim2d_loc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0043 _RS mask2D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
a87570e2e8 Gael*0044 CHARACTER*(MAX_LEN_MBUF) msgBuf
a78204c019 Mart*0045 _RL LOCsumTile(nSx,nSy), LOCsumGlob
7bd66d7dc3 Patr*0046
0047
0048
0049
0050
a78204c019 Mart*0051 DO iarr = 1, maxCtrlTim2D
0052
0053 IF (xx_gentim2d_weight(iarr).NE.' ') THEN
0054
0055 DO bj = myByLo(myThid),myByHi(myThid)
0056 DO bi = myBxLo(myThid),myBxHi(myThid)
0057 DO j = 1-OLy,sNy+OLy
0058 DO i = 1-OLx,sNx+OLx
0059 xx_gentim2d_loc(i,j,bi,bj) = 0. _d 0
0060 ENDDO
0061 ENDDO
0062 ENDDO
0063 ENDDO
0064
0065 CALL CTRL_GET_MASK2D( xx_gentim2d_file(iarr), mask2D, myThid )
7b8b86ab99 Timo*0066 CALL CTRL_GET_GEN (
a78204c019 Mart*0067 I xx_gentim2d_file(iarr),
f7e062a48e Jean*0068 I xx_gentim2d_startdate(1,iarr),
7bd66d7dc3 Patr*0069 I xx_gentim2d_period(iarr),
7b8b86ab99 Timo*0070 I mask2D,
f7e062a48e Jean*0071 O xx_gentim2d_loc,
a78204c019 Mart*0072 I xx_gentim2d0(1-OLx,1-OLy,1,1,iarr),
0073 I xx_gentim2d1(1-OLx,1-OLy,1,1,iarr),
7bd66d7dc3 Patr*0074 I xx_gentim2d_dummy(iarr),
f7e062a48e Jean*0075 I zeroRL, zeroRL,
a78204c019 Mart*0076 I wgentim2d(1-OLx,1-OLy,1,1,iarr),
0077 I myTime, myIter, myThid )
0078
0079 IF (xx_gentim2d_cumsum(iarr)) THEN
0080 DO bj=myByLo(myThid),myByHi(myThid)
0081 DO bi=myBxLo(myThid),myBxHi(myThid)
0082 DO j = 1,sNy
0083 DO i = 1,sNx
0084 xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d(i,j,bi,bj,iarr)
0085 & + xx_gentim2d_loc(i,j,bi,bj)
0086 ENDDO
0087 ENDDO
0088 ENDDO
0089 ENDDO
0090 ELSE
0091 DO bj=myByLo(myThid),myByHi(myThid)
0092 DO bi=myBxLo(myThid),myBxHi(myThid)
0093 DO j = 1,sNy
0094 DO i = 1,sNx
0095 xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d_loc(i,j,bi,bj)
0096 ENDDO
0097 ENDDO
0098 ENDDO
0099 ENDDO
0100 ENDIF
0101
0102 IF (xx_gentim2d_glosum(iarr)) THEN
0103
0104 DO bj=myByLo(myThid),myByHi(myThid)
0105 DO bi=myBxLo(myThid),myBxHi(myThid)
0106 LOCsumTile(bi,bj)=0. _d 0
0107 DO j = 1,sNy
0108 DO i = 1,sNx
0109 LOCsumTile(bi,bj) = LOCsumTile(bi,bj)
0110 & + xx_gentim2d(i,j,bi,bj,iarr)*rA(i,j,bi,bj)
0111 & *maskC(i,j,1,bi,bj)*maskInC(i,j,bi,bj)
0112 ENDDO
0113 ENDDO
0114 ENDDO
0115 ENDDO
0116
0117 CALL GLOBAL_SUM_TILE_RL( LOCsumTile, LOCsumGlob, myThid )
0118
0119 LOCsumGlob = LOCsumGlob/globalArea
0120 DO bj = myByLo(myThid),myByHi(myThid)
0121 DO bi = myBxLo(myThid),myBxHi(myThid)
0122 DO j = 1-OLy,sNy+OLy
0123 DO i = 1-OLx,sNx+OLx
0124 xx_gentim2d(i,j,bi,bj,iarr) =
0125 & LOCsumGlob*maskC(i,j,1,bi,bj)
0126 ENDDO
0127 ENDDO
0128 ENDDO
0129 ENDDO
0130
0131 IF (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') THEN
0132
0133 WRITE(msgBuf,'(A,I6,A,1PE21.14)')
0134 & ' iter=', myIter, ' ; genprecipGloH= ',
0135 & LOCsumGlob*rhoConstFresh*recip_rhoConst*deltaTClock
0136 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0137 & SQUEEZE_RIGHT, myThid )
0138
0139 ENDIF
0140
0141 ENDIF
0142
0143 ENDIF
0144
0145 ENDDO
7bd66d7dc3 Patr*0146
0147 #endif /* ALLOW_GENTIM2D_CONTROL */
0148
0149 RETURN
0150 END