/[MITgcm]/MITgcm/pkg/openad/externalDummies.F
ViewVC logotype

Annotation of /MITgcm/pkg/openad/externalDummies.F

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


Revision 1.9 - (hide annotations) (download)
Sat Aug 20 03:10:02 2016 UTC (7 years, 9 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint66a, checkpoint65z
Changes since 1.8: +15 -1 lines
Merge I/O code.

1 heimbach 1.9 C $Header: /u/gcmpack/MITgcm/pkg/openad/externalDummies.F,v 1.8 2015/02/18 20:24:14 heimbach Exp $
2 heimbach 1.1 C $Name: $
3 heimbach 1.4
4     #include "OPENAD_OPTIONS.h"
5    
6 heimbach 1.1 C ###########################################################
7 heimbach 1.9 SUBROUTINE DUMMY_IN_STEPPING( myTime, myIter, myThid )
8    
9     IMPLICIT NONE
10     #include "SIZE.h"
11     #include "EEPARAMS.h"
12     #include "PARAMS.h"
13     #include "DYNVARS.h"
14     _RL myTime
15     INTEGER myIter
16     INTEGER myThid
17     C dummy self dependence (nontrivial so mfef90 doesn't kill it)
18     theta(1,1,1,1,1)=2*theta(1,1,1,1,1)
19     end subroutine
20     C ###########################################################
21 heimbach 1.1 SUBROUTINE EXCH1_RL(
22     U array,
23     I myOLw, myOLe, myOLs, myOLn, myNz,
24     I exchWidthX, exchWidthY,
25     I cornerMode, myThid )
26    
27     IMPLICIT NONE
28     #include "SIZE.h"
29     #include "EEPARAMS.h"
30     #include "EXCH.h"
31     INTEGER myOLw, myOLe, myOLs, myOLn, myNz
32     _RL array( 1-myOLw:sNx+myOLe,
33     & 1-myOLs:sNy+myOLn,
34     & myNz, nSx, nSy )
35     INTEGER exchWidthX
36     INTEGER exchWidthY
37     INTEGER cornerMode
38     INTEGER myThid
39     C dummy self dependence (nontrivial so mfef90 doesn't kill it)
40     array(1,1,1,1,1)=2*array(1,1,1,1,1)
41     end subroutine
42     C ###########################################################
43     C SUBROUTINE EXCH1_RS(
44     C U array,
45     C I myOLw, myOLe, myOLs, myOLn, myNz,
46     C I exchWidthX, exchWidthY,
47     C I cornerMode, myThid )
48     C
49     C IMPLICIT NONE
50     C#include "SIZE.h"
51     C#include "EEPARAMS.h"
52     C#include "EXCH.h"
53     C INTEGER myOLw, myOLe, myOLs, myOLn, myNz
54     C _RS array( 1-myOLw:sNx+myOLe,
55     C & 1-myOLs:sNy+myOLn,
56     C & myNz, nSx, nSy )
57     C INTEGER exchWidthX
58     C INTEGER exchWidthY
59     C INTEGER cornerMode
60     C INTEGER myThid
61     C end subroutine
62     C ###########################################################
63     C SUBROUTINE GLOBAL_MAX_R8(
64     C U maxphi,
65     C I myThid )
66     C IMPLICIT NONE
67     C#include "SIZE.h"
68     C#include "EEPARAMS.h"
69     C#include "EESUPPORT.h"
70     C#include "EXCH.h"
71     C Real*8 maxPhi
72     C INTEGER myThid
73     C maxPhi=2*maxPhi
74     C end subroutine
75     C ###########################################################
76     C SUBROUTINE GLOBAL_SUM_R8(
77     C U sumphi,
78     C I myThid )
79     C IMPLICIT NONE
80     C#include "SIZE.h"
81     C#include "EEPARAMS.h"
82     C#include "EESUPPORT.h"
83     C#include "EXCH.h"
84     C Real*8 sumPhi
85     C INTEGER myThid
86     CC dummy self dependence (nontrivial so mfef90 doesn't kill it)
87     C sumPhi=2*sumPhi
88     C end subroutine
89     C ###########################################################
90     SUBROUTINE GLOBAL_SUM_TILE_RL(
91     U phiTile,
92     U sumphi,
93     I myThid )
94     IMPLICIT NONE
95     #include "SIZE.h"
96     #include "EEPARAMS.h"
97     #include "EESUPPORT.h"
98     #include "EXCH.h"
99     _RL phiTile(nSx,nSy)
100     _RL sumPhi
101     INTEGER myThid
102     C dummy self dependence (nontrivial so mfef90 doesn't kill it)
103     sumPhi=2*phiTile(1,1)
104     end subroutine
105     C ###########################################################
106 heimbach 1.5 #ifndef ALLOW_STREAMICE
107 heimbach 1.1 SUBROUTINE CG2D(
108     I cg2d_b,
109     U cg2d_x,
110     O firstResidual,
111     O minResidualSq,
112     O lastResidual,
113     U numIters,
114     O nIterMin,
115     I myThid )
116     IMPLICIT NONE
117     #include "SIZE.h"
118     #include "EEPARAMS.h"
119     #include "PARAMS.h"
120     #include "CG2D.h"
121     Real*8 cg2d_b(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
122     Real*8 cg2d_x(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
123     Real*8 firstResidual
124     Real*8 minResidualSq
125     Real*8 lastResidual
126     INTEGER numIters
127     INTEGER nIterMin
128     INTEGER myThid
129     C dummy self dependence (nontrivial so mfef90 doesn't kill it)
130     cg2d_x(1,1,1,1)=2*cg2d_b(1,1,1,1)
131     end subroutine
132 heimbach 1.5 #endif
133     C ###########################################################
134     #ifdef ALLOW_STREAMICE
135     SUBROUTINE STREAMICE_CG_SOLVE(
136     U cg_Uin, ! x-velocities
137     U cg_Vin, ! y-velocities
138     I cg_Bu, ! force in x dir
139     I cg_Bv, ! force in y dir
140     I A_uu, ! section of matrix that multiplies u and projects on u
141     I A_uv, ! section of matrix that multiplies v and projects on u
142     I A_vu, ! section of matrix that multiplies u and projects on v
143     I A_vv, ! section of matrix that multiplies v and projects on v
144     I tolerance,
145     O iters,
146     I maxiter,
147     I myThid )
148     IMPLICIT NONE
149    
150     #include "SIZE.h"
151     #include "EEPARAMS.h"
152     #include "PARAMS.h"
153     #include "STREAMICE.h"
154     #include "STREAMICE_CG.h"
155     INTEGER myThid
156     INTEGER iters
157     INTEGER maxiter
158     _RL tolerance
159     _RL cg_Uin (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
160     _RL cg_Vin (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
161     _RL cg_Bu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
162     _RL cg_Bv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
163     _RL
164     & A_uu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,-1:1,-1:1),
165     & A_vu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,-1:1,-1:1),
166     & A_uv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,-1:1,-1:1),
167     & A_vv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,-1:1,-1:1)
168    
169     cg_Uin(1,1,1,1) = A_uu(1,1,1,1,1,1) + A_uv(1,1,1,1,1,1) +
170     & A_vu(1,1,1,1,1,1) + A_vv(1,1,1,1,1,1) + cg_Bu(1,1,1,1)
171    
172     cg_Vin(1,1,1,1) = A_uu(1,1,1,1,1,1) + A_uv(1,1,1,1,1,1) +
173     & A_vu(1,1,1,1,1,1) + A_vv(1,1,1,1,1,1) + cg_Bv(1,1,1,1)
174    
175     end subroutine
176     #endif /* ALLOW_STREAMICE */
177 heimbach 1.2 C ###########################################################
178 heimbach 1.7 subroutine active_read_xyz(
179     I active_var_file,
180     O active_var,
181     I iRec,
182     I doglobalread,
183     I lAdInit,
184     I myOptimIter,
185     I myThid,
186     I dummy
187     & )
188     ! xxx template ad_template.active_read_xyz.f90
189     implicit none
190     ! == global variables ==
191     #include "EEPARAMS.h"
192     #include "SIZE.h"
193     CHARACTER*(80) active_var_file
194     _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
195     INTEGER iRec
196     INTEGER myOptimIter
197     INTEGER myThid
198     LOGICAL doglobalread
199     LOGICAL lAdInit
200     _RL dummy
201     #ifdef ALLOW_OPENAD_ACTIVE_READ_XYZ
202     active_var = dummy + active_var
203     dummy = active_var(1,1,1,1,1) + dummy
204 heimbach 1.8 #endif /* ALLOW_OPENAD_ACTIVE_READ_XYZ */
205 heimbach 1.7 end subroutine
206     C ###########################################################
207 heimbach 1.3 subroutine active_read_xy(
208 heimbach 1.2 I active_var_file,
209     O active_var,
210     I iRec,
211     I doglobalread,
212     I lAdInit,
213     I myOptimIter,
214     I myThid,
215     I dummy
216     & )
217 heimbach 1.7 ! xxx template ad_template.active_read_xy.f90
218 heimbach 1.2 implicit none
219     ! == global variables ==
220     #include "EEPARAMS.h"
221     #include "SIZE.h"
222 heimbach 1.3 CHARACTER*(80) active_var_file
223 heimbach 1.2 _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
224     INTEGER iRec
225     INTEGER myOptimIter
226     INTEGER myThid
227     LOGICAL doglobalread
228     LOGICAL lAdInit
229     _RL dummy
230 heimbach 1.7 #ifdef ALLOW_OPENAD_ACTIVE_READ_XY
231 heimbach 1.2 active_var = dummy + active_var
232     dummy = active_var(1,1,1,1) + dummy
233 heimbach 1.7 #endif /* ALLOW_OPENAD_ACTIVE_READ_XY */
234 heimbach 1.2 end subroutine
235 heimbach 1.5 C ###########################################################
236 heimbach 1.6 subroutine active_write_xy(
237     I active_var_file,
238     I active_var,
239     I iRec,
240     I myOptimIter,
241     I myThid,
242     I dummy
243     & )
244     ! xxx template ad_template.active_write_xy.f90
245     implicit none
246     ! == global variables ==
247     #include "EEPARAMS.h"
248     #include "SIZE.h"
249     CHARACTER*(80) active_var_file
250     _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
251     INTEGER iRec
252     INTEGER myOptimIter
253     INTEGER myThid
254     _RL dummy
255     #ifdef ALLOW_OPENAD_ACTIVE_WRITE
256     active_var = dummy + active_var
257     dummy = active_var(1,1,1,1) + dummy
258     #endif /* ALLOW_OPENAD_ACTIVE_WRITE */
259     end subroutine
260     C ###########################################################
261 heimbach 1.5

  ViewVC Help
Powered by ViewVC 1.1.22