mod_proj Module

projected coordinate reference system

Module that defines constants, data structures, and subroutines used to convert grid indices to lat/lon and vice versa.

SUPPORTED PROJECTIONS

Lambert Conformal (code = 1) Mercator projection (code = 2)

Data Definitions: 1. Any arguments that are a latitude value are expressed in degrees north with a valid range of -90 -> 90 2. Any arguments that are a longitude value are expressed in degrees east with a valid range of -180 -> 180. 3. Distances are in meters and are always positive.


Used by

  • module~~mod_proj~~UsedByGraph module~mod_proj mod_proj module~projection projection module~projection->module~mod_proj program~main main program~main->module~projection

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: fp = 8

Derived Types

type, public ::  proj_type

Components

Type Visibility Attributes Name Initial
integer, public :: code = 0
real(kind=fp), public :: lat1 = 30.

中心纬度

real(kind=fp), public :: lon1 = 115.

中心经度

real(kind=fp), public :: truelat1 = 20.

First true latitude

real(kind=fp), public :: truelat2 = 40.

Second true latitude

real(kind=fp), public :: phi1 = 0.

First true latitude

real(kind=fp), public :: phi2 = 0.

Second true latitude

real(kind=fp), public :: phi = 0.

Latitude of false origin

real(kind=fp), public :: lambda = 0.

Longitude of false origin

real(kind=fp), public :: xshift = 0.
real(kind=fp), public :: yshift = 0.
type(globe), public :: ellipsoid

基面

Type-Bound Procedures

procedure, public :: xy_to_ll
procedure, public :: ll_to_xy

Functions

public function create_proj(code, lon1, lat1, truelat1, truelat2, flattening, xshift, yshift) result(p)

支持Lambert投影

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: code

1 for lcc

real(kind=fp), intent(in), optional :: lon1

中心经度,默认是本初子午线(lcc), 左下角纬度(latlon)

real(kind=fp), intent(in), optional :: lat1

中心纬度(lcc), 左下角纬度(latlon)

real(kind=fp), intent(in), optional :: truelat1

First true latitude

real(kind=fp), intent(in), optional :: truelat2

Second true latitude

real(kind=fp), intent(in), optional :: flattening

eccentricity of the ellipsoid

real(kind=fp), intent(in), optional :: xshift

Easting at false origin: m

real(kind=fp), intent(in), optional :: yshift

Northing at false origin: m

Return Value type(proj_type)