1 SUBROUTINE eggdir (PRPI, PRA, PDELX, PDELY, KPROF,&
2 & KBEG, KEND, KULOUT, PGX, PGY)
73 INTEGER(KIND=JPIM),
INTENT(IN) :: KPROF
74 REAL(KIND=JPRB) ,
INTENT(IN) :: PRPI
75 REAL(KIND=JPRB) ,
INTENT(IN) :: PRA
76 REAL(KIND=JPRB) ,
INTENT(IN) :: PDELX
77 REAL(KIND=JPRB) ,
INTENT(IN) :: PDELY
78 INTEGER(KIND=JPIM),
INTENT(IN) :: KBEG
79 INTEGER(KIND=JPIM),
INTENT(IN) :: KEND
80 INTEGER(KIND=JPIM),
INTENT(IN) :: KULOUT
81 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PGX(kprof)
82 REAL(KIND=JPRB) ,
INTENT(INOUT) :: PGY(kprof)
86 INTEGER(KIND=JPIM) :: JJ
90 REAL(KIND=JPRB) :: Z2PI, Z2PIPK, ZCOBETA, ZCOS, ZCOSO, ZGAM,&
91 & ZLAT, ZLIMIT, ZLON, ZPIS2, ZPIS4, ZRC, ZRR, &
92 & ZSECAN, ZSECUR, ZSIBETA, ZSIN, ZSINO, ZXE, &
94 REAL(KIND=JPRB) :: ZHOOK_HANDLE
98 #include "abor1.intfb.h" 107 WRITE (kulout,*)
'*** EGGDIR *** UNINITIALISED MODULE ' 108 CALL abor1(
' EGGDIR: NYMGGI /= 10 ')
111 IF (
hsud < 0.0_jprb )
THEN 113 pgy(jj) = abs( pgy(jj) )
119 zpis2 = prpi*0.5_jprb
120 zpis4 = prpi*0.25_jprb
124 IF (
nymggwh == 1 ) llgwh = .true.
127 IF ( pgx(jj) < 0.0_jprb )
THEN 128 pgx(jj) = pgx(jj) + 2.0_jprb*prpi
138 zsin = cos(
xlatr )*sin( pgy(jj) ) -&
139 & sin(
xlatr )*cos( pgy(jj) )*cos( pgx(jj)-
xlonr )
141 IF ( abs(zlat) >= zpis2 )
THEN 145 zcoso = ( sin(
xlatr )*sin( pgy(jj) ) +&
146 & cos(
xlatr )*cos( pgy(jj) )*cos( pgx(jj)-
xlonr ) )/zcos
147 zcoso = min(1.0_jprb,max(-1.0_jprb,zcoso))
148 zsino = ( cos( pgy(jj) )*sin( pgx(jj)-
xlonr ) )/zcos
149 zsino = min(1.0_jprb,max(-1.0_jprb,zsino))
151 IF ( asin( zsino ) < 0.0_jprb ) zlon = 2.0_jprb*prpi - zlon
163 IF ( pgx(jj) <
xlon1r .AND. pgx(jj) < zlimit )&
164 & pgx(jj) = pgx(jj) + 2.0_jprb*prpi
170 IF (
xggpk < 0.0_jprb )
THEN 172 pgx(jj) = pgx(jj) -
xlon1u 173 pgy(jj) = pgy(jj) -
xlat1r 181 IF (
xggpk > 0.0_jprb )
THEN 182 IF (
xggpk < 1.0_jprb )
THEN 186 z2pipk = 2.0_jprb*prpi*
xggpk 188 IF ( (pgx(jj)-
xlon0u) > z2pipk )
THEN 189 pgx(jj) = pgx(jj) - z2pi
192 ELSEIF (
xggpk == 1.0_jprb )
THEN 193 zrc = pra*( 1.0_jprb + sin(
xlat0r ) )
195 WRITE (kulout,*)
' *** EGGDIR *** UNKNOWN PROJECTION ' 201 zrr = zrc*( cos(pgy(jj)) /&
202 & ( 1.0_jprb+ sqrt(1.0_jprb-cos(pgy(jj))**2 )) )**
xggpk 204 pgx(jj) = zxp + zrr*sin( zgam )
205 pgy(jj) = zyp -
hsud*zrr*cos( zgam )
213 IF (
xggpk == 0.0_jprb )
THEN 217 zsibeta = sin(
xbeta )
218 zcobeta = cos(
xbeta )
220 zxp = zxe + zrc*( pgx(jj)-
xlon0u )
221 zyp = zye - zrc*log( tan(zpis4 - 0.5_jprb*pgy(jj)) )
222 pgx(jj) = zxp*zcobeta + zyp*zsibeta
223 pgy(jj) = -zxp*zsibeta + zyp*zcobeta
integer(kind=jpim) nymggr
subroutine eggdir(PRPI, PRA, PDELX, PDELY, KPROF, KBEG, KEND, KULOUT, PGX, PGY)
integer(kind=jpim) nymggi
integer(kind=jpim) nymggwh