double precision versions of kurvp1, kurvp2?

From: jprinos@XXXXXX
Date: Mon Aug 04 2003 - 13:03:26 MDT


Hello all,

I'm using the FITGRID procedures KURVP1 and KURVP2 to detemine the points
of intersection of two closed polygons .

The polygons represent (roughly circular) wind adjusted range circles. One
calculated outbound from some point on the earth and the other inbound to
that point.

When my input original polygons get to be of a small diameter, representing
a radius of roughly 200Nm or under, the return arrays from the KURVP1
function (XP,YP) become NAN.

I'm wondering if there are double precision versions of these function so
that I can use this program for smaller polygon radii?

Thanks in advance,

John Prinos
jprinos@dehavilland.ca

CODE: (bad as it is...)

        CHARACTER*80 ACNAME,COMMAND,CRCLTYPE,CNAME
        CHARACTER*250 MAPFILE,CITYNAME
        DOUBLE PRECISION PLAT,PLON,ANGL,PLATDIFF,PLONDIFF
      DOUBLE PRECISION ANGLL,ANGLR,ANGLB,ANGLT
        INTEGER NU1,NU2,IERR,IOUT,CLRINDX,ACNINDX
      REAL PLATR,PLONR,PLATN,PLONN,CLAT,CLON
      REAL XLV,XRV,YBV,YTV,XLW,XRW,YBW,YTW,LS
C
C Declare stuff required to do color fill.
C
        PARAMETER (LAMA=12000000,NCRA=600000,NGPS=300,LRWK=2*NCRA)
C
        DIMENSION IAMA(LAMA),XCRA(NCRA),YCRA(NCRA),IAAI(NGPS),IAGI(NGPS)
        REAL XUN(16),YUN(16),XP(16),YP(16),TEMP(32),S(16)
      REAL XU1(16),YU1(16), XU2(16),YU2(16)
C
        PARAMETER (IOUT=1000)
      REAL U(IOUT),XO1(IOUT),YO1(IOUT),XON(IOUT),YON(IOUT),
     + XO2(IOUT),YO2(IOUT)
C

....

      CALL GETARG(1,MAPFILE)
      OPEN(UNIT=10,FILE=MAPFILE,STATUS='OLD')
      READ(10,*) ANGLL,ANGLR,ANGLB,ANGLT
      READ(10,*) CNAME
      READ(10,*) PLAT,PLON
      READ(10,*) ACNAME
1 READ(10,*,END=999) COMMAND
      IF(
     +(COMMAND.EQ.'OB').OR.
     +(COMMAND.EQ.'IB').OR.
     +(COMMAND.EQ.'0W'))
     +THEN
          NU1 = 16
          DO 21 I=1,NU1
C XU1 Latitude point of the Ith point on the range circle
C YU1 Long. point of the Ith point on the range circle
             READ(10,*) XU1(I),YU1(I)
21 CONTINUE
C
C Do KURVP1 set up.
C
          CALL KURVP1(NU1,XU1,YU1,XP,YP,TEMP,S,1,IERR)
          IF (IERR .NE. 0) THEN
              PRINT *, 'Error return from KURVP1 =',IERR
              STOP
          ENDIF
C
C Get interpolated points using KURV2.
C
          TINC = 1.0/(IOUT-1)
          DO 10 I=1,IOUT
            U(I) = (I-1)*TINC
            CALL KURVP2(U(I),XO1(I),YO1(I),NU1,XU1,YU1,XP,YP,S,1)
C PRINT *, 'I=',I,' U=',U(I),' X01=', XO1(I),' YO1=',YO1(I)
          IF(ABS(XO1(I)-PLAT).GT.PLATDIFF) PLATDIFF = ABS(XO1(I)-PLAT)
          IF(ABS(YO1(I)-PLON).GT.PLONDIFF) PLONDIFF = ABS(YO1(I)-PLON)
10 CONTINUE
      ENDIF
      GOTO 1
......

 E-MAIL NOTICE: The information contained in this e-mail message (and any
attachment(s) transmitted herewith) is intended for the exclusive use of
the addressee(s) named above. This message may be a solicitor-client
communication and as such is privileged and confidential. If you are not
an addressee (or responsible for delivery of this message to such person),
any disclosure, reproduction, distribution or other dissemination or use of
this message, in whole or in part, is strictly prohibited. If you have
received this message in error, please notify the sender immediately by
return e-mail and delete this message.

_______________________________________________
ncarg-talk mailing list
ncarg-talk@ucar.edu
http://mailman.ucar.edu/mailman/listinfo/ncarg-talk



This archive was generated by hypermail 2b29 : Mon Aug 04 2003 - 16:12:09 MDT