LAMBERT

Fortran version:

    LOGICAL FUNCTION LAMBERT( CNAME, A, B, C, XC, YV )
    ENTRY POLSTE( CNAME, A, B, C, X, Y )
    ENTRY TRMERC( CNAME, A, B, C, X, Y )
    ENTRY EQMERC( CNAME, A, B, C, X, Y )
    ENTRY ALBERS( CNAME, A, B, C, X, Y )

    ENTRY SETLAM( A, B, C, X, Y )
    ENTRY SETPOL( A, B, C, X, Y )
    ENTRY SETTRM( A, B, C, X, Y )
    ENTRY SETEQM( A, B, C, X, Y )
    ENTRY SETALB( A, B, C, X, Y )

    ENTRY LAM2LL( X, Y, LON, LAT )
    ENTRY LL2LAM( LON, LAT, X, Y )
    ENTRY LAM2UTM( X, Y, Z, U, V )
    ENTRY UTM2LAM( X, Y, Z, U, V )
    ENTRY POL2LL ( X, Y, LON, LAT )
    ENTRY LL2POL ( LON, LAT, X, Y )
    ENTRY LAM2POL( X, Y, U, V )
    ENTRY POL2LAM( X, Y, U, V )
    ENTRY POL2UTM( X, Y, Z, U, V )
    ENTRY UTM2POL( X, Y, Z, U, V )
    ENTRY TRM2LL( X, Y, LON, LAT )
    ENTRY LL2TRM( LON, LAT, X, Y )
    ENTRY TRM2LAM( X, Y, U, V )
    ENTRY LAM2TRM( X, Y, U, V )
    ENTRY TRM2UTM( X, Y, Z, U, V )
    ENTRY UTM2TRM( X, Y, Z, U, V )
    ENTRY TRM2POL( X, Y, U, V )
    ENTRY POL2TRM( X, Y, U, V )
    ENTRY EQM2LL( X, Y, LON, LAT )
    ENTRY LL2EQM( LON, LAT, X, Y )
    ENTRY EQM2LAM( X, Y, U, V )
    ENTRY LAM2EQM( X, Y, U, V )
    ENTRY EQM2UTM( X, Y, Z, U, V )
    ENTRY UTM2EQM( X, Y, Z, U, V )
    ENTRY EQM2TRM( X, Y, U, V )
    ENTRY TRM2EQM( X, Y, U, V )
    ENTRY EQM2POL( X, Y, U, V )
    ENTRY POL2EQM( X, Y, U, V )
    ENTRY ALB2LL( X, Y, LON, LAT )
    ENTRY LL2ALB( LON, LAT, X, Y )

      REAL           A        !  first secant latitude, or P_ALPHA
      REAL           B        !  second secant latitude  B > A, or P_BETA
      REAL           C        !  central meridian, or P_GAMMA
      REAL           XC       !  Longitude of Cartesian origin
      REAL           YC       !  Latitude of Cartesian origin
      REAL           X        !  (Input) Cartesian easting  in meters
      REAL           Y        !  (Input) Cartesian northing in meters
      REAL           U        !  (Output) Cartesian easting  in meters
      REAL           V        !  (Output) Cartesian northing in meters
      REAL           LON      !  East longitude in decimal degrees
      REAL           LAT      !  North latitude in decimal degrees
      INTEGER        Z        !  UTM zone (1...36)

Summary:

LAMBERT(), POLSTE(), TRMERC(), EQMERC(), and ALBERS() set up USGS National Mapping Division General Cartographic Transformation Package, routine GTPZ0() by map-projection name for particular named Lambert Conformal Conic, Polar Stereographic, Transverse Mercator, Equatorial Mercator, or Albers Equal-Area Conic projections, respectively. If CNAME is the grid name, the subroutine returns the corresponding coordinate system name, and coordinate definition parameters A,B,C,X,Y.

