libsim Versione 7.2.1

◆ geo_proj_proj()

elemental subroutine geo_proj_proj ( type(geo_proj), intent(in) this,
double precision, intent(in) lon,
double precision, intent(in) lat,
double precision, intent(out) x,
double precision, intent(out) y )

Computes and returns coordinates in the projected system given the geographical coordinates.

Parametri
[in]thisobject to project
[in]longeographical coordinates
[in]latgeographical coordinates
[out]xprojected coordinates
[out]yprojected coordinates

Definizione alla linea 854 del file geo_proj_class.F90.

855l_south_pole = (latitude_south_pole+90.)*degrad
856
857cy0 = cos(l_south_pole)
858sy0 = sin(l_south_pole)
859
860lat = raddeg*asin(sy0*cos(degrad*y)*cos(xr)+cy0*sin(degrad*y))
861lon = longitude_south_pole + &
862 raddeg*asin(sin(xr)*cos(degrad*y)/cos(degrad*lat))
863
864END SUBROUTINE unproj_rotated_ll
865
866! come usare il polo? ruotare e antiruotare?
867ELEMENTAL SUBROUTINE proj_stretched_ll(lon,lat,x,y, &
868 longitude_stretch_pole, latitude_stretch_pole, stretch_factor)
869DOUBLE PRECISION, INTENT(in) :: lon,lat
870DOUBLE PRECISION, INTENT(out) :: x,y
871DOUBLE PRECISION, INTENT(in) :: longitude_stretch_pole, latitude_stretch_pole, &
872 stretch_factor
873
874DOUBLE PRECISION :: csq
875
876csq = stretch_factor**2
877x = lon
878y = raddeg*asin((1.0d0 - csq + (1.0d0 + csq)*sin(degrad*lat)) / &
879 (1.0d0 + csq + (1.0d0 - csq)*sin(degrad*lat)))
880
881END SUBROUTINE proj_stretched_ll
882
883ELEMENTAL SUBROUTINE unproj_stretched_ll(x,y,lon,lat,&
884 longitude_stretch_pole, latitude_stretch_pole, stretch_factor)
885DOUBLE PRECISION, INTENT(in) :: x,y
886DOUBLE PRECISION, INTENT(out) :: lon,lat
887DOUBLE PRECISION, INTENT(in) :: longitude_stretch_pole, latitude_stretch_pole, &
888 stretch_factor
889
890DOUBLE PRECISION :: csq

Generated with Doxygen.