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

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

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


Revision 1.5 - (show annotations) (download)
Thu Feb 5 16:46:12 2015 UTC (9 years, 4 months ago) by heimbach
Branch: MAIN
Changes since 1.4: +49 -1 lines
Consolidate externalDummies.F

1 C $Header: /u/gcmpack/MITgcm/verification/halfpipe_streamice/code_oad/externalDummies.F,v 1.3 2015/01/30 19:19:19 heimbach Exp $
2 C $Name: $
3
4 #include "OPENAD_OPTIONS.h"
5
6 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 #ifndef ALLOW_STREAMICE
93 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 #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 C ###########################################################
164 subroutine active_read_xy(
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 oad_template.active_read_xy.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,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_FILE
188 active_var = dummy + active_var
189 dummy = active_var(1,1,1,1) + dummy
190 #endif /* ALLOW_OPENAD_ACTIVE_FILE */
191 end subroutine
192 C ###########################################################
193

  ViewVC Help
Powered by ViewVC 1.1.22