dsf.f
45 lines
| 1.5 KiB
| text/x-fortran
|
FortranFixedLexer
r0 | C $Id: dsf.f 3304 2011-01-17 15:25:59Z brideout $ | |||
C | ||||
SUBROUTINE DSF(GCLAT,GLON,RKM,ALT,HALT,ISTOP,DS) | ||||
C | ||||
C Calculates an optimum integration step size for geomagnetic | ||||
C field line tracing routine LINTRA, as an empirical function of | ||||
C the geomagnetic dipole coordinates of the starting point. when | ||||
C start and end points are in the same hemisphere and | ||||
C abs(halt-alt)<10000, the empirical formula is modified so that | ||||
C ds is no greater than 1/100 of the altitude difference between | ||||
C start and end points. | ||||
C | ||||
C input: | ||||
C GCLAT - start point geocentric latitude (deg) | ||||
C GLON - start point geocentric longitude (deg) | ||||
C RKM - start point radial distance (km) | ||||
C ALT - starting point geodetic altitude | ||||
C HALT - tuning parameter for altitude test. | ||||
C ISTOP - set to -1 to enable abs(halt-alt)<10000 test | ||||
C output: | ||||
C DS - step size | ||||
C | ||||
C .. Scalar Arguments .. | ||||
DOUBLE PRECISION ALT,DS,GCLAT,GLON,HALT,RKM | ||||
INTEGER ISTOP | ||||
C .. | ||||
C .. Local Scalars .. | ||||
DOUBLE PRECISION RAD,SINGML | ||||
C .. | ||||
C .. Intrinsic Functions .. | ||||
INTRINSIC ABS,DCOS,DSIN | ||||
C .. | ||||
C .. Data statements .. | ||||
DATA RAD/57.2957795D0/ | ||||
C .. | ||||
C | ||||
SINGML = .98D0*DSIN(GCLAT/RAD) + | ||||
* .199D0*DCOS(GCLAT/RAD)*DCOS((GLON+69.D0)/RAD) | ||||
DS = .06D0*RKM/(1.D0-SINGML*SINGML) - 370.D0 | ||||
IF (DS.GT.3000.D0) DS = 3000.D0 | ||||
IF (ISTOP.EQ.-1 .AND. ABS(ALT-HALT).LT. | ||||
* 10000.D0) DS = ABS(ALT-HALT)/100.D0 | ||||
RETURN | ||||
C | ||||
END | ||||