      SUBROUTINE INTVAG%FO,ALO,GO,VA,VO,R<                              INTG   2
C      FO IS LAT IN DEGREES,ALO LONGITUDE IN DEGREES OF DESIRED POINT   INTG   3
C     GO  GRAVITY      IN GALS,VA VARIANCE OF GO,VO UNIT VAR APPROX 1   INTG   4
C     G OBSERVED GRAVITY IN GALS WITH FREE AIR CORRECTION               INTG   5
C     S  VARIANCE OF G IN GALS L ELEVATION FACTOR                       INTG   6
C      N NUMBER OF POINTS SELECTED FOR INTERPOLATION                    INTG   7
      DIMENSION F%4000<,AL%4000<,G%4000<,S%4000<                        INTG   8
      DIMENSION  BLOCK%4,1000<,IBLOCK%8004<                             INTG   9
C     BLOCK,IBLOCK WRITTEN  OUT AND READ  IN ON UNIT IG                 INTG  10
      DIMENSION GR%50<,X%50<,Y%50<,W%50<                                INTG  11
C     X,Y CARTESIAN COORDS OF GRAVITY POINTS                            INTG  12
C     GR VALUES OF GRAVITY AT THESE POINTS WITH FREE AIR CORRECTION     INTG  13
C     W WEIGHTS FOR EACH POINT FOR USE WITH INTERPOLATION               INTG  14
      EQUIVALENCE %IBLOCK%3<,BLOCK%1,1<<                                INTG  15
C      IBLOCK%1< CONTAINS DEGSQ                                         INTG  16
C      IBLOCK%2< CONTAINS NUMBER OF USABLE WORDS                        INTG  17
C     ENSURES FIRST WORD IN IBLOCK IS SENTINEL#DEGSQUARE                INTG  18
      EQUIVALENCE %BLOCK%1,1<,F%1<<,%BLOCK%2,1<,AL%1<<                  INTG  19
C     LAT LONG ARE  ROWS 1 AND 2 OF BLOCK                               INTG  20
      EQUIVALENCE %BLOCK%3,1<,G%1<<,%BLOCK%4,1<,S%1<<                   INTG  21
C     ROWS  3 AND 4 OF BLOCK ARE GRAVITY AND ITS VARIANCE               INTG  22
      DIMENSION AA%50,9<,CC%9<,DD%10,10<,V%9<,IQUART%4<                 INTG  23
      DIMENSION IQ%4<                                                   INTG  24
C     IQUART INDICATES IF POINTS IN EACH QUADRANT%GT,#1< OR NOT %#0< OF INTG  25
C      IQ INDICATES IF POINTS IN EACH QUAD OF INNER CIRCLE              INTG  26
      COMMON IBLOCK                                                     INTGB  1
      DATA LLCSX/0/,IG/20/,IPR/3/                                       INTG  27
C      IG UNIT NO OF BLOCKED FILE OF INPUT DATA                         INTG  28
C     INITIALLY ILLCSX SET TO ZERO TO FORCE READING                     INTG  29
      DATA PI180/.017453289/                                            INTG  30
C      PI180 IS PI/180 DEGREES TO RADIANS                               INTG  31
      LLCS#INT%FO<*1000&INT%ALO<                                        INTG  32
C     COMPUTE DEGREE SQUARE REQUESTED BY FO,ALO                         INTG  33
      IF%LLCS .EQ. LLCSX< GO TO 10                                      INTG  34
C      CHECK IF PREVIOUS DATA CAN STILL BE USED                         INTG  35
      LLBS#LLCS-1001                                                    INTG  36
C     LLBS IS FIRST  OF 9 DEGREE SQUARES TO BE READ                     INTG  37
      REWIND IG                                                         INTGA  1
C     REWIND UNIT WITH BLOCKED GRAVITY DATA                             INTG  39
      NTW#3                                                             INTG  40
      DO 30 I#1,3                                                       INTG  41
      DO 31 J#1,3                                                       INTG  42
C     READ IN 9 DEGREE SQUARES                                          INTG  43
      ISEAR#LLBS&J-1&%I-1<*1000                                         INTG  44
C     ISEAR IS DEGREE SQUARE TO BE USED IN THE SEARCH                   INTG  45
      ISTORA #IBLOCK%NTW-1<                                             INTG  46
      ISTORB #IBLOCK%NTW-2<                                             INTG  47
C     PRESERVE LAST VALUES OF IBLOCK IN ISTORE                          INTG  48
303   READ%IG<%IBLOCK%NTW&II-3<,II#1,4002<                              INTGA  3
      IF%EOF%IG<<304,305                                                INTGA  4
