C $Id: invlat.f 3304 2011-01-17 15:25:59Z brideout $ C SUBROUTINE INVLAT(TM,GDLAT,GLON,GDALT,RL,RLATI) C .. Scalar Arguments .. DOUBLE PRECISION GDALT,GDLAT,GLON,RL,RLATI,TM C .. C .. Local Scalars .. DOUBLE PRECISION BB,DTR,GCALT,GCLAT,R,RKM,ST,T C .. C .. External Subroutines .. EXTERNAL CONVRT,INVAR C .. C .. Intrinsic Functions .. INTRINSIC ACOS,DMAX1,SIN,SQRT C .. C .. Data statements .. C C INVLAT CALCULATES THE L SHELL PARAMETER AND INVARIANT LATITUDE C OF A POINT SPECIFIED BY ITS GEODETIC LATITUDE, LONGITUDE AND C ALTITUDE C C INPUT C TM - TIME IN YEARS (E.G. 1975.2) C GDLAT - GEODETIC LATITUDE OF OBSERVATION POINT C GLON - LONGITUDE OF OBSERVATION POINT C GDALT - ALTITUDE ABOVE SPHEROID OF OBSERVATION POINT C OUTPUT C RLATI - INVARIANT LATITUDE C RL - MAGNETIC L PARAMETER C DATA DTR/.0174532925199D0/ C .. C C .....CALCULATE GEOCENTRIC COORDINATES OF POINT..... CALL CONVRT(1,GDLAT,GDALT,GCLAT,RKM) T = DTR*(90.D0-GCLAT) ST = SIN(T) C C .....CALCULATE L-SHELL PARAMETER..... GCALT = RKM - 6378.16D0/SQRT(1.D0+.0067397D0*ST*ST) CALL INVAR(TM,GCLAT,GLON,GCALT,.01D0,BB,RL) C C .....CALCULATE INVARIANT LATITUDE..... R = RKM/(RKM-GCALT) RLATI = ACOS(SQRT(R/DMAX1(RL,R)))/DTR RETURN C END