B-3
+6.71719408D0,6.94958782D0,7.19002295D0,7.43877649D0,7.69613600D0,
+7.96239948D0,8.23787308D0,8.52287960D0,8.81774521D0,9.12281322D0,
+9.43843555D0,9.76497555D0,10.1028166D0,10.4523439D0,10.8139601D0,
+11.1880913D0,11.5751657D0,11.9756327D0,12.3899536D0,12.8186092D0,
+13.2620945D0,13.7209234D0,14.1956263D0,14.6867533D0,15.1948662D0,
+15.7205639D0,16.2644482D0,16.8271503D0,17.4093189D0,18.0116291D0,
+18.6347790D0,19.2794857D0,19.9464989D0,20.6365891D0,21.3505535D0,
+22.0892124D0,22.8534336D0,23.6440945D0,24.4621086D0,25.3084259D0,
+26.1840210D0,27.0899105D0,28.0271397D0,28.9967957D0,29.9999981D0/
C db range listings (low precision for space)
data rbogus / 1.03,1.07,1.11,1.15,1.19,1.23,1.27,1.31,1.36,1.41,
+ 1.45,1.50,1.56,1.61,1.67,1.72,1.78,1.84,1.91,1.97,
+ 2.04,2.11,2.19,2.26,2.34,2.42,2.51,2.59,2.68,2.77,
+ 2.87,2.97,3.07,3.18,3.29,3.40,3.52,3.64,3.77,3.90,
+ 4.03,4.17,4.32,4.47,4.67,4.78,4.95,5.15,5.29,5.48,
+ 5.67,5.86,6.07,6.28,6.49,6.72,6.95,7.17,7.44,7.70,
+ 7.96,8.24,8.52,8.82,9.12,9.44,9.77,10.1,10.5,10.8,
+ 11.2,11.6,12.0,12.4,12.8,13.3,13.7,14.2,14.7,15.2,
+ 15.7,16.3,16.8,17.4,18.0,18.6,19.3,19.9,20.6,21.4,
+ 22.1,22.9,23.6,24.5,25.3,26.2,27.1,28.0,29.0,30.0/
C record breaks for core, shells
data ireca / 0,873600,1102920,1332240,1561560,1790880,2020200,
+ 2249520,2478840,2708160,2937480,3166800,3396120,
+ 873600/
C local time breaks for shells lt = 30 (2 hr) used for 15-45 (1-3)
C hr, lt = 60 (4 hr) used for 45-75 (3-5 hr), etc.
C lt = 360 (0 hr) used for 345-15 (23 to 1 hr)
data wlx / 0., 15., 45., 75., 105., 135., 165.,
+ 195., 225., 255., 285., 315., 345.,
+ 360./
C open trajectory file, output file and data file
open(10,file='trajd.in',status='old')
open(11,file='JFluencegridgire.out',status='unknown')
open(12,FILE='JgridballintGIRESynch1-30.direct',STATUS='OLD',
+ACCESS='DIRECT',RECL=418)
n = 0
do i = 1,34
Flue(i) = 0.D0
enddo
C process
etx = 0.D0
C 1 READ(10,*,end=2001)et,rj,alat,wlong
C 1 READ(10,301,end=2001)date,rj,alat,wlong
1 READ(10,401,end=2001)date,etx,rj,alat,wlong
n = n + 1
if(float(n/10000) .eq. float(n)/10000.)
+ print*,n,' ',date,' ',rj,alat,wlong
irj = 0
do i = 1,100
if(rj .gt. rdb(i)) irj = i
enddo
C find et (don't skip dates where Range is out of bounds to avoid LARGE
C delta T, use etx if available
if(etx .eq. 0.D0) call xtime(date,et)
if(etx .ne. 0.D0) et = etx
if(n .eq. 1)etold = et
C if irj out of range read another record.
if(irj .eq. 0. .or. irj .eq. 100) go to 1
if(alat .eq. 90.) alat = alat - 0.0001 ! for proper integer below
ial = int(alat + 90.)/2
iwl = int(wlong)/3