SUBROUTINE XYCOM1(KFILDO,IP15,CCALL,NAME, 1 NPROJ,XMESHL,XLAT,ORIENT,XLATLL,XLONLL, 2 STALAT,STALON,XI,YJ,NSTA,IER) C C DECEMBER 2004 GLAHN MDL MOS-2000 C MODIFIED FROM XYCOMP WHICH IS ONLY C FOR POLAR STEREOGRAPHIC IN LAMP C JULY 2007 GLAHN ADDED /D DIAGNOSTIC C JULY 2008 GLAHN INITIALIZED IER TO ZERO C C PURPOSE C TO COMPUTE XI AND YJ POSITIONS OF STATIONS IN TERMS OF C A GRID SPECIFIED BY XMESHL, XLATLL, AND XLONLL. POLAR C STEREOGRAPHIC, LAMBERT, AND MERCATOR MAP PROJECTIONS C ARE ACCOMMODATED. C C DATA SET USE C KFILDO - UNIT NUMBER OF OUTPUT (PRINT) FILE. (OUTPUT) C C VARIABLES C KFILDO = UNIT NUMBER OF OUTPUT (PRINT) FILE. (INPUT) C IP15 = INDICATES WHETHER (>1) OR NOT (=0) THE LIST OF C STATIONS AND THEIR I,J POSITIONS ON THE C GRID WILL BE PRINTED TO THE FILE WHOSE UNIT C NUMBER IS IP15. (INPUT) C CCALL(K) = 8 STATION CALL LETTERS (K=1,NSTA). USED FOR C PRINTOUT ONLY. (CHARACTER*8) (INPUT) C NAME(K) = NAMES OF STATIONS (K=1,NSTA). USED FOR C PRINTOUT ONLY. (CHARACTER*20) (INPUT) C NPROJ = MAP PROJECTION: C 3 = LAMBERT, C 5 = POLAR STEREOGRAPHIC, AND C 7 = MERCATOR. C XMESHL = MESH LENGTH IN KM. (INPUT) C XLAT = N. LATITUDE AT WHICH XMESHL IS CORRECT. (INPUT) C ORIENT = W LONGITUDE GRID ORIENTATION. (INPUT) C XLATLL = LOWER LEFT CORNER N LATITUDE. (INPUT) C XLONLL - LOWER LEFT CORNER W LONGITUDE. (INPUT) C STALAT(K) = N LATITUDE OF STATIONS (K=1,NSTA). (INPUT) C STALON(K) = W LONGITUDE OF STATIONS (K=1,NSTA). (INPUT) C XI(K) = THE XI POSITION ON THE GRID FOR STATION K C (K=1,NSTA) (OUTPUT) C YJ(K) = THE YJ POSITION ON THE GRID FOR STATION K C (K=1,NSTA) (OUTPUT) C NSTA = THE NUMBER OF STATIONS IN CCALL( ). (INPUT) C IER = ERROR RETURN. C 0 = GOOD RETURN C 60 = MAP PROJECTION INCORRECT. C (OUTPUT) C 1 2 3 4 5 6 7 X C C NONSYSTEM SUBROUTINES USED C PSLLIJ, LMLLIJ, MCLLIJ C CHARACTER*8 CCALL(NSTA) CHARACTER*20 NAME(NSTA) C DIMENSION STALAT(NSTA),STALON(NSTA),XI(NSTA),YJ(NSTA) C IER=0 XMESHM=XMESHL*1000. C MESH LENGTH MUST BE SUPPLIED TO PSLLIJ IN METERS. C CD WRITE(KFILDO,105)NPROJ,XMESHL,XLAT,ORIENT,XLATLL,XLONLL CD105 FORMAT(/' IN XYCOM1--NPROJ,XMESHL,XLAT,ORIENT,XLATLL,XLONLL', CD 1 I4,5F10.5) C DO 140 K=1,NSTA C IF(NPROJ.EQ.3)THEN CALL LMLLIJ(KFILDO,STALAT(K),STALON(K),XMESHM,ORIENT,XLAT, 1 XLATLL,XLONLL,XI(K),YJ(K)) ELSEIF(NPROJ.EQ.5)THEN CALL PSLLIJ(KFILDO,STALAT(K),STALON(K),XMESHM,ORIENT,XLAT, 1 XLATLL,XLONLL,XI(K),YJ(K)) ELSEIF(NPROJ.EQ.7)THEN CALL MCLLIJ(KFILDO,STALAT(K),STALON(K),XMESHM,XLAT, 1 XLATLL,XLONLL,XI(K),YJ(K)) ELSE WRITE(KFILDO,130)NPROJ 130 FORMAT(/,' ****MAP PROJECTION NUMBER =',I3,' NOT EXPECTED.' 1 ,' FATAL ERROR IN XYCOM1.') IER=60 C C SET THE LATITUDES AND LONGITUDES IN XI( ) AND YJ( ) = 9999. C WHEN THEY CAN'T BE COMPUTED. THIS WILL HAPPEN ON THE C FIRST TIME THROUGH THE LOOP FOR K C DO 135 L=1,NSTA XI(L)=9999. YJ(L)=9999. 135 CONTINUE C GO TO 200 ENDIF C 140 CONTINUE C IF(IP15.EQ.0)GO TO 200 WRITE(IP15,153)XMESHL,(K,CCALL(K),NAME(K),XI(K),YJ(K),K=1,NSTA) 153 FORMAT(/,' XI AND YJ POSITIONS WITH REGARD TO THE INPUT GRID', 1 ' CHARACTERISTICS AND MESH LENGTH XMESHL =',F9.4,' KM',/, 2 ' NO. STATION NAME XI YJ',/, 3 (' ',I5,3X,A8,2X,A20,3X,2F8.2)) C 200 RETURN END