2 |
& xl,icode,dip,dec) |
& xl,icode,dip,dec) |
3 |
c---------------------------------------------------------------- |
c---------------------------------------------------------------- |
4 |
c INPUT: |
c INPUT: |
5 |
c xlat geodatic latitude in degrees |
c xlat geodatic latitude in degrees |
6 |
c xlong geodatic longitude in degrees |
c xlong geodatic longitude in degrees |
7 |
c year decimal year (year+month/12.0-0.5 or year+day-of-year/365 |
c year decimal year (year+month/12.0-0.5 or year+day-of-year/365 |
8 |
c or 366 if leap year) |
c or 366 if leap year) |
9 |
c height height in km |
c height height in km |
10 |
c OUTPUT: |
c OUTPUT: |
11 |
c xl L value |
c xl L value |
12 |
c icode =1 L is correct; =2 L is not correct; |
c icode =1 L is correct; =2 L is not correct; |
13 |
c =3 an approximation is used |
c =3 an approximation is used |
14 |
c dip geomagnetic inclination in degrees |
c dip geomagnetic inclination in degrees |
15 |
c dec geomagnetic declination in degress |
c dec geomagnetic declination in degress |
16 |
c---------------------------------------------------------------- |
c---------------------------------------------------------------- |
17 |
|
|
18 |
REAL LATI,LONGI |
REAL LATI,LONGI |
20 |
SAVE /GENER/ |
SAVE /GENER/ |
21 |
C |
C |
22 |
CALL INITIZE |
CALL INITIZE |
23 |
ibbb=0 |
ibbb=0 |
24 |
ALOG2=ALOG(2.) |
ALOG2=ALOG(2.) |
25 |
ISTART=1 |
ISTART=1 |
26 |
lati=xlat |
lati=xlat |
32 |
CALL FELDG(LATI,LONGI,HEIGHT,BNORTH,BEAST,BDOWN,BABS) |
CALL FELDG(LATI,LONGI,HEIGHT,BNORTH,BEAST,BDOWN,BABS) |
33 |
CALL SHELLG(LATI,LONGI,HEIGHT,DIMO,XL,ICODE,BAB1) |
CALL SHELLG(LATI,LONGI,HEIGHT,DIMO,XL,ICODE,BAB1) |
34 |
DIP=ASIN(BDOWN/BABS)/UMR |
DIP=ASIN(BDOWN/BABS)/UMR |
35 |
DEC=ASIN(BEAST/SQRT(BEAST*BEAST+BNORTH*BNORTH))/UMR |
DEC=ASIN(BEAST/SQRT(BEAST*BEAST+BNORTH*BNORTH))/UMR |
36 |
RETURN |
RETURN |
37 |
END |
END |
38 |
c |
c |
342 |
C-- because 1E-38 is the minimal allowable arg. for ALOG in our envir. |
C-- because 1E-38 is the minimal allowable arg. for ALOG in our envir. |
343 |
C-- D. Bilitza, Nov 87. |
C-- D. Bilitza, Nov 87. |
344 |
C |
C |
345 |
11 FI=0.5*ABS(FI)/SQRT(B0)+1E-12 |
11 FI=0.5*ABS(FI)/SQRT(B0)+1E-12 |
346 |
C |
C |
347 |
C*****COMPUTE L FROM B AND I. SAME AS CARMEL IN INVAR. |
C*****COMPUTE L FROM B AND I. SAME AS CARMEL IN INVAR. |
348 |
C |
C |
349 |
C-- Correct dipole moment is used here. D. Bilitza, Nov 87. |
C-- Correct dipole moment is used here. D. Bilitza, Nov 87. |
350 |
C |
C |
351 |
DIMOB0=DIMO/B0 |
DIMOB0=DIMO/B0 |
352 |
arg1=alog(FI) |
arg1=alog(FI) |
353 |
arg2=alog(DIMOB0) |
arg2=alog(DIMOB0) |
354 |
c arg = FI*FI*FI/DIMOB0 |
c arg = FI*FI*FI/DIMOB0 |
355 |
c if(abs(arg).gt.88.0) arg=88.0 |
c if(abs(arg).gt.88.0) arg=88.0 |
356 |
XX=3*arg1-arg2 |
XX=3*arg1-arg2 |
357 |
IF(XX.GT.23.0) GOTO 776 |
IF(XX.GT.23.0) GOTO 776 |
358 |
IF(XX.GT.11.7) GOTO 775 |
IF(XX.GT.11.7) GOTO 775 |
619 |
c WRITE(*,*) FILMOD(2) |
c WRITE(*,*) FILMOD(2) |
620 |
c WRITE(*,*) FILMOD(3) |
c WRITE(*,*) FILMOD(3) |
621 |
c DATA FILMOD / 'dgrf00.dat', 'igrf05.dat', 'igrf05s.dat'/ |
c DATA FILMOD / 'dgrf00.dat', 'igrf05.dat', 'igrf05s.dat'/ |
622 |
DATA DTEMOD / 2000., 2005., 2010./ |
DATA DTEMOD / 2005., 2010., 2015./ |
623 |
c |
c |
624 |
c DATA FILMOD /'dgrf45.dat', 'dgrf50.dat', |
c DATA FILMOD /'dgrf45.dat', 'dgrf50.dat', |
625 |
c 1 'dgrf55.dat', 'dgrf60.dat', 'dgrf65.dat', |
c 1 'dgrf55.dat', 'dgrf60.dat', 'dgrf65.dat', |