C BMRAMG.FTN - FOR CONVERTING BMR MAGS TO AMG REAL*8 EAST,NORTH,LAT,LONG REAL*8 XMIN,XMAX,YMIN,YMAX REAL*8 LATSEC,LONSEC CHARACTER*30 FIRST CHARACTER*64 LAST INTEGER*4 LINE,FID,IEAST,INORTH,FLIGHT,TIME INTEGER*4 DATE REAL*8 MAGL,RESMAG,ALT OPEN(UNIT=4,FILE='king.dat',READONLY,BLANK='ZERO') OPEN(UNIT=8,FILE='king.amg') XMIN=999999.0D20 XMAX=-XMIN YMIN=XMIN YMAX=XMAX 10 READ(4,100,END=20) FIRST,LATDEG,LATMIN, . LATSEC,LONDEG,LONMIN,LONSEC,LAST 100 FORMAT(BZ,A30,2I3,F6.2,I4,I3,F6.2,A64) C 10 READ(4,100,END=20) LINE,FID,LATDEG,LATMIN,LATSEC,LONDEG,LONMIN, C . LONSEC,RESMAG,ALT C 100 FORMAT(16X,I7,I6,1X,2I3,F6.2,I4,I3,F6.2,9X,F9.2,36X,F9.2) C IF (ALT .LT. 0.0D00 .OR. ALT .GT. 1000.0D00) GOTO 10 C LOOKING ONLY FOR VALALID HEIGHTS IF (LATDEG .NE. 0 .AND. LONDEG .NE. 0) THEN C MAKE COORDS 0 IF HAVE NO POSITION LAT=DFLOAT(IABS(LATDEG))+DFLOAT(LATMIN)/60.0D00+LATSEC/3600.0D00 LONG=DFLOAT(LONDEG)+DFLOAT(LONMIN)/60.0D00+LONSEC/3600.0D00 CALL GEOUTM(LAT,LONG,EAST,NORTH) XMIN=DMIN1(XMIN,EAST) XMAX=DMAX1(XMAX,EAST) YMIN=DMIN1(YMIN,NORTH) YMAX=DMAX1(YMAX,NORTH) ELSE EAST=0.0D00 NORTH=0.0D00 ENDIF C************************************* C IF (EAST .LT. 318000.0 .OR. EAST .GT. 350000.) GOTO 10 C IF (NORTH .LT. 5433000. .OR. NORTH .GT. 5462000.) GOTO 10 WRITE(8,302) FIRST,EAST,NORTH,LAST 302 FORMAT(A30,2F10.1,A64) C IF (LATDEG .EQ. 0 .OR. LONDEG .EQ. 0) GOTO 10 C SKIP RANGE CHECK IEAST=EAST INORTH=NORTH C WRITE(8,302) LINE,IEAST,INORTH,RESMAG,ALT C 302 FORMAT(I6,I7,I8,F8.2,F8.2) GOTO 10 20 CLOSE(UNIT=8,STATUS='KEEP') WRITE(6,200) XMIN,XMAX,YMIN,YMAX 200 FORMAT(' EAST RANGE',2F10.1/' NORTH RANGE',2F10.1) CALL XIT END CTITLE GEOUTM GRID CONVERSION SUBROUTINE GEOUTM(LAT,LONG,EAST,YNORTH) C BASED ON THE TAS LANDS DEPT PROGRAM UTM C THE EQUATIONS USED ARE FROM TM PROJECTION TABLES 1944. C THE ORIGINAL FORMULAE AGREE WITH REDFEARNS FOR THE 1ST. AND C 2ND. TERMS BUT DIFFER IN THE 3RD. TERM. HOWEVER TO IMPROVE C ACCURACY THE FORMULA FOR NORTHING HAS BEEN CHANGED TO AGREE C WITH REDFEARNS IN THE 3RD. TERM (Q3) C CONVERTS FROM GEOGRAPHIC TO UTM COORDINATES C INPUT IS LATDEG.GGGGGG C LONDEG.GGGGGG C OUTPUT IS EAST COORDINATE,NORTH COORDINATE (DOUBLE PRECISION,METRES) DOUBLE PRECISION DEG,S,EAST,YNORTH,SIND,COSD,TAND,C,R,P,PC,PCC, . P1,P2,Q1,Q2,Q3,Q4,Q5,Q6,LAT,LONG DEG=LAT S=111133.34878D00*DEG-16038.9546D00*DSIN(0.034906585D00*DEG)+ . 16.8331D00*DSIN(0.0698132D00*DEG)-0.0218D00*DSIN(0.10472D00*DEG) DEG=0.01745329252D00*DEG SIND=DSIN(DEG) COSD=DCOS(DEG) TAND=(SIND/COSD)**2 C=1.0D00-0.6694541855D-2*SIND**2 R=6335461.141D00/C**1.5 P=6378160.0D00/DSQRT(C) PC=P*COSD PCC=PC*COSD**2 P1=(LONG*3600.0D00 . -529200.0D00)*1.D-4 P2=P1**2 Q1=1.D+7-0.9996D00*S Q2=PC*SIND*0.117475144D-2 Q3=PCC*SIND*(4.0D00*(P/R)**2+P/R-TAND)*0.230099D-6 Q4=PC*0.48461975563D-1 Q5=PCC*(P/R-TAND)*0.18984519D-4 Q6=PCC*COSD*COSD*(5.0D00-TAND*(18.0D00-TAND))*0.22311D-8 EAST=500000.0D00+P1*(Q4+P2*(Q5+P2*Q6)) YNORTH=Q1-P2*(Q2+P2*Q3) RETURN END INCLUDE '/mdata5/pe/xit.f'