/[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.8 - (hide annotations) (download)
Wed Feb 18 20:24:14 2015 UTC (9 years, 2 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m
Changes since 1.7: +2 -2 lines
Small fixes.

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

  ViewVC Help
Powered by ViewVC 1.1.22