304   REWIND IG                                                         INTGA  5
      NMORE#0                                                           INTGA  6
      GO TO 301                                                         INTGA  7
305   IF%ISEAR .NE. IBLOCK%NTW-2<<GO TO 303                             INTGB  2
      NMORE#IBLOCK%NTW-1<                                               INTGB  3
C      NMORE IS  TOTAL NUMBER OF USEFUL WORDS READ IN BLOCK             INTG  54
 301  IBLOCK%NTW-1<#ISTORA                                              INTG  55
      IBLOCK%NTW-2<#ISTORB                                              INTG  56
 302  NTW#NTW&NMORE                                                     INTG  65
31    CONTINUE                                                          INTG  66
30    CONTINUE                                                          INTG  67
C     IBLOCK ARRAY NOW FILLED WITH NTW WORDS                            INTG  68
      NPT#NTW/4                                                         INTG  69
C     NPT IS TOTAL NUMBER OF POINTS READ                                INTG  70
      LLCSX#LLCS                                                        INTG  71
C     RETAIN  LAST VALUE OF LLCS                                        INTG  72
      IF%NPT .LT. 12< GO TO 99                                          INTG  73
C      IF LESS THAN 12 POINTS ERROR EXIT                                INTG  74
   10 C#69.041*COS%FO*PI180<                                            INTG  75
      R#16.0                                                            INTG  76
      DR#4.0                                                            INTG  77
12    N#0                                                               INTG  78
      DO 101 I#1,4                                                      INTG  79
      IQ%I<#0                                                           INTG  80
  101 IQUART%I<#0                                                       INTG  81
C     INITIALIZE CIRCLE WITH 16 MILE RADIUS                             INTG  82
      RIQ#0                                                             INTG  83
C     RIQ SQUARE OF RAD OF INNER CIRCLE OF ANNULUS                      INTG  84
      NX#N                                                              INTG  85
C     NX IS NUMBER OF POINTS IN INNER CIRCLE FROM PREVIOUS SCAN         INTG  86
 1    RQ#R*R                                                            INTG  87
      DO 100 I#1,NTW,4                                                  INTG  88
      XP#69.041*%F%I<-FO<                                               INTG  89
      YP#C*%AL%I<-ALO<                                                  INTG  90
      D#XP*XP&YP*YP                                                     INTG  91
C      D IS SQUARE OF RADIAL DIST IN MI                                 INTG  92
      IF%D .GT.  .09 .OR. S%I< .LT. 0< GO TO 2                          INTG  93
C      I TH POINT WITHIN .3 MI AND AT A BM THEN NO INTERPOLATION        INTG  94
      GO#G%I< &981.                                                     INTG  95
      VA#S%I<*.001                                                      INTG  96
      VO#0.0                                                            INTG  97
      R#0.0                                                             INTG  98
      N#1                                                               INTG  99
      RETURN                                                            INTG 100
C     NO INTERPOLATION RETURN AFTER SETTING UP GO VO VA R               INTG 101
 2    IF%D .GE. RQ   .OR. D .LT. RIQ< GO TO 100                         INTG 102
C     IF POINT NOT IN ANNULAR AREA RI TO R THEN SKIP                    INTG 103
      N#N&1                                                             INTG 104
C     N IS COUNT OF POINTS USED                                         INTG 105
      IF%N .GE. 50< GO TO 21                                            INTG 106
      II#2.05&SIGN%1.,XP<&%1&SIGN%1.,YP<</2                             INTG 107
      IQUART%II<#1&IQ%II<                                               INTG 108
C     II HAS VALUES 1 TO 4 FOR --, -&, &-, &&                           INTG 109
      X%N<#XP                                                           INTG 110
      Y%N<#YP                                                           INTG 111
      GR%N<#G%I<                                                        INTG 112
      W%N<#.0001/%S%I<*S%I<<                                            INTG 113
C     GET GRAVITY LOCATION AND WEIGHT OF INCLUDED POINT                 INTG 114
 100  CONTINUE                                                          INTG 115
 20   IF%N .GT. 11< GO TO 4                                             INTG 116
C     RETURN IF AT LEAST 12 POINTS                                      INTG 117
      RIQ#RQ                                                            INTG 118
      R#R&DR                                                            INTG 119
      GO TO 1                                                           INTG 120
