6 SUBROUTINE latlontoxy1d(PLAT0,PLON0,PRPK,PBETA,PLATOR,PLONOR, &
7 PXHATM,PYHATM,PLAT,PLON,KN,PRADIUS)
95 INTEGER,
INTENT(IN) :: KN
96 REAL,
INTENT(IN) :: PLAT0
97 REAL,
INTENT(IN) :: PLON0
98 REAL,
INTENT(IN) :: PRPK
99 REAL,
INTENT(IN) :: PBETA
100 REAL,
INTENT(IN) :: PLATOR
101 REAL,
INTENT(IN) :: PLONOR
102 REAL,
DIMENSION(KN),
INTENT(IN) :: PLAT,PLON
103 REAL,
DIMENSION(KN),
INTENT(OUT):: PXHATM,PYHATM
104 REAL,
OPTIONAL,
INTENT(IN) :: PRADIUS
108 REAL,
DIMENSION(KN) :: ZLAT,ZLON
109 REAL :: ZRPK,ZLAT0,ZLON0,ZLATOR,ZLONOR
110 REAL :: ZRDSDG,ZCLAT0,ZSLAT0,ZCLATOR,ZSLATOR
111 REAL :: ZRO0,ZGA0,ZBETA,ZCGAM,ZSGAM
112 REAL :: ZXP,ZYP,ZRACLAT0,ZXE,ZYE
115 REAL,
DIMENSION(KN) :: ZCLAT,ZSLAT,ZRO,ZGA,ZXPR,ZYPR
116 REAL(KIND=JPRB) :: ZHOOK_HANDLE
133 zlon(:)=zlon(:)+nint((plon0-zlon(:))/360.)*360.
136 zlonor=zlonor+nint((plon0-zlonor)/360.)*360.
139 IF (
PRESENT(pradius)) zradius = pradius
171 zclat0 = cos(zrdsdg*zlat0)
172 zslat0 = sin(zrdsdg*zlat0)
173 zclator = cos(zrdsdg*zlator)
174 zslator = sin(zrdsdg*zlator)
175 zro0 = (zradius/zrpk)*(abs(zclat0))**(1.-zrpk) &
176 * ((1.+zslat0)*abs(zclator)/(1.+zslator))**zrpk
177 zga0 = (zrpk*(zlonor-zlon0)-zbeta)*zrdsdg
178 zxp = -zro0*sin(zga0)
183 zclat(:) = cos(zrdsdg*zlat(:))
184 zslat(:) = sin(zrdsdg*zlat(:))
185 zro(:) = (zradius/zrpk)*(abs(zclat0))**(1.-zrpk) &
186 * ((1.+zslat0)*abs(zclat(:))/(1.+zslat(:)))**zrpk
187 zga(:) = (zrpk*(zlon(:)-zlon0)-zbeta)*zrdsdg
189 pxhatm(:) = zxp+zro(:)*sin(zga(:))
190 pyhatm(:) = zyp-zro(:)*cos(zga(:))
206 zcgam = cos(-zrdsdg*pbeta)
207 zsgam = sin(-zrdsdg*pbeta)
208 zraclat0 = zradius*cos(zrdsdg*plat0)
209 zxe = - zraclat0*(plonor-plon0)*zrdsdg
210 zye = - zraclat0*log(tan(
xpi/4.+plator*zrdsdg/2.))
214 zxpr(:) = zraclat0*(zlon(:)-plon0)*zrdsdg+zxe
215 zypr(:) = zraclat0*log(tan(
xpi/4.+plat(:)*zrdsdg/2.))+zye
217 pxhatm = zxpr(:)*zcgam-zypr(:)*zsgam
218 pyhatm = zxpr(:)*zsgam+zypr(:)*zcgam
subroutine latlontoxy1d(PLAT0, PLON0, PRPK, PBETA, PLATOR, PLONOR, PXHATM, PYHATM, PLAT, PLON, KN, PRADIUS)