1 | |
---|
2 | SUBROUTINE SINT(XF, & |
---|
3 | ims, ime, jms, jme, icmask , & |
---|
4 | its, ite, jts, jte, nf, xstag, ystag ) |
---|
5 | IMPLICIT NONE |
---|
6 | INTEGER ims, ime, jms, jme, & |
---|
7 | its, ite, jts, jte |
---|
8 | |
---|
9 | LOGICAL icmask( ims:ime, jms:jme ) |
---|
10 | LOGICAL xstag, ystag |
---|
11 | |
---|
12 | INTEGER nf, ior |
---|
13 | REAL one12, one24, ep |
---|
14 | PARAMETER(one12=1./12.,one24=1./24.) |
---|
15 | PARAMETER(ior=2) |
---|
16 | ! |
---|
17 | REAL XF(ims:ime,jms:jme,NF) |
---|
18 | ! |
---|
19 | REAL Y(ims:ime,jms:jme,-IOR:IOR), & |
---|
20 | Z(ims:ime,jms:jme,-IOR:IOR), & |
---|
21 | F(ims:ime,jms:jme,0:1) |
---|
22 | ! |
---|
23 | INTEGER I,J,II,JJ,IIM |
---|
24 | INTEGER N2STAR, N2END, N1STAR, N1END |
---|
25 | ! |
---|
26 | DATA EP/ 1.E-10/ |
---|
27 | ! |
---|
28 | ! PARAMETER(NONOS=1) |
---|
29 | ! PARAMETER(N1OS=N1*NONOS+1-NONOS,N2OS=N2*NONOS+1-NONOS) |
---|
30 | ! |
---|
31 | REAL W(ims:ime,jms:jme),OV(ims:ime,jms:jme),UN(ims:ime,jms:jme) |
---|
32 | REAL MXM(ims:ime,jms:jme),MN(ims:ime,jms:jme) |
---|
33 | REAL FL(ims:ime,jms:jme,0:1) |
---|
34 | REAL XIG(81), XJG(81) ! won't use but nine of these fellers. |
---|
35 | INTEGER IFRST |
---|
36 | integer rr |
---|
37 | COMMON /DEPAR2/ XIG,XJG,IFRST |
---|
38 | DATA IFRST /1/ |
---|
39 | |
---|
40 | REAL rioff, rjoff |
---|
41 | ! |
---|
42 | REAL donor, y1, y2, a |
---|
43 | DONOR(Y1,Y2,A)=(Y1*AMAX1(0.,SIGN(1.,A))-Y2*AMIN1(0.,SIGN(1.,A)))*A |
---|
44 | REAL tr4, ym1, y0, yp1, yp2 |
---|
45 | TR4(YM1,Y0,YP1,YP2,A)=A*ONE12*(7.*(YP1+Y0)-(YP2+YM1)) & |
---|
46 | -A*A*ONE24*(15.*(YP1-Y0)-(YP2-YM1))-A*A*A*ONE12*((YP1+Y0) & |
---|
47 | -(YP2+YM1))+A*A*A*A*ONE24*(3.*(YP1-Y0)-(YP2-YM1)) |
---|
48 | REAL pp, pn, x |
---|
49 | PP(X)=AMAX1(0.,X) |
---|
50 | PN(X)=AMIN1(0.,X) |
---|
51 | !! XIG(I) = 1./3.-FLOAT(I-1)*1./3 |
---|
52 | !! XJG(J) = 1./3.-FLOAT(J-1)*1./3 |
---|
53 | |
---|
54 | rr = nint(sqrt(float(nf))) |
---|
55 | !! write(6,*) ' nf, rr are ',nf,rr |
---|
56 | !! IF ( IFRST .EQ. 1 ) THEN |
---|
57 | |
---|
58 | rioff = 0 |
---|
59 | rjoff = 0 |
---|
60 | if(xstag .and. (mod(rr,2) .eq. 0)) rioff = 1. |
---|
61 | if(ystag .and. (mod(rr,2) .eq. 0)) rjoff = 1. |
---|
62 | |
---|
63 | DO I=1,rr |
---|
64 | DO J=1,rr |
---|
65 | XIG(J+(I-1)*rr)=(float(rr)-1.-rioff)/float(2*rr)-FLOAT(J-1)*1./float(rr) |
---|
66 | XJG(J+(I-1)*rr)=(float(rr)-1.-rjoff)/float(2*rr)-FLOAT(I-1)*1./float(rr) |
---|
67 | ENDDO |
---|
68 | ENDDO |
---|
69 | IFRST = 0 |
---|
70 | |
---|
71 | !! ENDIF |
---|
72 | |
---|
73 | ! IF ( IFRST .EQ. 1 ) THEN |
---|
74 | ! DO I=1,3 |
---|
75 | ! DO J=1,3 |
---|
76 | ! XIG(J+(I-1)*3)=1./3.-FLOAT(J-1)*1./3. |
---|
77 | ! XJG(J+(I-1)*3)=1./3.-FLOAT(I-1)*1./3. |
---|
78 | ! ENDDO |
---|
79 | ! ENDDO |
---|
80 | ! IFRST = 0 |
---|
81 | ! ENDIF |
---|
82 | ! |
---|
83 | N2STAR = jts |
---|
84 | N2END = jte |
---|
85 | N1STAR = its |
---|
86 | N1END = ite |
---|
87 | |
---|
88 | DO 2000 IIM=1,NF |
---|
89 | ! |
---|
90 | ! HERE STARTS RESIDUAL ADVECTION |
---|
91 | ! |
---|
92 | DO 9000 JJ=N2STAR,N2END |
---|
93 | DO 50 J=-IOR,IOR |
---|
94 | |
---|
95 | DO 51 I=-IOR,IOR |
---|
96 | DO 511 II=N1STAR,N1END |
---|
97 | IF ( icmask(II,JJ) ) Y(II,JJ,I)=XF(II+I,JJ+J,IIM) |
---|
98 | 511 CONTINUE |
---|
99 | 51 CONTINUE |
---|
100 | |
---|
101 | DO 811 II=N1STAR,N1END |
---|
102 | IF ( icmask(II,JJ) ) THEN |
---|
103 | FL(II,JJ,0)=DONOR(Y(II,JJ,-1),Y(II,JJ,0),XIG(IIM)) |
---|
104 | FL(II,JJ,1)=DONOR(Y(II,JJ,0),Y(II,JJ,1),XIG(IIM)) |
---|
105 | ENDIF |
---|
106 | 811 CONTINUE |
---|
107 | DO 812 II=N1STAR,N1END |
---|
108 | IF ( icmask(II,JJ) ) W(II,JJ)=Y(II,JJ,0)-(FL(II,JJ,1)-FL(II,JJ,0)) |
---|
109 | 812 CONTINUE |
---|
110 | DO 813 II=N1STAR,N1END |
---|
111 | IF ( icmask(II,JJ) ) THEN |
---|
112 | MXM(II,JJ)= & |
---|
113 | AMAX1(Y(II,JJ,-1),Y(II,JJ,0),Y(II,JJ,1), & |
---|
114 | W(II,JJ)) |
---|
115 | MN(II,JJ)=AMIN1(Y(II,JJ,-1),Y(II,JJ,0),Y(II,JJ,1),W(II,JJ)) |
---|
116 | ENDIF |
---|
117 | 813 CONTINUE |
---|
118 | DO 312 II=N1STAR,N1END |
---|
119 | IF ( icmask(II,JJ) ) THEN |
---|
120 | F(II,JJ,0)= & |
---|
121 | TR4(Y(II,JJ,-2),Y(II,JJ,-1),Y(II,JJ,0), & |
---|
122 | Y(II,JJ,1),XIG(IIM)) |
---|
123 | F(II,JJ,1)= & |
---|
124 | TR4(Y(II,JJ,-1),Y(II,JJ,0),Y(II,JJ,1),Y(II,JJ,2),& |
---|
125 | XIG(IIM)) |
---|
126 | ENDIF |
---|
127 | 312 CONTINUE |
---|
128 | DO 822 II=N1STAR,N1END |
---|
129 | IF ( icmask(II,JJ) ) THEN |
---|
130 | F(II,JJ,0)=F(II,JJ,0)-FL(II,JJ,0) |
---|
131 | F(II,JJ,1)=F(II,JJ,1)-FL(II,JJ,1) |
---|
132 | ENDIF |
---|
133 | 822 CONTINUE |
---|
134 | DO 823 II=N1STAR,N1END |
---|
135 | IF ( icmask(II,JJ) ) THEN |
---|
136 | OV(II,JJ)=(MXM(II,JJ)-W(II,JJ))/(-PN(F(II,JJ,1))+ & |
---|
137 | PP(F(II,JJ,0))+EP) |
---|
138 | UN(II,JJ)=(W(II,JJ)-MN(II,JJ))/(PP(F(II,JJ,1))- & |
---|
139 | PN(F(II,JJ,0))+EP) |
---|
140 | ENDIF |
---|
141 | 823 CONTINUE |
---|
142 | DO 824 II=N1STAR,N1END |
---|
143 | IF ( icmask(II,JJ) ) THEN |
---|
144 | F(II,JJ,0)=PP(F(II,JJ,0))*AMIN1(1.,OV(II,JJ))+ & |
---|
145 | PN(F(II,JJ,0))*AMIN1(1.,UN(II,JJ)) |
---|
146 | F(II,JJ,1)=PP(F(II,JJ,1))*AMIN1(1.,UN(II,JJ))+ & |
---|
147 | PN(F(II,JJ,1))*AMIN1(1.,OV(II,JJ)) |
---|
148 | ENDIF |
---|
149 | 824 CONTINUE |
---|
150 | DO 825 II=N1STAR,N1END |
---|
151 | IF ( icmask(II,JJ) ) THEN |
---|
152 | Y(II,JJ,0)=W(II,JJ)-(F(II,JJ,1)-F(II,JJ,0)) |
---|
153 | ENDIF |
---|
154 | 825 CONTINUE |
---|
155 | DO 361 II=N1STAR,N1END |
---|
156 | IF ( icmask(II,JJ) ) Z(II,JJ,J)=Y(II,JJ,0) |
---|
157 | 361 CONTINUE |
---|
158 | ! |
---|
159 | ! END IF FIRST J LOOP |
---|
160 | ! |
---|
161 | 8000 CONTINUE |
---|
162 | 50 CONTINUE |
---|
163 | |
---|
164 | DO 911 II=N1STAR,N1END |
---|
165 | IF ( icmask(II,JJ) ) THEN |
---|
166 | FL(II,JJ,0)=DONOR(Z(II,JJ,-1),Z(II,JJ,0),XJG(IIM)) |
---|
167 | FL(II,JJ,1)=DONOR(Z(II,JJ,0),Z(II,JJ,1),XJG(IIM)) |
---|
168 | ENDIF |
---|
169 | 911 CONTINUE |
---|
170 | DO 912 II=N1STAR,N1END |
---|
171 | IF ( icmask(II,JJ) ) W(II,JJ)=Z(II,JJ,0)-(FL(II,JJ,1)-FL(II,JJ,0)) |
---|
172 | 912 CONTINUE |
---|
173 | DO 913 II=N1STAR,N1END |
---|
174 | IF ( icmask(II,JJ) ) THEN |
---|
175 | MXM(II,JJ)=AMAX1(Z(II,JJ,-1),Z(II,JJ,0),Z(II,JJ,1),W(II,JJ)) |
---|
176 | MN(II,JJ)=AMIN1(Z(II,JJ,-1),Z(II,JJ,0),Z(II,JJ,1),W(II,JJ)) |
---|
177 | ENDIF |
---|
178 | 913 CONTINUE |
---|
179 | DO 412 II=N1STAR,N1END |
---|
180 | IF ( icmask(II,JJ) ) THEN |
---|
181 | F(II,JJ,0)= & |
---|
182 | TR4(Z(II,JJ,-2),Z(II,JJ,-1),Z(II,JJ,0),Z(II,JJ,1)& |
---|
183 | ,XJG(IIM)) |
---|
184 | F(II,JJ,1)= & |
---|
185 | TR4(Z(II,JJ,-1),Z(II,JJ,0),Z(II,JJ,1),Z(II,JJ,2), & |
---|
186 | XJG(IIM)) |
---|
187 | ENDIF |
---|
188 | 412 CONTINUE |
---|
189 | DO 922 II=N1STAR,N1END |
---|
190 | IF ( icmask(II,JJ) ) THEN |
---|
191 | F(II,JJ,0)=F(II,JJ,0)-FL(II,JJ,0) |
---|
192 | F(II,JJ,1)=F(II,JJ,1)-FL(II,JJ,1) |
---|
193 | ENDIF |
---|
194 | 922 CONTINUE |
---|
195 | DO 923 II=N1STAR,N1END |
---|
196 | IF ( icmask(II,JJ) ) THEN |
---|
197 | OV(II,JJ)=(MXM(II,JJ)-W(II,JJ))/(-PN(F(II,JJ,1))+ & |
---|
198 | PP(F(II,JJ,0))+EP) |
---|
199 | UN(II,JJ)=(W(II,JJ)-MN(II,JJ))/(PP(F(II,JJ,1))-PN(F(II,JJ,0))+ & |
---|
200 | EP) |
---|
201 | ENDIF |
---|
202 | 923 CONTINUE |
---|
203 | DO 924 II=N1STAR,N1END |
---|
204 | IF ( icmask(II,JJ) ) THEN |
---|
205 | F(II,JJ,0)=PP(F(II,JJ,0))*AMIN1(1.,OV(II,JJ))+PN(F(II,JJ,0)) & |
---|
206 | *AMIN1(1.,UN(II,JJ)) |
---|
207 | F(II,JJ,1)=PP(F(II,JJ,1))*AMIN1(1.,UN(II,JJ))+PN(F(II,JJ,1)) & |
---|
208 | *AMIN1(1.,OV(II,JJ)) |
---|
209 | ENDIF |
---|
210 | 924 CONTINUE |
---|
211 | 9000 CONTINUE |
---|
212 | DO 925 JJ=N2STAR,N2END |
---|
213 | DO 925 II=N1STAR,N1END |
---|
214 | IF ( icmask(II,JJ) ) XF(II,JJ,IIM)=W(II,JJ)-(F(II,JJ,1)-F(II,JJ,0)) |
---|
215 | 925 CONTINUE |
---|
216 | |
---|
217 | ! |
---|
218 | 2000 CONTINUE |
---|
219 | RETURN |
---|
220 | END |
---|
221 | |
---|
222 | ! Version of sint that replaces mask with detailed ranges for avoiding boundaries |
---|
223 | ! may help performance by getting the conditionals out of innner loops |
---|
224 | |
---|
225 | SUBROUTINE SINTB(XF1, XF , & |
---|
226 | ims, ime, jms, jme, icmask , & |
---|
227 | its, ite, jts, jte, nf, xstag, ystag ) |
---|
228 | IMPLICIT NONE |
---|
229 | INTEGER ims, ime, jms, jme, & |
---|
230 | its, ite, jts, jte |
---|
231 | |
---|
232 | LOGICAL icmask( ims:ime, jms:jme ) |
---|
233 | LOGICAL xstag, ystag |
---|
234 | |
---|
235 | INTEGER nf, ior |
---|
236 | REAL one12, one24, ep |
---|
237 | PARAMETER(one12=1./12.,one24=1./24.) |
---|
238 | PARAMETER(ior=2) |
---|
239 | ! |
---|
240 | REAL XF(ims:ime,jms:jme,NF) |
---|
241 | REAL XF1(ims:ime,jms:jme,NF) |
---|
242 | ! |
---|
243 | REAL Y(ims:ime,jms:jme,-IOR:IOR), & |
---|
244 | Z(ims:ime,jms:jme,-IOR:IOR), & |
---|
245 | F(ims:ime,jms:jme,0:1) |
---|
246 | ! |
---|
247 | INTEGER I,J,II,JJ,IIM |
---|
248 | INTEGER N2STAR, N2END, N1STAR, N1END |
---|
249 | ! |
---|
250 | DATA EP/ 1.E-10/ |
---|
251 | ! |
---|
252 | ! PARAMETER(NONOS=1) |
---|
253 | ! PARAMETER(N1OS=N1*NONOS+1-NONOS,N2OS=N2*NONOS+1-NONOS) |
---|
254 | ! |
---|
255 | REAL W(ims:ime,jms:jme),OV(ims:ime,jms:jme),UN(ims:ime,jms:jme) |
---|
256 | REAL MXM(ims:ime,jms:jme),MN(ims:ime,jms:jme) |
---|
257 | REAL FL(ims:ime,jms:jme,0:1) |
---|
258 | REAL XIG(81), XJG(81) ! won't use but nine of these fellers. |
---|
259 | INTEGER IFRST |
---|
260 | integer rr |
---|
261 | COMMON /DEPAR2B/ XIG,XJG,IFRST |
---|
262 | DATA IFRST /1/ |
---|
263 | |
---|
264 | REAL rioff, rjoff |
---|
265 | ! |
---|
266 | REAL donor, y1, y2, a |
---|
267 | DONOR(Y1,Y2,A)=(Y1*AMAX1(0.,SIGN(1.,A))-Y2*AMIN1(0.,SIGN(1.,A)))*A |
---|
268 | REAL tr4, ym1, y0, yp1, yp2 |
---|
269 | TR4(YM1,Y0,YP1,YP2,A)=A*ONE12*(7.*(YP1+Y0)-(YP2+YM1)) & |
---|
270 | -A*A*ONE24*(15.*(YP1-Y0)-(YP2-YM1))-A*A*A*ONE12*((YP1+Y0) & |
---|
271 | -(YP2+YM1))+A*A*A*A*ONE24*(3.*(YP1-Y0)-(YP2-YM1)) |
---|
272 | REAL pp, pn, x |
---|
273 | PP(X)=AMAX1(0.,X) |
---|
274 | PN(X)=AMIN1(0.,X) |
---|
275 | |
---|
276 | rr = nint(sqrt(float(nf))) |
---|
277 | |
---|
278 | rioff = 0 |
---|
279 | rjoff = 0 |
---|
280 | if(xstag .and. (mod(rr,2) .eq. 0)) rioff = 1. |
---|
281 | if(ystag .and. (mod(rr,2) .eq. 0)) rjoff = 1. |
---|
282 | |
---|
283 | DO I=1,rr |
---|
284 | DO J=1,rr |
---|
285 | XIG(J+(I-1)*rr)=(float(rr)-1.-rioff)/float(2*rr)-FLOAT(J-1)*1./float(rr) |
---|
286 | XJG(J+(I-1)*rr)=(float(rr)-1.-rjoff)/float(2*rr)-FLOAT(I-1)*1./float(rr) |
---|
287 | ENDDO |
---|
288 | ENDDO |
---|
289 | IFRST = 0 |
---|
290 | |
---|
291 | !! ENDIF |
---|
292 | |
---|
293 | ! IF ( IFRST .EQ. 1 ) THEN |
---|
294 | ! DO I=1,3 |
---|
295 | ! DO J=1,3 |
---|
296 | ! XIG(J+(I-1)*3)=1./3.-FLOAT(J-1)*1./3. |
---|
297 | ! XJG(J+(I-1)*3)=1./3.-FLOAT(I-1)*1./3. |
---|
298 | ! ENDDO |
---|
299 | ! ENDDO |
---|
300 | ! IFRST = 0 |
---|
301 | ! ENDIF |
---|
302 | ! |
---|
303 | N2STAR = jts |
---|
304 | N2END = jte |
---|
305 | N1STAR = its |
---|
306 | N1END = ite |
---|
307 | |
---|
308 | DO 2000 IIM=1,NF |
---|
309 | ! |
---|
310 | ! HERE STARTS RESIDUAL ADVECTION |
---|
311 | ! |
---|
312 | DO 9000 JJ=N2STAR,N2END |
---|
313 | !cdir unroll=5 |
---|
314 | DO 50 J=-IOR,IOR |
---|
315 | |
---|
316 | !cdir unroll=5 |
---|
317 | DO 51 I=-IOR,IOR |
---|
318 | DO 511 II=N1STAR,N1END |
---|
319 | Y(II,JJ,I)=XF1(II+I,JJ+J,IIM) |
---|
320 | 511 CONTINUE |
---|
321 | 51 CONTINUE |
---|
322 | |
---|
323 | DO 811 II=N1STAR,N1END |
---|
324 | FL(II,JJ,0)=DONOR(Y(II,JJ,-1),Y(II,JJ,0),XIG(IIM)) |
---|
325 | FL(II,JJ,1)=DONOR(Y(II,JJ,0),Y(II,JJ,1),XIG(IIM)) |
---|
326 | 811 CONTINUE |
---|
327 | DO 812 II=N1STAR,N1END |
---|
328 | W(II,JJ)=Y(II,JJ,0)-(FL(II,JJ,1)-FL(II,JJ,0)) |
---|
329 | 812 CONTINUE |
---|
330 | DO 813 II=N1STAR,N1END |
---|
331 | MXM(II,JJ)= & |
---|
332 | AMAX1(Y(II,JJ,-1),Y(II,JJ,0),Y(II,JJ,1), & |
---|
333 | W(II,JJ)) |
---|
334 | MN(II,JJ)=AMIN1(Y(II,JJ,-1),Y(II,JJ,0),Y(II,JJ,1),W(II,JJ)) |
---|
335 | 813 CONTINUE |
---|
336 | DO 312 II=N1STAR,N1END |
---|
337 | F(II,JJ,0)= & |
---|
338 | TR4(Y(II,JJ,-2),Y(II,JJ,-1),Y(II,JJ,0), & |
---|
339 | Y(II,JJ,1),XIG(IIM)) |
---|
340 | F(II,JJ,1)= & |
---|
341 | TR4(Y(II,JJ,-1),Y(II,JJ,0),Y(II,JJ,1),Y(II,JJ,2),& |
---|
342 | XIG(IIM)) |
---|
343 | 312 CONTINUE |
---|
344 | DO 822 II=N1STAR,N1END |
---|
345 | F(II,JJ,0)=F(II,JJ,0)-FL(II,JJ,0) |
---|
346 | F(II,JJ,1)=F(II,JJ,1)-FL(II,JJ,1) |
---|
347 | 822 CONTINUE |
---|
348 | DO 823 II=N1STAR,N1END |
---|
349 | OV(II,JJ)=(MXM(II,JJ)-W(II,JJ))/(-PN(F(II,JJ,1))+ & |
---|
350 | PP(F(II,JJ,0))+EP) |
---|
351 | UN(II,JJ)=(W(II,JJ)-MN(II,JJ))/(PP(F(II,JJ,1))- & |
---|
352 | PN(F(II,JJ,0))+EP) |
---|
353 | 823 CONTINUE |
---|
354 | DO 824 II=N1STAR,N1END |
---|
355 | F(II,JJ,0)=PP(F(II,JJ,0))*AMIN1(1.,OV(II,JJ))+ & |
---|
356 | PN(F(II,JJ,0))*AMIN1(1.,UN(II,JJ)) |
---|
357 | F(II,JJ,1)=PP(F(II,JJ,1))*AMIN1(1.,UN(II,JJ))+ & |
---|
358 | PN(F(II,JJ,1))*AMIN1(1.,OV(II,JJ)) |
---|
359 | 824 CONTINUE |
---|
360 | DO 825 II=N1STAR,N1END |
---|
361 | Y(II,JJ,0)=W(II,JJ)-(F(II,JJ,1)-F(II,JJ,0)) |
---|
362 | 825 CONTINUE |
---|
363 | DO 361 II=N1STAR,N1END |
---|
364 | Z(II,JJ,J)=Y(II,JJ,0) |
---|
365 | 361 CONTINUE |
---|
366 | ! |
---|
367 | ! END IF FIRST J LOOP |
---|
368 | ! |
---|
369 | 8000 CONTINUE |
---|
370 | 50 CONTINUE |
---|
371 | |
---|
372 | DO 911 II=N1STAR,N1END |
---|
373 | FL(II,JJ,0)=DONOR(Z(II,JJ,-1),Z(II,JJ,0),XJG(IIM)) |
---|
374 | FL(II,JJ,1)=DONOR(Z(II,JJ,0),Z(II,JJ,1),XJG(IIM)) |
---|
375 | 911 CONTINUE |
---|
376 | DO 912 II=N1STAR,N1END |
---|
377 | W(II,JJ)=Z(II,JJ,0)-(FL(II,JJ,1)-FL(II,JJ,0)) |
---|
378 | 912 CONTINUE |
---|
379 | DO 913 II=N1STAR,N1END |
---|
380 | MXM(II,JJ)=AMAX1(Z(II,JJ,-1),Z(II,JJ,0),Z(II,JJ,1),W(II,JJ)) |
---|
381 | MN(II,JJ)=AMIN1(Z(II,JJ,-1),Z(II,JJ,0),Z(II,JJ,1),W(II,JJ)) |
---|
382 | 913 CONTINUE |
---|
383 | DO 412 II=N1STAR,N1END |
---|
384 | F(II,JJ,0)= & |
---|
385 | TR4(Z(II,JJ,-2),Z(II,JJ,-1),Z(II,JJ,0),Z(II,JJ,1)& |
---|
386 | ,XJG(IIM)) |
---|
387 | F(II,JJ,1)= & |
---|
388 | TR4(Z(II,JJ,-1),Z(II,JJ,0),Z(II,JJ,1),Z(II,JJ,2), & |
---|
389 | XJG(IIM)) |
---|
390 | 412 CONTINUE |
---|
391 | DO 922 II=N1STAR,N1END |
---|
392 | F(II,JJ,0)=F(II,JJ,0)-FL(II,JJ,0) |
---|
393 | F(II,JJ,1)=F(II,JJ,1)-FL(II,JJ,1) |
---|
394 | 922 CONTINUE |
---|
395 | DO 923 II=N1STAR,N1END |
---|
396 | OV(II,JJ)=(MXM(II,JJ)-W(II,JJ))/(-PN(F(II,JJ,1))+ & |
---|
397 | PP(F(II,JJ,0))+EP) |
---|
398 | UN(II,JJ)=(W(II,JJ)-MN(II,JJ))/(PP(F(II,JJ,1))-PN(F(II,JJ,0))+ & |
---|
399 | EP) |
---|
400 | 923 CONTINUE |
---|
401 | DO 924 II=N1STAR,N1END |
---|
402 | F(II,JJ,0)=PP(F(II,JJ,0))*AMIN1(1.,OV(II,JJ))+PN(F(II,JJ,0)) & |
---|
403 | *AMIN1(1.,UN(II,JJ)) |
---|
404 | F(II,JJ,1)=PP(F(II,JJ,1))*AMIN1(1.,UN(II,JJ))+PN(F(II,JJ,1)) & |
---|
405 | *AMIN1(1.,OV(II,JJ)) |
---|
406 | 924 CONTINUE |
---|
407 | 9000 CONTINUE |
---|
408 | DO 925 JJ=N2STAR,N2END |
---|
409 | DO 925 II=N1STAR,N1END |
---|
410 | XF(II,JJ,IIM)=W(II,JJ)-(F(II,JJ,1)-F(II,JJ,0)) |
---|
411 | 925 CONTINUE |
---|
412 | |
---|
413 | ! |
---|
414 | 2000 CONTINUE |
---|
415 | RETURN |
---|
416 | END |
---|
417 | |
---|
418 | |
---|