97 |
_RS xG(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RS xG(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
98 |
_RS threeSixtyRS |
_RS threeSixtyRS |
99 |
_RL yPole, symSign, poleValue |
_RL yPole, symSign, poleValue |
100 |
|
_RL edgeFac, poleFac |
101 |
PARAMETER ( threeSixtyRS = 360. ) |
PARAMETER ( threeSixtyRS = 360. ) |
102 |
PARAMETER ( yPole = 90. ) |
PARAMETER ( yPole = 90. ) |
103 |
INTEGER nxd2 |
INTEGER nxd2 |
227 |
IF ( l.GE.1 ) j = nyIn+l |
IF ( l.GE.1 ) j = nyIn+l |
228 |
k = MAX(1,MIN(j,nyIn)) |
k = MAX(1,MIN(j,nyIn)) |
229 |
IF ( poleSymmetry .AND. ABS(y_in(j)).GT.yPole ) THEN |
IF ( poleSymmetry .AND. ABS(y_in(j)).GT.yPole ) THEN |
230 |
|
IF ( nyIn.GE.3 .AND. ABS(y_in(k)).EQ.yPole ) |
231 |
|
& k = MAX(2,MIN(j,nyIn-1)) |
232 |
C- fill-in added row assuming pole-symmetry |
C- fill-in added row assuming pole-symmetry |
233 |
DO i=-1,nxd2 |
DO i=-1,nxd2 |
234 |
arrayin(i,j) = symSign*arrayin(i+nxd2,k) |
arrayin(i,j) = symSign*arrayin(i+nxd2,k) |
287 |
ENDIF |
ENDIF |
288 |
ENDDO |
ENDDO |
289 |
ENDIF |
ENDIF |
290 |
|
#ifndef EXF_USE_OLD_INTERP_POLE |
291 |
|
IF (method.EQ.1 .OR. method.EQ.2) THEN |
292 |
|
C- change first additional row from simple copy to linear interpolation |
293 |
|
C between nearest column values and pole value |
294 |
|
DO l=0,1 |
295 |
|
k = l*(nyIn+3) -1 |
296 |
|
IF ( ABS(y_in(k)).EQ.yPole ) THEN |
297 |
|
j = l*(nyIn+1) |
298 |
|
i = l*(nyIn-1) +1 |
299 |
|
edgeFac = (y_in(j) - y_in(k)) / (y_in(i) - y_in(k)) |
300 |
|
poleFac = (y_in(i) - y_in(j)) / (y_in(i) - y_in(k)) |
301 |
|
DO i=-1,nxIn+2 |
302 |
|
arrayin(i,j) = arrayin(i,j) * edgeFac |
303 |
|
& + arrayin(i,k) * poleFac |
304 |
|
ENDDO |
305 |
|
#ifdef ALLOW_DEBUG |
306 |
|
prtPole(3*l) = prtPole(3*l) + 0.3 |
307 |
|
#endif |
308 |
|
ENDIF |
309 |
|
ENDDO |
310 |
|
ENDIF |
311 |
|
#endif /* EXF_USE_OLD_INTERP_POLE */ |
312 |
|
|
313 |
#ifdef ALLOW_DEBUG |
#ifdef ALLOW_DEBUG |
314 |
debugFlag = ( exf_debugLev.GE.debLevC ) |
debugFlag = ( exf_debugLev.GE.debLevC ) |