|
◆ geo_proj_unproj()
elemental subroutine geo_proj_unproj |
( |
type(geo_proj), intent(in) |
this, |
|
|
double precision, intent(in) |
x, |
|
|
double precision, intent(in) |
y, |
|
|
double precision, intent(out) |
lon, |
|
|
double precision, intent(out) |
lat |
|
) |
| |
Computes and returns geographical coordinates given the coordinates in the projected system.
- Parametri
-
[in] | this | object to unproject |
[in] | x | projected coordinates |
[in] | y | projected coordinates |
[out] | lon | geographical coordinates |
[out] | lat | geographical coordinates |
Definizione alla linea 906 del file geo_proj_class.F90.
909 ELEMENTAL SUBROUTINE proj_lambert(lon,lat,x,y, &
910 latin1, latin2, lov, lad, projection_center_flag)
911 DOUBLE PRECISION, INTENT(in) :: lon,lat
912 DOUBLE PRECISION, INTENT(out) :: x,y
913 DOUBLE PRECISION, INTENT(in) :: latin1, latin2, lov, lad
914 INTEGER, INTENT(in) :: projection_center_flag
916 DOUBLE PRECISION :: n, f, ro0, ro, cs1, cs2, cs3, pollat, angle, cot
917 DOUBLE PRECISION, PARAMETER :: epsy = 1.0d-100
919 IF (iand(projection_center_flag, 128) == 0) THEN
920 pollat = 90.d0*degrad
922 pollat = -90.d0*degrad
924 cs1 = cos(degrad*latin1)
925 cs2 = tan(pi*.25d0 + degrad*latin1*.5d0)
927 IF (latin1 == latin2) THEN
928 n = sin(degrad*latin1)
930 n = log(cs1/cos(degrad*latin2)) / &
931 log(tan(pi*.25d0 + degrad*latin2*.5d0) / cs2)
933 f = cs1*cs2**n/n*rearth
934 angle = pi*.25d0 + pollat*.5d0
935 cot = cos(angle)/sin(angle)
942 angle = pi*.25d0 + degrad*lat*.5d0
|