THIS SUBROUTINE SUPPLIES THE VALUES OF ASTRONOMICAL CONSTANTS.
NAME = NAME OF CONSTANT WHOSE VALUE IS DESIRED (IN)
'C' SPEED OF LIGHT IN METERS/SECOND
'C(AU/DAY)' SPEED OF LIGHT IN AU/DAY
'AU' LENGTH OF ASTRONOMICAL UNIT IN METERS
'AU(SEC)' LENGTH OF ASTRONOMICAL UNIT IN SECONDS
'GS' HELIOCENTRIC GRAVITATIONAL CONSTANT
IN METERS**3/SECOND**2
'GE' GEOCENTRIC GRAVITATIONAL CONSTANT
IN METERS**3/SECOND**2
'ERAD' EQUATORIAL RADIUS OF EARTH IN METERS
'F' FLATTENING FACTOR OF EARTH
'ANGVEL' NOMINAL MEAN ROTATIONAL ANGULAR VELOCITY
OF EARTH IN RADIANS/SECOND
'MASS_SUN' RECIPROCAL MASS OF THE SUN
'MASS_EAR' RECIPROCAL MASS OF THE EARTH
'MASS_MOO' RECIPROCAL MASS OF THE MOON
'MASS_MER' RECIPROCAL MASS OF MERCURY
: : : :
'MASS_PLU' RECIPROCAL MASS OF PLUTO
FACTOR = FACTOR BY WHICH CONSTANT VALUE IS TO BE MULTIPLIED
(IN)
CONST = CONSTANT VALUE AFTER MULTIPLICATION BY FACTOR (OUT)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=1) | :: | name*(*) | ||||
real(kind=wp) | :: | factor | ||||
real(kind=wp) | :: | const |
subroutine astcon (name,factor,const) real(wp) :: factor,const character name*(*) ! NOTE: THESE CONSTANT VALUES ARE BASED ON THE TDB SECOND WHERE ! APPLICABLE. real(wp),parameter :: c = 299792458.0_wp !! speed of light in meters/second is a defining physical constant real(wp),parameter :: ausec = 499.0047838061_wp !! light-time for one astronomical unit in seconds, from DE-405 ! SPEED OF LIGHT IN METERS/SECOND if ( name == 'C' ) then const = c ! SPEED OF LIGHT IN AU/DAY else if ( name == 'C(AU/DAY)' ) then const = 86400.d0 / ausec ! LENGTH OF ASTRONOMICAL UNIT IN METERS else if ( name == 'AU' ) then const = ausec * c ! LENGTH OF ASTRONOMICAL UNIT IN SECONDS else if ( name == 'AU(SEC)' ) then const = ausec ! HELIOCENTRIC GRAVITATIONAL CONSTANT IN METERS**3/SECOND**2, FROM ! DE-405 else if ( name == 'GS' ) then const = 1.32712440017987d20 ! GEOCENTRIC GRAVITATIONAL CONSTANT IN METERS**3/SECOND**2, FROM ! DE-405 else if ( name == 'GE' ) then const = 3.98600433d14 ! EQUATORIAL RADIUS OF EARTH IN METERS, FROM IERS CONVENTIONS (2003) else if ( name == 'ERAD' ) then const = 6378136.6d0 ! FLATTENING FACTOR OF EARTH, FROM IERS CONVENTIONS (2003) else if ( name == 'F' ) then const = 1.d0 / 298.25642d0 ! NOMINAL MEAN ROTATIONAL ANGULAR VELOCITY OF EARTH ! IN RADIANS/SECOND, FROM IERS CONVENTIONS (2003) else if ( name == 'ANGVEL' ) then const = 7.2921150d-5 ! RECIPROCAL MASSES OF SOLAR SYSTEM BODIES, FROM DE-405 ! (SUN MASS / BODY MASS) else if ( name(1:4) == 'MASS' ) then const = 1.d0 if ( name(6:8) == 'SUN' ) const = 1.d0 if ( name(6:8) == 'MOO' ) const = 27068700.387534d0 if ( name(6:8) == 'MER' ) const = 6023600.d0 if ( name(6:8) == 'VEN' ) const = 408523.71d0 if ( name(6:8) == 'EAR' ) const = 332946.050895d0 if ( name(6:8) == 'MAR' ) const = 3098708.d0 if ( name(6:8) == 'JUP' ) const = 1047.3486d0 if ( name(6:8) == 'SAT' ) const = 3497.898d0 if ( name(6:8) == 'URA' ) const = 22902.98d0 if ( name(6:8) == 'NEP' ) const = 19412.24d0 if ( name(6:8) == 'PLU' ) const = 135200000.d0 if ( name(6:8) == 'EMB' ) const = 328900.561400d0 end if const = const * factor end subroutine astcon