| 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 | |
|---|