libsim Versione 7.1.11

◆ 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 860 del file geo_proj_class.F90.

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
891
892csq = stretch_factor**2
893lon = x
894! TODO verificare la formula inversa
895lat = raddeg*asin((csq - 1.0d0 + (csq + 1.0d0)*sin(degrad*y)) / &
896 (csq + 1.0d0 + (csq - 1.0d0)*sin(degrad*y)))

Generated with Doxygen.