--- DarthVader/OrbitalInfo/src/igrf_sub.for 2009/08/04 14:01:27 1.3 +++ DarthVader/OrbitalInfo/src/igrf_sub.for 2012/05/15 15:00:51 1.7 @@ -2,17 +2,17 @@ & xl,icode,dip,dec) c---------------------------------------------------------------- c INPUT: -c xlat geodatic latitude in degrees -c xlong geodatic longitude in degrees -c year decimal year (year+month/12.0-0.5 or year+day-of-year/365 -c or 366 if leap year) -c height height in km +c xlat geodatic latitude in degrees +c xlong geodatic longitude in degrees +c year decimal year (year+month/12.0-0.5 or year+day-of-year/365 +c or 366 if leap year) +c height height in km c OUTPUT: -c xl L value -c icode =1 L is correct; =2 L is not correct; -c =3 an approximation is used -c dip geomagnetic inclination in degrees -c dec geomagnetic declination in degress +c xl L value +c icode =1 L is correct; =2 L is not correct; +c =3 an approximation is used +c dip geomagnetic inclination in degrees +c dec geomagnetic declination in degress c---------------------------------------------------------------- REAL LATI,LONGI @@ -20,7 +20,7 @@ SAVE /GENER/ C CALL INITIZE - ibbb=0 + ibbb=0 ALOG2=ALOG(2.) ISTART=1 lati=xlat @@ -32,7 +32,7 @@ CALL FELDG(LATI,LONGI,HEIGHT,BNORTH,BEAST,BDOWN,BABS) CALL SHELLG(LATI,LONGI,HEIGHT,DIMO,XL,ICODE,BAB1) DIP=ASIN(BDOWN/BABS)/UMR - DEC=ASIN(BEAST/SQRT(BEAST*BEAST+BNORTH*BNORTH))/UMR + DEC=ASIN(BEAST/SQRT(BEAST*BEAST+BNORTH*BNORTH))/UMR RETURN END c @@ -191,7 +191,7 @@ C B0 MAGNETIC FIELD STRENGTH IN GAUSS C----------------------------------------------------------------------- DIMENSION V(3),U(3,3),P(8,100),SP(3) - COMMON X(3),H(144) + COMMON X(3),H(196) COMMON/FIDB0/ SP SAVE /FIDB0/ COMMON/GENER/ UMR,ERA,AQUAD,BQUAD @@ -342,17 +342,17 @@ C-- because 1E-38 is the minimal allowable arg. for ALOG in our envir. C-- D. Bilitza, Nov 87. C -11 FI=0.5*ABS(FI)/SQRT(B0)+1E-12 +11 FI=0.5*ABS(FI)/SQRT(B0)+1E-12 C C*****COMPUTE L FROM B AND I. SAME AS CARMEL IN INVAR. C C-- Correct dipole moment is used here. D. Bilitza, Nov 87. C DIMOB0=DIMO/B0 - arg1=alog(FI) - arg2=alog(DIMOB0) -c arg = FI*FI*FI/DIMOB0 -c if(abs(arg).gt.88.0) arg=88.0 + arg1=alog(FI) + arg2=alog(DIMOB0) +c arg = FI*FI*FI/DIMOB0 +c if(abs(arg).gt.88.0) arg=88.0 XX=3*arg1-arg2 IF(XX.GT.23.0) GOTO 776 IF(XX.GT.11.7) GOTO 775 @@ -394,7 +394,7 @@ C* CALLS ENTRY POINT FELDI IN GEOMAGNETIC FIELD SUBROUTINE FELDG * C******************************************************************* DIMENSION P(7),U(3,3) - COMMON XI(3),H(144) + COMMON XI(3),H(196) C*****XM,YM,ZM ARE GEOMAGNETIC CARTESIAN INVERSE CO-ORDINATES ZM=P(3) FLI=P(1)*P(1)+P(2)*P(2)+1E-15 @@ -476,11 +476,11 @@ C POINTING IN THE TANGENTIAL PLANE TO THE NORTH, EAST C AND DOWNWARD. C----------------------------------------------------------------------- - DIMENSION V(3),B(3),G(144) + DIMENSION V(3),B(3),G(196) CHARACTER*258 NAME INTEGER NMAX REAL TIME - COMMON XI(3),H(144) + COMMON XI(3),H(196) COMMON/MODEL/ G,NMAX,TIME,NAME SAVE/MODEL/ COMMON/GENER/ UMR,ERA,AQUAD,BQUAD @@ -581,8 +581,8 @@ CHARACTER*258 FIL1, FIL2 CHARACTER*258 FILMOD C ### FILMOD, DTEMOD arrays +1 -c DIMENSION GH1(144),GH2(120),GHA(144),FILMOD(14),DTEMOD(14) - DIMENSION GH1(144),GH2(120),GHA(144),FILMOD(3),DTEMOD(3) +c DIMENSION GH1(144),GH2(120),GHA(144),FILMOD(14),DTEMOD(14) + DIMENSION GH1(196),GH2(196),GHA(196),FILMOD(3),DTEMOD(3) DOUBLE PRECISION X,F0,F INTEGER L1,L2,L3 INTEGER NMAX @@ -615,11 +615,11 @@ c FILMOD(1) = 'OrbitalInfo/src/dgrf00.dat' c FILMOD(2) = 'OrbitalInfo/src/igrf05.dat' c FILMOD(3) = 'OrbitalInfo/src/igrf05s.dat' -c WRITE(*,*) FILMOD(1) -c WRITE(*,*) FILMOD(2) -c WRITE(*,*) FILMOD(3) +c WRITE(*,*) FILMOD(1) +c WRITE(*,*) FILMOD(2) +c WRITE(*,*) FILMOD(3) c DATA FILMOD / 'dgrf00.dat', 'igrf05.dat', 'igrf05s.dat'/ - DATA DTEMOD / 2000., 2005., 2010./ + DATA DTEMOD / 2005., 2010., 2015./ c c DATA FILMOD /'dgrf45.dat', 'dgrf50.dat', c 1 'dgrf55.dat', 'dgrf60.dat', 'dgrf65.dat', @@ -652,10 +652,13 @@ FIL1 = FILMOD(L) DTE2 = DTEMOD(L+1) FIL2 = FILMOD(L+1) +c WRITE(*,*) FIL1 +c WRITE(*,*) FIL2 c print *, "que" C-- GET IGRF COEFFICIENTS FOR THE BOUNDARY YEARS CALL GETSHC (IU, FIL1, NMAX1, ERAD, GH1, IER) IF (IER .NE. 0) STOP +c print *, "quessss" CALL GETSHC (IU, FIL2, NMAX2, ERAD, GH2, IER) IF (IER .NE. 0) STOP c print *, "quj" @@ -944,7 +947,7 @@ C ASTRONOMICAL UNION . C----------------------------------------------------------------- INTEGER TL1,TL2,TL3 - CHARACTER *258 TP1,TP2,TP3 + CHARACTER (len=258) TP1,TP2,TP3 INTEGER L1,L2,L3 CHARACTER *258 P1,P2,P3 COMMON/PPATH/ L1,L2,L3,P1, P2, P3