SUBROUTINE W3FB04(ALAT,ALONG,XMESHL,ORIENT,XI,XJ) C$$$ SUBPROGRAM DOCUMENTATION BLOCK C C SUBPROGRAM: W3FB04 LATITUDE, LONGITUDE TO GRID COORDINATES C AUTHOR: MCDONELL,J. ORG: W345 DATE: 86-07-17 C C ABSTRACT: CONVERTS THE COORDINATES OF A LOCATION ON EARTH FROM THE C NATURAL COORDINATE SYSTEM OF LATITUDE/LONGITUDE TO THE GRID (I,J) C COORDINATE SYSTEM OVERLAID ON A POLAR STEREOGRAPHIC MAP PRO- C JECTION TRUE AT 60 DEGREES N OR S LATITUDE. W3FB04 IS THE REVERSE C OF W3FB05. C C PROGRAM HISTORY LOG: C 86-07-17 MCDONELL,J. C 88-06-07 R.E.JONES CLEAN UP CODE, TAKE OUT GOTO, USE THEN, ELSE C 89-11-02 R.E.JONES CHANGE TO CRAY CFT77 FORTRAN C C USAGE: CALL W3FB04 (ALAT, ALONG, XMESHL, ORIENT, XI, XJ) C C INPUT VARIABLES: C NAMES INTERFACE DESCRIPTION OF VARIABLES AND TYPES C ------ --------- ----------------------------------------------- C ALAT ARG LIST LATITUDE IN DEGREES (<0 IF SH) C ALONG ARG LIST WEST LONGITUDE IN DEGREES C XMESHL ARG LIST MESH LENGTH OF GRID IN KM AT 60 DEG LAT(<0 IF SH) C (190.5 LFM GRID, 381.0 NH PE GRID,-381.0 SH PE GRID) C ORIENT ARG LIST ORIENTATION WEST LONGITUDE OF THE GRID C (105.0 LFM GRID, 80.0 NH PE GRID, 260.0 SH PE GRID) C C OUTPUT VARIABLES: C NAMES INTERFACE DESCRIPTION OF VARIABLES AND TYPES C ------ --------- ----------------------------------------------- C XI ARG LIST I OF THE POINT RELATIVE TO NORTH OR SOUTH POLE C XJ ARG LIST J OF THE POINT RELATIVE TO NORTH OR SOUTH POLE C C SUBPROGRAMS CALLED: C NAMES LIBRARY C ------------------------------------------------------- -------- C COS SIN SYSLIB C C REMARKS: ALL PARAMETERS IN THE CALLING STATEMENT MUST BE C REAL. THE RANGE OF ALLOWABLE LATITUDES IS FROM A POLE TO C 30 DEGREES INTO THE OPPOSITE HEMISPHERE. C THE GRID USED IN THIS SUBROUTINE HAS ITS ORIGIN (I=0,J=0) C AT THE POLE IN EITHER HEMISPHERE, SO IF THE USER'S GRID HAS ITS C ORIGIN AT A POINT OTHER THAN THE POLE, A TRANSLATION IS NEEDED C TO GET I AND J. THE GRIDLINES OF I=CONSTANT ARE PARALLEL TO A C LONGITUDE DESIGNATED BY THE USER. THE EARTH'S RADIUS IS TAKEN C TO BE 6371.2 KM. C C WARNING: THIS CODE IS NOT VECTORIZED. TO VECTORIZE TAKE IT AND C SUBROUTINE IT CALLS AND PU THEM IN LINE. C C ATTRIBUTES: C LANGUAGE: CRAY CFT77 FORTRAN C MACHINE: CRAY Y-MP8/832 C C$$$ C DATA RADPD /.01745329/ DATA EARTHR/6371.2/ C RE = (EARTHR * 1.86603) / XMESHL XLAT = ALAT * RADPD C IF (XMESHL.GE.0.) THEN WLONG = (ALONG + 180.0 - ORIENT) * RADPD R = (RE * COS(XLAT)) / (1.0 + SIN(XLAT)) XI = R * SIN(WLONG) XJ = R * COS(WLONG) ELSE RE = -RE XLAT = -XLAT WLONG = (ALONG - ORIENT) * RADPD R = (RE * COS(XLAT)) / (1.0 + SIN(XLAT)) XI = R * SIN(WLONG) XJ = -R * COS(WLONG) ENDIF C RETURN END