C SccsID = "@(#)dsptch.f 1.1 07/23/03" SUBROUTINE DSPTCH (ICODE,ZNCODE,FLAT,FLON,STATE,X,Y,S,A,IERR) REAL*8 FLAT,FLON,X,Y,S,A INTEGER ZNCODE,ZONE,STATE(2),SABR(56),CPNT(56),ZABR(40) DIMENSION MAXZ(56),NPNT(56),NFL(3),NNY(4),NMI(6) DATA SABR /2HAL,2HAK,2HAS,2HAZ,2HAR,2HCA,2H07,2HCO,2HCT,2HDE, 1 2HDC,2HFL,2HGA,2HGU,2HHI,2HID,2HIL,2HIN,2HIA,2HKS, 2 2HKY,2HLA,2HME,2HMD,2HMA,2HMI,2HMN,2HMS,2HMO,2HMT, 3 2HNE,2HNV,2HNH,2HNJ,2HNM,2HNY,2HNC,2HND,2HOH,2HOK, 4 2HOR,2HPA,2HPR,2HRI,2HSC,2HSD,2HTN,2HTX,2HUT,2HVT, 5 2HVA,2H52,2HWA,2HWV,2HWI,2HWY/ DATA CPNT /101,300,275,103,202,204,800,211,214, 1 106,225,400,109,700,111,116,119,121,216, 2 218,220,222,123,225,226,600,231,128,130, 3 234,237,133,136,137,138,500,240,241,243, 4 245,247,249,273,144,251,253,255,256,261, 5 145,264,800,266,268,270,146/ DATA MAXZ / 2, 9, 0, 3, 2, 7,-1, 3, 0, 0, 1 0, 3, 2, 0, 5, 3, 2, 2, 2, 2, 2 2, 3, 2, 0, 2, 6, 3, 2, 3, 3, 3 2, 3, 0, 0, 3, 4, 0, 2, 2, 2, 4 2, 2, 2, 0, 2, 2, 0, 5, 3, 0, 5 2,-1, 2, 2, 3, 4/ DATA ZABR /2H ,2HE ,2HW ,2HN ,2HS ,2HOF,2HE ,2HC ,2HW ,2HLI, 1 2HN ,2HC ,2HS ,2H10,2H1 ,2H2 ,2H3 ,2H4 ,2H5 ,2H6 , 2 2H7 ,2H8 ,2H9 ,2HM ,2HIS,2HE ,2HTC,2HW ,2HN ,2HLC, 3 2HS ,2HN ,2HNC,2HC ,2HSC,2HS ,2HE ,2HEC,2HWC,2HW / DATA NPNT / 1,14, 0, 6, 3,14, 0,10, 0, 0, 1 0, 1, 1, 0,14, 6, 1, 1, 3, 3, 2 3, 3, 1, 0,23,25,10, 1, 6,10, 3 3, 6, 0, 0, 6, 6, 0, 3, 3, 3, 4 3, 3, 0, 0, 3, 3, 0,31,10, 0, 5 3, 0, 3, 3,10,36/ DATA NFL /7,8,15/ DATA NNY /41,42,43,39/ DATA NMI /25,26,27,28,29,30/ IERR = 0 IF (ZNCODE.LT.11 .OR. ZNCODE.GT.564) GO TO 100 NST = ZNCODE/10 STATE(1) = SABR(NST) ZONE = MOD(ZNCODE,10) IF (ZONE.GT.0) GO TO 5 IF (NST.NE.2) GO TO 2 STATE(2) = ZABR(14) GO TO 8 2 IF (MAXZ(NST).GT.0) GO TO 100 STATE(2) = ZABR(1) GO TO 8 5 IF (ZONE.GT.MAXZ(NST)) GO TO 100 N = NPNT(NST) + ZONE STATE(2) = ZABR(N) 8 IPOINT = CPNT(NST)/100 GO TO (10,20,30,40,50,60,70,80), IPOINT C TRANSVERSE MERCATOR PROJECTION 10 IF (ZONE.EQ.0) ZONE = 1 LOC = CPNT(NST) + ZONE - 101 12 CALL MERCAT (ICODE,LOC,ZNCODE,FLAT,FLON,X,Y,A,S) RETURN C LAMBERT CONIC CONFORMAL PROJECTION 20 IF (ZONE.EQ.0) ZONE = 1 LOC = CPNT(NST) + ZONE - 201 22 CALL LAMBER (ICODE,LOC,ZNCODE,FLAT,FLON,X,Y,A,S) RETURN C ALASKA SPECIAL 30 IF (ZONE.GT.0) GO TO 35 LOC = 1 GO TO 22 35 CALL AKSPEC (ICODE,ZONE,FLAT,FLON,X,Y,A,S) RETURN C FLORIDA SPECIAL 40 LOC = NFL(ZONE) IF (ZONE-3) 12,22,70 C NEW YORK SPECIAL 50 LOC = NNY(ZONE) IF (ZONE-4) 12,22,70 C MICHIGAN SPECIAL 60 LOC = NMI(ZONE) IF (ZONE-4) 12,22,22 C AZIMUTHAL EQUIDISTANT 70 CALL AZMEQD (ICODE,FLAT,FLON,X,Y,A,S) RETURN C NO SUCH STATE EXISTS 80 X=0.0 Y=0.0 A=0.0 S=0.0 FLAT=0.0 FLON=0.0 RETURN 100 IERR = 1 RETURN END