SETLAM(), SETPOL(), SETTRM(), SETEQM(), and SETALB() set up GTPZ0() according to map-projection parameters supplied as arguments, for anonymous Lambert Conformal Conic, Polar Stereographic, Transverse Mercator, Equatorial Mercator, or Albers Equal-Area Conic projections, respectively.

Note that except for Cray vector machines (Y-MP, C-90, T-90, J-90), inputs are 4-byte REAL single precision (unlike the double precision used internally by GCTP). Calculations for which precision is important should use GCTP directly; further note that by default, LAMBERT() etc., use the GRS 1980 spheroid to represent the surface of the Earth (which may be important to know for high-precision calculations).

Other entries behave as follows:

ENTRY Name Input Coordinate System Output Coordinate System
LAM2LL Lambert Conformal Conic LAT-LON
LL2LAM LAT-LON Lambert Conformal Conic
LAM2UTM Lambert Conformal Conic UTM
UTM2LAM UTM Lambert Conformal Conic
LL2POL LAT-LON Polar Stereographic
POL2LL Polar Stereographic LAT-LON
LAM2POL Lambert Conformal Conic Polar Stereographic
POL2LAM Polar Stereographic Lambert Conformal Conic
POL2UTM Polar Stereographic UTM
UTM2POL UTM Polar Stereographic
TRM2LL Transverse Mercator LAT-LON
LL2TRM LAT-LON Transverse Mercator
TRM2LAM Transverse Mercator Lambert Conformal Conic
LAM2TRM Lambert Conformal Conic Transverse Mercator
TRM2UTM Transverse Mercator UTM
UTM2TRM UTM Transverse Mercator
TRM2POL Transverse Mercator Polar Stereographic
POL2TRM Polar Stereographic Transverse Mercator
EQM2LL Equatorial Mercator LAT-LON
LL2EQM LAT-LON Equatorial Mercator
EQM2LAM Equatorial Mercator Lambert Conformal Conic
LAM2EQM Lambert Conformal Conic Equatorial Mercator
EQM2UTM Equatorial Mercator UTM
UTM2EQM UTM Equatorial Mercator
EQM2TRM Equatorial Mercator Transverse Mercator
TRM2EQM Transverse Mercator Equatorial Mercator
EQM2POL Equatorial Mercator Polar Stereographic
POL2EQM Polar Stereographic Equatorial Mercator
ALB2LL Albers Equal-Area Conic LAT-LON
LL2ALB LAT-LON Albers Equal-Area Conic

See the section on horizontal coordinate and grids for more about I/O API grid and coordinate system conventions. See also USGS package GCTP and routines LL2UTM and UTM2LL.

Preconditions

For LAMBERT(), POLSTE(), TRMERC(), EQMERC(), or ALBERS(), CNAME must be the name either of a coordinate system or a grid found in file GRIDDESC; furthermore, the projection-type of that coordinate system must be respectively LAMGRD3 (i.e., Lambert Conformal Conic), POLGRD3 (Polar Stereographic), TRMGRD3 (Transverse Mercator), EQMGRD3 (Equatorial Mercator), or ALBGRD3 ()Albers Equal-Area Conic) respectively.

You must call LAMBERT() or SETLAM() before calling conversion functions with Lambert input or output coordinates; likewise POLSTE() or SETPOL(), TRMERC() or SETTRM(), EQMERC() or SETEQM(), or ALBERS() or SETALB()before calling coordinate-transform functions for respectively Polar Stereographic, Transverse Mercator, Equatorial Mercator, or Albers Equal-Area Conic.

CNAME has length at most 16.

If named map projections are specified by LAMBERT(), POLSTE(), TRMERC(), EQMERC(), or ALBERS(), then a file with logical name GRIDDESC exists and contains correctly formatted coordinate system descriptions and grid descriptions.

Fortran Usage:

For Fortran-90 declarations and interface checking:
    USE M3UTILIO
    

(See sample programs LATLON, PRESZ, or UTMTOOL, for usage examples.)


Previous: GCTP

Next: LL2UTM and UTM2LL

Up: Coordinate and Grid Related Routines

To: Models-3/EDSS I/O API: The Help Pages