Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions PREP/mcip/src/ll2xy_merc.f90
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
! subject to their copyright restrictions. !
!------------------------------------------------------------------------------!

SUBROUTINE ll2xy_merc (phi, lambda, lambda0, xx, yy)
SUBROUTINE ll2xy_merc (phi, lambda, truelat1, lambda0, xx, yy)

!-------------------------------------------------------------------------------
! Name: Latitude-Longitude to (X,Y) for Mercator Projection
Expand Down Expand Up @@ -45,7 +45,9 @@ SUBROUTINE ll2xy_merc (phi, lambda, lambda0, xx, yy)
REAL(8) :: piover4 ! pi/4
REAL, INTENT(OUT) :: xx ! X-coordinate from origin
REAL, INTENT(OUT) :: yy ! Y-coordinate from origin

REAL(8) :: k0
REAL, INTENT(IN) :: truelat1
REAL(8) :: truelat1rad
!-------------------------------------------------------------------------------
! Compute constants.
!-------------------------------------------------------------------------------
Expand All @@ -64,7 +66,8 @@ SUBROUTINE ll2xy_merc (phi, lambda, lambda0, xx, yy)
lambdarad = DBLE(lambda) * deg2rad ! convert degrees to radians
lambda0rad = DBLE(lambda0) * deg2rad ! convert degrees to radians

xx = REAL( drearth * (lambdarad - lambda0rad) )
yy = REAL( drearth * DLOG( DTAN( piover4 + (phirad/2.0d0) ) ) )
k0=DCOS(DBLE(truelat1rad))

xx = REAL( k0 * drearth * (lambdarad - lambda0rad) )
yy = REAL( k0 * drearth * DLOG( DTAN( piover4 + (phirad/2.0d0) ) ) )
END SUBROUTINE ll2xy_merc
6 changes: 3 additions & 3 deletions PREP/mcip/src/rdwrfem.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2180,7 +2180,7 @@ SUBROUTINE rdwrfem (mcip_now)
yyin = met_yyctr - &
( met_rjctr_dot - (FLOAT(j) + yoff) ) * met_resoln

CALL xy2ll_merc (xxin, yyin, met_proj_clon, &
CALL xy2ll_merc (xxin, yyin, met_tru1, met_proj_clon, &
latdot(i,j), londot(i,j))

mapdot(i,j) = mapfac_merc (latdot(i,j))
Expand All @@ -2202,7 +2202,7 @@ SUBROUTINE rdwrfem (mcip_now)
yyin = met_yyctr - &
( met_rjctr_dot - (FLOAT(j) + yoff) ) * met_resoln

CALL xy2ll_merc (xxin, yyin, met_proj_clon, &
CALL xy2ll_merc (xxin, yyin, met_tru1, met_proj_clon, &
latu(i,j), lonu(i,j))

mapu(i,j) = mapfac_merc (latu(i,j))
Expand All @@ -2222,7 +2222,7 @@ SUBROUTINE rdwrfem (mcip_now)
yyin = met_yyctr - &
( met_rjctr_dot - (FLOAT(j) + yoff) ) * met_resoln

CALL xy2ll_merc (xxin, yyin, met_proj_clon, &
CALL xy2ll_merc (xxin, yyin, met_tru1, met_proj_clon, &
latv(i,j), lonv(i,j))

mapv(i,j) = mapfac_merc (latv(i,j))
Expand Down
4 changes: 2 additions & 2 deletions PREP/mcip/src/setup_wrfem.f90
Original file line number Diff line number Diff line change
Expand Up @@ -488,13 +488,13 @@ SUBROUTINE setup_wrfem (cdfid, ctmlays)
met_xxctr, met_yyctr)

CASE (3) ! Mercator
met_p_alp_d = 0.0 ! lat of coord origin [deg]
met_p_alp_d = met_tru1 ! lat of coord origin [deg]
met_p_bet_d = 0.0 ! (not used)
met_p_gam_d = met_proj_clon ! lon of coord origin [deg]
met_cone_fac = 0.0 ! cone factor
met_ref_lat = -999.0 ! not used

CALL ll2xy_merc (met_cen_lat, met_cen_lon, met_proj_clon, &
CALL ll2xy_merc (met_cen_lat, met_cen_lon, met_tru1, met_proj_clon, &
met_xxctr, met_yyctr)

CASE DEFAULT
Expand Down
12 changes: 6 additions & 6 deletions PREP/mcip/src/xy2ll_merc.f90
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
! subject to their copyright restrictions. !
!------------------------------------------------------------------------------!

SUBROUTINE xy2ll_merc (xx, yy, lambda0, phi, lambda)
SUBROUTINE xy2ll_merc (xx, yy, truelat1, lambda0, phi, lambda)

!-------------------------------------------------------------------------------
! Name: (X,Y) to Latitude-Longitude for Polar Stereographic Projection
Expand Down Expand Up @@ -48,7 +48,8 @@ SUBROUTINE xy2ll_merc (xx, yy, lambda0, phi, lambda)
REAL(8) :: xxd
REAL, INTENT(IN) :: yy ! Y-coordinate from origin
REAL(8) :: yyd

REAL(8) :: k0
REAL, INTENT(IN) :: truelat1
!-------------------------------------------------------------------------------
! Compute constants.
!-------------------------------------------------------------------------------
Expand All @@ -60,7 +61,7 @@ SUBROUTINE xy2ll_merc (xx, yy, lambda0, phi, lambda)
rad2deg = 1.8d2 / pi

drearth = DBLE(rearth)

k0=DCOS(DBLE(truelat1*deg2rad))
!-------------------------------------------------------------------------------
! Set up geometric constants.
!-------------------------------------------------------------------------------
Expand All @@ -71,16 +72,15 @@ SUBROUTINE xy2ll_merc (xx, yy, lambda0, phi, lambda)
!-------------------------------------------------------------------------------
! Compute latitude (PHI).
!-------------------------------------------------------------------------------

phirad = ( 2.0d0 * DATAN ( DEXP(yyd/drearth) ) ) - piover2
phirad = piover2 - 2.0d0 * DATAN ( DEXP(- yyd/drearth/k0) )
phi = REAL( phirad * rad2deg )

!-------------------------------------------------------------------------------
! Compute longitude (LAMBDA).
!-------------------------------------------------------------------------------

lambda0rad = DBLE(lambda0) * deg2rad
lambdarad = lambda0rad + xxd/drearth
lambdarad = lambda0rad + xxd/drearth/k0
lambda = REAL( lambdarad * rad2deg )

END SUBROUTINE xy2ll_merc