/[MITgcm]/MITgcm/pkg/ctrl/ctrl_map_gentim2d.F
ViewVC logotype

Contents of /MITgcm/pkg/ctrl/ctrl_map_gentim2d.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.4 - (show annotations) (download)
Sun Mar 31 19:43:18 2013 UTC (11 years, 1 month ago) by gforget
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64o, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64n, checkpoint64g, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint65, checkpoint64j, checkpoint64m, checkpoint64l
Changes since 1.3: +7 -4 lines
- improve print statement.

1 C $Header: /u/gcmpack/MITgcm/pkg/ctrl/ctrl_map_gentim2d.F,v 1.3 2013/03/27 00:10:26 gforget Exp $
2 C $Name: $
3
4 #include "CTRL_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: CTRL_MAP_GENTIM2D
8 C !INTERFACE:
9 SUBROUTINE CTRL_MAP_GENTIM2D(
10 I myTime, myIter, myThid )
11 C !DESCRIPTION: \bv
12 C *=============================================================*
13 C | S/R CTRL_MAP_GENTIM2D
14 C *=============================================================*
15
16 C !USES:
17 IMPLICIT NONE
18
19 C === Global variables ===
20 #include "SIZE.h"
21 #include "EEPARAMS.h"
22 #include "PARAMS.h"
23 #include "FFIELDS.h"
24 #include "DYNVARS.h"
25 #include "GRID.h"
26 #include "CTRL_SIZE.h"
27 #include "ctrl.h"
28 #include "CTRL_GENARR.h"
29 #include "ctrl_dummy.h"
30 #include "optim.h"
31 #ifdef ALLOW_AUTODIFF
32 #include "AUTODIFF_MYFIELDS.h"
33 #endif
34
35 C !INPUT/OUTPUT PARAMETERS:
36 C === Routine arguments ===
37 C myIter :: iteration counter for this thread
38 C myTime :: time counter for this thread
39 C myThid :: thread number for this instance of the routine.
40 _RL myTime
41 INTEGER myIter
42 INTEGER myThid
43
44 C !LOCAL VARIABLES:
45 C == Local variables ==
46 integer bi,bj
47 integer i,j,k
48 integer itlo,ithi
49 integer jtlo,jthi
50 integer jmin,jmax
51 integer imin,imax
52 integer il
53 integer iarr
54
55 logical equal
56 logical doglobalread
57 logical ladinit
58 character*( 80) fnamegeneric
59
60 _RL fac
61 _RL xx_gentim2d_loc(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
62 CHARACTER*(MAX_LEN_MBUF) msgBuf
63 _RL LOCsumTile(nSx,nSy), LOCsumGlob, genprecipGloH
64
65 c == external ==
66 integer ilnblnk
67 external ilnblnk
68 CEOP
69
70 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
71
72 #ifdef ALLOW_GENTIM2D_CONTROL
73 C-- An example of connecting specific fields
74 C-- to generic time-varying 2D control arrays
75 cph--->>>
76 cph--->>> COMPILE FAILURE IS DELIBERATE
77 cph--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<---
78 cph--->>>
79 C-- generic - user-defined control vars
80 DO iarr = 1, maxCtrlTim2D
81
82 DO bj = myByLo(myThid), myByHi(myThid)
83 DO bi = myBxLo(myThid), myBxHi(myThid)
84 DO J = 1-Oly,sNy+Oly
85 DO I = 1-Olx,sNx+Olx
86 xx_gentim2d_loc(I,J,bi,bj) = 0. _d 0
87 ENDDO
88 ENDDO
89 ENDDO
90 ENDDO
91 C
92 CALL CTRL_GET_GEN (
93 I xx_gentim2d_file(iarr)(1:MAX_LEN_FNAM),
94 I xx_gentim2d_startdate(1,iarr),
95 I xx_gentim2d_period(iarr),
96 I maskC,
97 O xx_gentim2d_loc,
98 I xx_gentim2d0(1-Olx,1-Oly,1,1,iarr),
99 I xx_gentim2d1(1-Olx,1-Oly,1,1,iarr),
100 I xx_gentim2d_dummy(iarr),
101 I zeroRL, zeroRL,
102 I mytime, myiter, mythid )
103 C
104 DO bj=myByLo(myThid),myByHi(myThid)
105 DO bi=myBxLo(myThid),myBxHi(myThid)
106 do j = 1,sNy
107 do i = 1,sNx
108 if (xx_gentim2d_cumsum(iarr)) then
109 xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d(i,j,bi,bj,iarr)
110 & +xx_gentim2d_loc(i,j,bi,bj)
111 else
112 xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d_loc(i,j,bi,bj)
113 endif
114 enddo
115 enddo
116 enddo
117 enddo
118 C
119 if (xx_gentim2d_glosum(iarr)) then
120
121 LOCsumGlob=0. _d 0
122 DO bj=myByLo(myThid),myByHi(myThid)
123 DO bi=myBxLo(myThid),myBxHi(myThid)
124 LOCsumTile(bi,bj)=0. _d 0
125 do j = 1,sNy
126 do i = 1,sNx
127 LOCsumTile(bi,bj)=LOCsumTile(bi,bj)+
128 & maskC(i,j,1,bi,bj)*rA(i,j,bi,bj)
129 & *xx_gentim2d(i,j,bi,bj,iarr)
130 enddo
131 enddo
132 enddo
133 enddo
134
135 CALL GLOBAL_SUM_TILE_RL( LOCsumTile, LOCsumGlob, myThid )
136
137 DO bj = myByLo(myThid), myByHi(myThid)
138 DO bi = myBxLo(myThid), myBxHi(myThid)
139 DO J = 1-Oly,sNy+Oly
140 DO I = 1-Olx,sNx+Olx
141 xx_gentim2d(I,J,bi,bj,iarr) =
142 & LOCsumGlob/globalArea*maskC(i,j,1,bi,bj)
143 ENDDO
144 ENDDO
145 ENDDO
146 ENDDO
147
148 genprecipGloH=LOCsumGlob/globalArea
149 & *rhoConstFresh*recip_rhoConst*deltaTClock
150
151 WRITE(msgBuf,'(A,I6,A,1PE21.14)')
152 & ' iter=', myiter, ' ; genprecipGloH= ', genprecipGloH
153 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
154 & SQUEEZE_RIGHT, myThid )
155
156 endif
157
158 ENDDO
159
160 #endif /* ALLOW_GENTIM2D_CONTROL */
161
162 RETURN
163 END

  ViewVC Help
Powered by ViewVC 1.1.22