C     LOOK AT NEXT ANNULUS DR WIDE                                      INTG 121
 21   DR#DR/2.                                                          INTG 122
      IF%DR .LT. .3< GO TO 43                                           INTG 123
      R#R-DR                                                            INTG 124
      N#NX                                                              INTG 125
C     SET N BACK TO PREVIOUS VALUE                                      INTG 126
      DO 105 I#1,4                                                      INTG 127
105   IQUART%I<#0                                                       INTG 128
C     ZERO OUT QUADRANT INDICATOR FOR ANNULUS                           INTG 129
      IF%R*R.GT.RIQ< GO TO 1                                            INTG 130
C     CHECK THAT ANNULUS STILL EXISTS                                   INTG 131
      N#0                                                               INTG 132
      RIQ#0.                                                            INTG 133
      GO TO 1                                                           INTG 134
C     CHECK SMALLER AREA AND TRY TO GET LT    50 POINTS                 INTG 135
    4 ICHK#IQUART%1<*IQUART%2<*IQUART%3<*IQUART%4<                      INTG 136
      IF%ICHK .NE. 0< GO TO 44                                          INTG 137
      IF%N.GE.50< GO TO 43                                              INTG 138
C     GO ON IF GT 50 POINTS DESPITE BAD DISTRIBUTION                    INTG 139
      R#R&DR                                                            INTG 140
      DO 106 I#1,4                                                      INTG 141
106   IQ%I<#IQUART%I<                                                   INTG 142
C      INCLUDE INDICATORS FROM LAST ANNULUS                             INTG 143
      GO TO 1                                                           INTG 144
   43 WRITE %IPR,403< N,R                                               INTG 145
   44 DO 5 I#1,N                                                        INTG 146
      AA%I,1<#1.0                                                       INTG 147
      AA%I,2<#X%I<                                                      INTG 148
      AA%I,3<#X%I<*X%I<                                                 INTG 149
      AA%I,4<#Y%I<                                                      INTG 150
      AA%I,5<#X%I<*Y%I<                                                 INTG 151
      AA%I,6<#AA%I,3<*Y%I<                                              INTG 152
      AA%I,7<#Y%I<*Y%I<                                                 INTG 153
      AA%I,8<#X%I<*AA%I,7<                                              INTG 154
 5    AA%I,9<#AA%I,3<*AA%I,7<                                           INTG 155
      DO 11 I#1,9                                                       INTG 156
      DO 11 J#1,9                                                       INTG 157
      DD%I,J<#0.0                                                       INTG 158
      DO 11 K#1,N                                                       INTG 159
 11   DD%I,J<#DD%I,J<&AA%K,I<*AA%K,J<*W%K<                              INTG 160
      CALL MATINV%DD,9<                                                 INTG 161
      DG#DD%1,1<                                                        INTG 162
      DO 22 I#1,9                                                       INTG 163
      CC%I<#0.0                                                         INTG 164
      DO 22 J#1,N                                                       INTG 165
 22   CC%I<#CC%I<&AA%J,I<*W%J<*GR%J<                                    INTG 166
      DO 33 I#1,9                                                       INTG 167
      V%I<#0.0                                                          INTG 168
      DO 33 J#1,9                                                       INTG 169
 33   V%I<#V%I<&DD%I,J<*CC%J<                                           INTG 170
      GO#V%1<&981.                                                      INTG 171
      PVV#0.0                                                           INTG 172
      DO 6 I#1,N                                                        INTG 173
      POL#0.0                                                           INTG 174
      DO 7 J#1,9                                                        INTG 175
 7    POL#POL&AA%I,J<*V%J<                                              INTG 176
 6    PVV#PVV&W%I<*%GR%I<-POL<*%GR%I<-POL<                              INTG 177
      VO#SQRT%PVV/FLOAT%N-9<<                                           INTG 178
      VA#VO*SQRT%DG<                                                    INTG 179
      VO#VO*100000.                                                     INTG 180
      RETURN                                                            INTG 181
C      STOP IF  GT 40 POINTS  AND HIGH VARIANCE                         INTG 182
 99   WRITE%IPR,400< FO,ALO                                             INTG 187
      RETURN                                                            INTG 188
400   FORMAT%*  LESS THAN 12 POINTS AVAILABLE FOR PT AT*,F12.5,* N*,    INTGA  9
     1 F12.5,* W*/<                                                     INTGA 10
403   FORMAT%* GRAV FIELD OF *,I3,* POINTS PATCHY,DATA NOT IN EVERY QUADINTGA 11
     1 OF *,F3,* MI. CIRCLE AROUND BM*/<                                INTGA 12
      END                                                               INTG 195
