| ie Ok rau | DEPARTMENT OF TRANSPORTATION 1& y COAST GUARD THE DETERMINATION OF AVERAGE GEOSTROPHIC CURRENT VELOCITIES FROM TEMPORALLY “AND | SPATIALLY RANDOM | HYDROGRAPHIC DATA WITH |} AN APPLICATION TO 2 THE SOUTHERN CALIFORNIA BIGHT U.S. Coast Guard Oceanographic Unit Washington, D.C. OANA AARON 0 0301 0033042 7 THE DETERMINATION OF AVERAGE GEOSTROPHIC CURRENT VELOCITIES FROM TEMPORALLY AND SPATIALLY RANDOM HYDROGRAPHIC DATA WITH AN APPLICATION TO THE SOUTHERN CALIFORNIA BIGHT BY DR. KENNETH A. MOONEY U.S. COAST GUARD OCEANOGRAPHIC UNIT APPLIED SCIENCE DIVISION NAVY YARD ANNEX WASHINGTON, D.C. 20593 U.S. COAST GUARD TECHNICAL REPORT The reports in this series are given limited distribution within agencies, universities, and institu- tions engaging in oceanographic projects. Therefore, citing of this report should be in accordance with the accepted bibliographic practice of following the reference with the phrase UNPUB- LISHED MANUSCRIPT. Reporduction of this report in whole or in part is permitted for any purpose of the U.S. Government. ABSTRACT A method employing two-dimensional spline fits of spatially and temporally random hydro- graphic data is developed in order to be able to determine seasonally averaged geostrophic cur- rents. The method is used in an analysis of the currents in the Southern California Bight. TABLE OF CONTENTS Page Title Page-------------------------2-2-2-c-neneneonensnectenneeceenenceeennnceenenceceneneneneseenestensceneceenenentececenenennee i Abstract ------------------------20-02n2o-neceoenenecenecnnen ene enencncncnceenenenenenenennnesestsnscenenenensnenenenenenenenenenee ii Table of Comtents-------------------------------------0-0--eneneeneceenncecenenenceeeneeceeececncecenennacenensnneeeneneeeses iii List of Ilustrations-------------------------------0---------0--2-ces-eneenneceneeeneeeeeceeeceneeceneecenencenenseneeeeee iv Intro duction ------------------------------0-0---ncnennncenenenenneneneecenennecncenennnneeeneseececeneecenenensececenenceneneees ] Method --------------------------2---0---n-nsnennoenennneneceneceecenenenencnenceeeneneeenenenenesneennenenecscenenenenenenenensees 1 PLOgT aI ----------------------2020--2-202-2nceneneneneneneenenecececenenenenenennnnnnnsnescseeceneenenennncensceceeceenenenenene 3 Southern California Bight.-----------------+------2----------e-e-eeee-oeona-neneeneceneceneneneneceneneececeneneresecees 4 Conclusions.------------------------------0----0--0-n-noncennecenneceenecennennneenenesenecennenencenensenensenensenenseneeenenee 5) References.--------------------------0--0-0--0-c-nennennnneneneennnceneeceneenenceeeeceeescenneneneenencenensenensenenceneneeseees 6 Appendix A------------------------c-enencecececennnececeeenenenenennneneseresesesascenenenennnescscececesenenenenenenencecseeeee Al JPNVOPXELOC WB Bl Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure 6. Figure 7. Figure 8. Figure 9. Figure 10. Figure 11. Figure 12. Figure 13. LIST OF ILLUSTRATIONS Node arrangement used in spline fit analysis. Average geostrophic currents in the Southern California Bight for the January. Average geostrophic currents in the Southern California Bight for the February. Average geostrophic currents in the Southern California Bight for the March. Average geostrophic currents in the Southern California Bight for the April. Average geostrophic currents in the Southern California Bight for the May. Average geostrophic currents in the Southern California Bight for the June. Average geostrophic currents in the Southern California Bight for the July. Average geostrophic currents in the Southern California Bight for the August. Average geostrophic currents in the Southern California Bight for the September. Average geostrophic currents in the Southern California Bight for the October. Average geostrophic currents in the Southern California Bight for the November. Average geostrophic currents in the Southern California Bight for the December. iv month of month of month of month of month of month of month of month of month of month of month of month of THE DETERMINATION OF AVERAGE GEOSTROPHIC CURRENT VELOCITIES FROM TEMPORALLY AND SPATIALLY RANDOM HYDROGRAPHIC DATA WITH AN APPLICATION TO THE SOUTHERN CALIFORNIA BIGHT INTRODUCTION Dynamic depth anomaly data from oceanographic stations are available as a standard product from the National Oceanographic Data Center (NODC). NODC calculates these data from tem- perature and salinity with depth data which it obtains from various sources. It is highly desirous to analyze these data in a manner such as to obtain seasonally averaged dynamic depth anomaly fields, from which can be determined seasonally averaged geostrophic current velocity fields. The location of the data is, however, generally temporally and spatially random, complicating the averaging procedure, and thus requiring the utilization of special methods. THE METHOD The most direct method to analyze the data is to group together all the dynamic depth anomaly data for a particular season and then fit this data by the method of least squares with a two dimensional polynomial of the form: M N dp = 2 2 erm Ot OM (1) m=0 n=o where dp = dynamic depth anomaly at depth D Ann = Tegression coefficients 6 = latitude @ = longitude M,N = _ order of the polynomials The virtue of this method is that it treats each data point for exactly what it is, an independent measure of the dynamic depth field, and at the same time yields an analytic expression for the 1 dynamic depth anomaly field. The latitude and longitude are used as the independent variables because this is the most convenient form in which to obtain the data from NODC and thus no coordinate transformations are necessary. The north-south and east-west geostrophic velocities can now be obtained by differentiating equation (1): Uy = 10 ddp (2) f R sin 0 0g ms 10 dd D Vig) fR 20 where Ug = __ north-south velocity Vo = east-west velocity f = Coriolis Parameter R = _. Radius of the earth The dynamic depth anomaly field frequently, however, displays so much structure that to replicate it accurately with a single function of the form given in equation (1) would require a polynomial of prohibitively high order. This difficulty can be overcome through the use of two- dimensional spline fits of the data. In this case the area of interest is divided into rectangles and the data in each rectangle is still fit by the method of least squares with a polynomial of the form expressed in equation (1), but with the constraints that the different polynomials and their first and, if necessary, higher derivative match on the boundaries of the rectangles. The order of the polynomial is selected to yield whatever goodness of fit is desired. The advantage of spline fitting is that the data which was previously fitted by one polynomial is now fitted by several polynomials, allowing much more structure to be represented. Equations (2) can still be used to evaluate the components of geostrophic velocity. 2 THE PROGRAM To put this method into use a spline fit program called SPLPAK which employs third order polynomials was obtained form the National Center for Atmospheric Research (NCAR) Software Support Library. The SPLPAK program has several options, the most important of which is the number of rectangles into which the area to be fitted is to be divided. Since it was assumed that, even with spline fits, the area to be analyzed would be too large to be fitted by a single spline fit, it was specified for the program to have simply nine rectangles, as shown in Figure 1, with the size of the rectangles being left as a variable to be determined by the needs of the parti- cular area under study. The idea behind using nine rectangles was that the best fit to the data should occur in the center rectangle where the effects of the outer boundary are least significant. The total area of interest would then be analyzed by chosing an appropriate size for the nine rectangles according to the amount of structure present and then moving the center rectangle around the total area of interest with some continuity being supplied from one position of the center rectangle to an adjacent position by means of the overlapping effect of the eight sur- rounding rectangles. This approach would allow different size areas to be analyzed with equal accuracy and also allow for the development of a generalized program applicable to any area. A fuller explanation of SPLPAK and its other options can be found in Adams et al. (1975). In order to utilize SPLPAK a program called XTRACT was written to read a standard NODC data tape and write on disk the appropriate input data required by SPLPAK. A program called DYFIT was then written which would read the data from the desk, call SPLPAK as a subroutine and evaluate the components of the geostrophic velocity at any specified location. Besides the size of the rectangles, the relative depth to which the currents are to be referenced and the time period over which the currents are to be averaged are variables which must be specified in DYFIT. 3 A listing and fuller explanation of the programs XTRACT and DYFIT can be found in Appendices A and B. THE SOUTHERN CALIFORNIA BIGHT A region from 32° N to 35 'N and from 117‘W to 122°W off the coast of Southern California was chosen as the area to test the applicability of the above described method. There were several reasons for choosing this particular area: o There have been many hydrographic surveys in the area, so there should be a sufficient amount of data; o Qualitatively the currents are well understood showing a definite seasonal dependence; o The water is deep so that the geostrophic currents should be meaningful. A standard hydrographic data tape for the above area was obtained from NODC. After initial preparation of the data with the XTRACT program the DYFIT program was run with rectangles equal to 1° of latitude by 1° of longitude. Also as most of the hydrographic data extended only to 500 meters, 500 meters was chosen as the reference level, thus enabling the utilization of most of the data. While 500 meters may appear to be somewhat shallow for a reference level, cross- checking wherever possible showed no significant differences in surface velocities when 1000 meters was used as a reference level. The spline fit was evaluated at the center of rectangles 1/4° x 1/4° 1/2°x 1/2° and 1° x 1° on their sides. As it turned out the current structure was such that there were no areas that required rectangles smaller than 1/2° x 1/2° in order to be able to cha- racterize the currents. The data was of sufficient volume to be grouped by months for analysis. The results of the analysis are depicted in the twelve chartlets in Figures 2-13 with the current directions given in degrees true and the speed in knots. The currents are evaluated at the center of the rectangle. The analysis indicates that the average geostrophic velocities in the Southern California Bight are relatively small, with maximum speeds of only approximately 0.2 knot. Unfortunately an in-depth critical quantitative comparison of observed and predicted currents is not possible due to a lack of detailed current measurements in the area. The calculated geos- trophic velocities do, however, conform with the accepted general circulation scheme for the area as presented for example in Pirie and Stellar (1977). This scheme presents the Southern California Bight as being dominated by a cyclonic gyre, with the southeastwardly flowing California Current to its west, the northwestwardly flowing Davidson Current to its east. The speeds in the gyre are known to be seasonally dependent. On the west the current speeds increase during the spring and early summer as the California Current tends to move eastward during this period. The Davidson Current is an undercurrent during this time period with little surface manifestation. During the fall and winter the Davidson Current surfaces and the California moves westward with a subse- quent increase in the current speed on the eastern side of the gyre and a decrease of those on the west. While it is realized that rigorous comparisons are not possible without precise measurements, the above described scheme is well supported qualitatively in the twelve chartlets in Figures 2-13. CONCLUSIONS A method has been developed which uses two-dimensional least-squares spline fits of spatially and temporally random dynamic depth anomaly data to determine average geostrophic currents. The method has successfully been applied to quantify the currents in the Southern California Bight. It can be assumed that it is possible to apply this method to other areas and thus begin to utilize the vast amounts of data in the NODC inventory. REFERENCES Adams, J. C., A. K. Cline, M. A. Drake and R. A. Sweet, eds., NCAR Software Support Library, NCAR-TN/IA-105, 1975. Pirie, D. M. and D. D. Stellar, California Coastal Processes Study - Landsat II, Final Report, Landsat Investigation No. 22200, 1977. APPENDIX A 16 Program Name: XTRACT I. System Name: DYFIT Ill. Purpose: XTRACT is the first step in a system of programs that build a data file for the DYFIT program. XTRACT reads a NOAA STD Data tape and extracts records with valid dynamic depth anomaly data. All other records are skipped. The data is processed (see section VII) and written out onto a disk file for subsequent processing by the IBM SORT routine. IV. History: XTRACT was originally written in FORTRAN by David A. Portyrata in October 1978. It was rewritten in COBOL in July 1979. The change to COBOL allowed the use of built- in functions to handle the overpunched sign on the latitude and longitude fields, and facilitated use of packed decimal output. We Machine: IBM 360/65 VI. Language: IBM COBOL VERSION 4 VII. _ Description of Processing: a. Scanning for Valid Records Many different types of data records are contained on a STD tape. Only record type 6 contains a dynamic depth anomaly field. All other records are skipped. The following conditions are necessary for a record to be processed: (1) A ‘6’ in the 80th byte (the record type field). (2) Valid numeric data in bytes 60-63 (the dynamic depth anomaly field). (3) Valid numeric data in bytes 7-8 (the minutes of latitude field). (4) Valid numeric data in bytes 13-14 (the minutes of longitude field). b. Converting Latitude and Longitude Records Latitude and longitude records are converted from degrees/minutes/tenths of minutes to decimal degrees. The latitudes are subtracted from 90 so that they range from 0 to 180 instead of -90 to 90. 180 is added to the longitudes so that they range from 0 to 360 instead of -180 to 180. The above operations are performed so that the output from XTRACT need not contain signed numeric fields. c. Computing the Julian Day The Julian date is calculated using a formula published in the Texas Instru- ments Master Library for TI 58/59. The factor for the cast day is calculated, and the factor for January 1st of the year the cast was taken is subtracted from it, giving the Julian date. The formula is: Al For January and February: FACTOR = 365 (YYYY) + DD + 31 (MM- 1) + INT(YYYY - 1)/4) - INT(3/4[INT] ((YYYY - 1)/100) + 1]) For March through December: FACTOR = 365 (YYYY) + DD + 31(MM - 1) - INT(4MM + 23) + INT (YYYY/4) - INT(3/4[INT (YYYY/100) + 1]) In these formulas INT indicates using only the integer portion of the expression. The number of days between two dates is found by calculating the FACTOR for each date, then finding the difference between the FACTORS. VIII. File Description: a. Input File Input to XTRACT is a NOAA tape of STD data. Specific information as to tape characteristics will be on the tape itself. The following characteristics are assumed: TRACKS 9 DENSITY 1600 Bits/Inch LOGICAL RECORD LENGTH 80 Bytes BLOCKSIZE 3200 Bytes RECORD FORMAT FB UNLABELED b. Output File Output from XTRACT is a disk file in packed decimal form. It is to read into the IBM SORT utility. The following characteristics are used: LOGICAL RECORD LENGTH 18 Bytes BLOCKSIZE 6372 Bytes c. Structures Used The structures used for input and output of data in the EXTRACT program are shown in Tables Al and AQ. A2 TABLE Al STD DATA FILE STRUCTURE (XTRIN) (Logical Record Length = 80 Bytes) POSITION DESCRIPTION 01-04 Filler 05-09 Latitude - positions 5 and 6 degrees, positions 7 and 8 minutes, position 9 tenths of minutes, eleven overpunch in position 8 for south latitude. 10-15 Longitude - positions 10-12 degrees, positions 13 and 14 minutes, position 15 tenths of minutes, eleven overpunch in position 14 for east longitude 16-18 Filler 19-24 Date - positions 19 and 20 years, positions 21 and 22 month and positions 23 and 24 day. 25-27 Filler 28-31 Standard Depth 32-59 Filler 60-63 Dynamic depth anomaly 64-79 Filler 80 Record type (6) A3 TABLE A2 STANDARD DEPTH FILE STRUCTURE (XTROUT) (Logical Record Length = 18 Bytes) POSITION DESCRIPTION 01-03 Standard depth 04&05 Julian day 05&07 Year 08-11 Latitude-decimal degrees 12-15 Longitude-decimal degrees 16-18 Dynamic depth anomaly AA IDENTIFICATION DIVISION. PROGRAM=-ID. XTRACT. AUTHOR. 80B STARKe CO-OP>+ WEST VIRGINIA INSTITUTE OF TECHNOLOGY. INSTALLATION. US COAST GUARD OCEANOGRAPHIC UNITe+ ATD/DPB. DATE=WRITTENe JUL 22: 1980. DATE=COMPILED. REMARKS. THIS PROGRAM SCANS NODC STD TAPE RECORDS FOR STANDARD DEPTH DYNAMIC DEPTH DATA. WHEN A STANDARD DEPTH IS FOUND» THE JULIAN DAY FOR THAT RECORD IS CALCULATED. THEN THE STANDARD DEPTH». JULIAN DAY» YEAR». LATITUDE, LONGITUDE» AND DYNAMIC DEPTH ARE WRITTEN OUT ONTO A FILE IN PACKED DECIMAL FORMAT. THIS DATA WILL» AFTER SUBSEQUENT PROCESSING BY CREATE AND DUPFIXs» RECOME INPUT TO THE DYFIT PROGRAM. THIS PROGRAM IS A REWRITE OF THE ORIGINAL FORTRAN XTRACT PROGRAM, WRITTEN OCT 251979 BY DAVID PORTYRATA. IT WAS REWRITTEN IN COROL TO SIMPLIFY THE HANDLING OF THE OVERPUNCH MINUS SIGN IN THE LATITUDE AND LONGITUDE FIELDS. *# NOTE #ee.e.THE JULIAN DAY IS CALCULATED USING AN ALGORITHM FROM "*T.Te PROGRAMMABLE 58/59 MASTER LIBRARY''»s PAGE 76.6 ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE=COMPUTER. IBM=360.6 OBJECT=COMPUTER. IBM=-360. INPUT-OUTPUT SECTION. FILE=CONTROL. SELECT STD=DATA=FILE ASSIGN TO UT=S=XTRIN-} SELECT STANDARD-DEPTH=-FILE ASSIGN TO UT=S=XTROUT. DATA DIVISION. FILE SECTION. FD STDO-DATA-FILE LABEL RECORDS OMITTED RECORD CONTAINS 80 CHARACTERS BLOCK CONTAINS 9 RECORDS. Q1 STD=-DATA=REC. 03 ‘FILLER PIC X(4). 03 LATITUDE. 05 LAT=DEGREES PIC 9(2). 05 LAT=MINUTES PIC S9(2). 05 LAT=-10TH=MIN PIC Qe 03 LONGITUDE. 05 LON=DEGREES Pe. S)(S)-6 05 LON=MINUTES rPuCG SOB) o 05 LON=10TH=MIN PUG Do 03 FILLER PIC X(3)- 03 DATE=-DATA. 05 DATE=YEAR PIC 9(2). 95 DATE={MONTH PIC 9(2)e 05 DATE-DAY PIC 9(2). 03 FILLER PIC X(3)e 03 STANDARD=DEPTH PIC 9(4). 03 FILLER PIC (28). 03 DYNAMIC=DEPTH PIC S9V999. OS) lp aghibiet PHC UNG) 6 03 STANDARD=DEPTH=FLAG PIC 9. FD STANDARD-DEPTH=FILE LABEL RECORDS STANDARD RECORD CONTAINS 18 CHARACTERS BLOCK CONTAINS 354 RECORDS. 01 STANDARD-DEPTH=REC USAGE COMP=3. 03 ST-STANDARD=-DEPTH PUG BUS) o 03 ST=JULTAN-DAY PAKS SUS) o OS Sia VBR PIG OCA) o 03 ST=-LATITUDE PIC 999V999. 03 ST=-LONGITUDE PIC 999V999. 03 ST-DYNAMIC=DEPTH PIC S99V999. WORKING=STORAGE SECTION. 77 EOF=FLAG PUG 2 USAGE COMP SYNC. 77 =MINUTES PIC 99 USAGE COMP SYNC. 77 = REC=-COUNT PIC 9(8) VALUE 0 USAGE COMP SYNC. 77 READ=COUNT PIC 9(8) VALUE 0 USAGE COMP SYNC. UU MISSWIEINR PIC 9(8) USAGE COMP SYNC. 77 WS-LATITUDE PIC S999V999. 77 WS-LONGITUDE PIC $999V999. 77 ~=REAL@=1 USAGE COMP=1 SYNC. i (is | =i ea USAGE COMP=-] SYNC. TD GRETA "3 USAGE COMP=-] SYNC. 77 =INTEGER=1 PIC 9(8) USAGE COMP SYNC. 77 INTEGER=2 PIC 9(8) USAGE COMP SYNC. (ii -ONTIEGER <3 PIC 9(8) USAGE COMP SYNC. 77 = JAN=1=-FACTOR PIC $9(8) USAGE COMP SYNC. 77 FACTOR PIC SOUS) USACE SCOMP MS YING. PROCEDURE DIVISION. * THIS MODULE IS THE SUPERVISOR. HOUSEKEEPING IS DONE HERE. OPEN INPUT STO-DATA-FILE OUTPUT STANDARD=DEPTH-=-FILE. PERFORM READ=REC PERFORM MAIN=PROCESS THRU MAIN=PROCESS=-EXIT UNT IE EOR=FiEANG = Fly. DISPLAY "END OF PROCESSING BY XTRACT % 9 READ=-COUNT 9» " RECORDS READ %» REC=COUNTs * RECORDS WRITTENe®. CLOSE STD-DATA=FILE STANDARD=-DEPTH=-FILE. STOP RUN. MAIN=PROCESS. * THIS MODULE MAKES SURE THE DATA IS A STANDARD DEPTH. oe AND CONVERTS THE LATITUDE AND LONGITUDE TO THE PROPER FORM. ADD 1 TO READ=COUNT. EDIT=CHECK-THE=-DATA. IF LAT-DEGREES IS NOT NUMERIC OR LON-DEGREES IS NOT NUMERIC OR DATE-DATA ITS NOT NUMERIC OR STANDARD=DEPTH IS NOT NUMERIC OR STANDARD=DEPTH=FLAG IS NOT NUMERIC THEN PERFORM READ=REC GO TO MAIN=PROCESS-EXITe + CHECK FOR A STANDARD DEPTH. IF NOT» READ NEXT REC» AND EXIT. IF STANDARD=DEPTH=FLAG NOT = 6 OR DYNAMIC=DEPTH IS NOT NUMERIC THEN PERFORM READ=REC GO TO MAIN=PROCESS=-EXIT. # CONVERT DEGREES=-MINUTES=TENTH=MINUTES OF LATITUDE TO DECIMAL * DEGREES. (NOTEs«eeMINUTES IS AN UNSIGNED FIELD.) IF LAT=MINUTES IS NOT NUMERIC THEN PERFORM READ=REC GO TO MAIN=PROCESS=EXIT ELSE MOVE LAT=MINUTES TO MINUTES. # CONVERT BLANKS TO ZERO. IF LAT=10TH=MIN TS NOT NUMERIC THEN MOVE 0 TO LAT-10TH=MIN.} COMPUTE WS=LATITUDE = LAT=DEGREES + (MINUTES / 60) + (LAT=10TH=MIN / 600). IF LAT=MINUTES IS NEGATIVE THEN MULTIPLY WS=-LATITUDE BY -1 GIVING WS-LATITUDE. # 0 US ADD) FO MUL LAV yUbES S@ volley Chee Ble (POs Ue + AND RANGE FROM 9 TO 150. ADD 90+ WS=LATITUDE GIVING ST-LATITUNE. % CONVERT DEGREES-MINUTES=TENTHS OF LONGITUDE TO DECIMAL DEGREE IF LON=MINUTES IS NOT NUMERTC THEN PERFORM READ=REC GO TO MAIN=PROCESS=-EXIT ELSE MOVE LON=MINUTES TO MINUTES- + CONVERT BLANKS TO ZERO. IF LON=10TH=MIN TS NOT NUMERIC THEN MOVE 0 TO LON=10TH-MIN. COMPUTE WS=LONGITUDE = LON=DEGREES + (MINUTES / 60) + (LON=10TH=MIN / 600). IF LON-MINUTES IS NOT NEGATIVE THEN MULTIPLY WS-LONGITUDE RY -1 GIVING WS-LONGITUDE. e 180 IS ADDED TO ALL LONGITUDES SO THAT THEY WILL o BE POSITIVE AND RANGE FROM 0 TO 360. ADD 1805 WS=-LONGITUDE GIVING ST-LONGITUDE. COMPUTE=JULTAN-DAY. + FIRST WE FIND THE JULIAN DATE FACTOR FOR JANUARY 1ST OF oe THE YEAR THE CAST WAS TAKEN. ADD 19009 DATE=YEAR GIVING WS-YEARe. COMPUTE INTEGER=-1 = (WS-YEAR = 1) 7 4eo COMPUTE INTEGER=2 = ((WS=-YEAR = 1) 7 100) + 1 COMPUTE REAL=2 = INTEGER=2 * 00756 MOVE REAL=2 TO INTEGER-2. COMPUTE JAN=-1=-FACTOR = (365 # WS=YEAR) + INTEGER=1 + 1 = me om me ot S 2 INTEGER=2. NOW wE FIND THE JULIAN DATE FACTOR FOR THE DAY THE CAST WAS TAKEN. IF DATE=MONTH < 3 THEN PERFORM JAN=FEB=-FACTOR ELSE PERFORM MAR=DEC=FACTOR. NOW wE FIND THE DIFFERENCE IN THE FACTORS» THE JULIAN DAY COMPUTE ST=JULIAN=DAY = FACTOR = JAN=1=FACTOR + 1. MOVE THESREST OR THE BIEEDS TO she OUTPUT BURRERT. MOVE DATE=YEAR TO ST=-YEAR. MOVE STANDARD=DEPTH TO ST=STANDARD=DEPTH. MOVE DYNAMIC=DEPTH TO ST=DYNAMIC-DEPTH. WRITE OUT THE RECORD & READ IN DATA FOR THE NEXT LOOP. WRITE STANDARD=DEPTH=REC. ADD 1 TO REC=COUNT. PERFORM READ=REC. MAIN=PROCESS-EXIT. EXIT. JAN-FEB=FACTOR. THIS MODULE COMPUTES JULIAN DATE FACTORS FOR JANUARY AND FEBRUARYe ALGORITHM FROM TEXAS INSTRUMENTS MASTER LIBRARY. NOTEeeeoINTEGER-1 & 2 WERE ALREADY CALCULATED WHEN JAN=1=-FACTOR WAS CALCULATED. COMPUTE FACTOR = (365 # WS=YEAR) + (31 * (DATE=MONTH = 1) ) + DATE=DAY + INTEGER=1 = INTEGER=2. MAR=DEC=FACTOR. THIS MODULE COMPUTES JULIAN DATE FACTORS FOR MARCH THRU DECEMBERe ALGORITHM FROM TEXAS INSTRUMENTS MASTER LIBRARY COMPUTE REAL=1 = (064 # DATE=MONTH) + 2.3. MOVE REAL-1 TO INTEGER=]. COMPUTE INTEGER=2 = WS=YEAR / 4. COMPUTE INTEGER=3 = (WS=YEAR / 100) + le COMPUTE REAL-3 = INTEGER=3 * 0.75. MOVE REAL=-3 TO INTEGER=3, COMPUTE FACTOR = (3465 * WS=-YEAR) + (31 * (DATE=MONTH = 1) ) * DATE=DAY = INTEGER=1 + INTEGER=2 = INTEGER=-3. READ=REC. THIS MODULE READS RECORDS FROM THE STD DATA TAPE. READ STO=-DATA-FILE AT END MOVE 1 TO EOF=FLAG. APPENDIX B I. Program Name: DYFIT Il. System Name: DYFIT Ill. Purpose: The DYFIT program calculates the average geostrophic velocity field from randomly located dynamic depth anomaly data. IV. __ History: The DYFIT program was written by K. A. Mooney for the CDC 3300 computer in the summer of 1978. Due to lack of memory and slow processing speed of the CDC, this version was impractical for production use. The IBM 360 version was written by K. A. Mooney in the spring of 1979. This version was used to study currents in the Southern California, Gulf of Mexico, and Hawaii regions. This version searched a large sequential file (created by XTRACT or XTEMP) for suitable dynamic depth anomaly data. This program was highly 1/0 bound because it only used about 0.5% of the records that it has to read. The current version of DY FIT was written by Bob Stark in the summer of 1980. This version utilizes a COBOL subroutine which reads small sections of an indexed sequential file. This reduced the I/O time required to run the program. The XTRACT and XTEMP programs were rewritten and the CREATE and DUPFIX programs written to build indexed sequential files for this version. Vi Machine: IBM 360/65 VI. _—_ Language: a. Languages Used 1. IBM ‘H’ level FORTRAN (Optimized) 2. IBM version 4 ANSI COBOL (Optimized) b. Details of FORTRAN-COBOL linkage 1. Compilation The COBOL modules (DYFIT and SETKEY/READER) are compiled in separate runs of the COBOL compiler. The object module produced by the first run (ddname = SYSLIN) is passed on to the second run. All of the FORTRAN subroutines are compiled in a single run of the FORTRAN compiler and placed in the same data set as the COBOL object modules (SYSLIN). The linkage editor is then run to link all of the object modules into a load module and store it on disk. The details of this process may be seen in the cataloged procedure K198PDFT, which is used to put the DYFIT program to disk. Transfer of control from main program to subroutine and back is accomplished by the DYFIT program, which calls a ILBOSTPO (a library subroutine) to initialize the sub- routine communications save area. This assures that all routines called by DYFIT, or called by Bl routines called by DYFIT, will be treated as subroutines. This is especially important for the SETKEY/READER routine, as EXIT PROGRAM statements in the subroutine communications save area in order for control to return to the calling routine. 3. Correspondence of Identifiers Two types of identifiers were used as parameters in the COBOL routines to be called by FORTRAN routines: Fullword real (floating point) and halfword integer (binary). These variables must be aligned on fullword boundaries, which is automatic in FORTRAN. In COBOL the keyword SYNCRONIZED (abbreviated SYNC) is used to align the identifiers on a fullword boundary. The fullword real identifiers are declared as REAL*4 in the FORTRAN programs, ‘and defined as USAGE COMP-1 SYNC in the COBOL routines. These two definitions are fully compatable. The halfword integer identifiers are declared as INTEGER*2 in the FORTRAN programs, and defined as PIC S9999 USAGE COMP SYNC in the COBOL routines. VII. Description of Processing: DYFIT calls DYFORT which reads a parameter card specifying a latitude, longitude, and time range. This card also indicates from what standard depth the data is to come. SETKEY is called to position the indexed sequential file at the first record of the user specified standard depth that falls within the time range chosen. The file is searched from this point for dynamic depth anomaly data that falls within the specified latitude and longitude. The search stops when the given time range is exceeded, the given standard depth is exceeded, or the physical end of file is reached. SPLCW is then called to fit a two dimensional cubic spline to the dynamic depth anomaly data. A description of SPLCW can be found in the chapter on SPLPAK in volume 1 of the NCAR SOFTWARE SUPPORT LIBRARY, NCAR technical note IA-105, March, 1975. Finally, DYFORT evaluates the first derivatives of the spline fit at user specified locations by calling the function SPLDE. A description of SPLDE can also be found in the above reference. The components of the geostrophic velocities can then be determined from the formulae: 10 ddp Ug = f R sin 0 0¢ 10 ddp MiG i=) = Remrrinaemrenat a stab where Ug = North - South component of geostrophic velocity Kast - west component of geostrophic velocity < a>S | B2 f = Coriolis parameter R = Radius of earth dp = Dynamic depth anomaly field at depth D @ = Longitude 6 = Latitude The printout consists of the standard depth of the data and the center and ranges for the latitude, longitude, and Julian day. At the end of the data list (appears if data print option was selected), the latitude, longitude, and Julian day at which the plane fit was evaluated along with the components of geostrophic velocity in knots and the number of points which were used in the fit are printed. VIUl. File Description: a. Disk File 1. Physical Characteristics (a) Indexed sequential organization (b) Sequential access mode (c) One cylinder used for cylinder index (d) RECFM = FB (fixed longth blocks) (e) LRECL = 18 bytes (logical record length) (f) KEYLENGTH = 15 bytes (g) BLKSIZE = 6372 bytes (h) Blocking factor 354 records/block (i) All fields in packed decimal form. 2. Usage The dynamic-height-file ISAMFILE) contains the dynamic depth anomaly data for DYFIT. It is created by the CREATE program - refer to it for sort order. In DYFIT, a call to SETKEY opens the file and positions it at the first record matching the starting - standard - depth (DPDP) and the first - Julian - day (TMIN) parameters. If there is no data in the file at this position, SETKEY returns a 1 in key - error (KEYERR). READER is then called to read records sequentially from that point on until a record is read whose Julian day is greater than last - Julian - day (TMAX), whose standard - depth is greater than starting - STD - depth (DPDP), or the end of file is found. The file is then closed and reader returns a 1 in EOF. B3 b. Card File 1. Physical Characteristics (a) Sequential organization (b) LRECL = 80 bytes (logical record length) (c) Unblocked c. Structures Used 1. The structures used for the input files are shown in Tables B1, B2 and B3. TABLE B1 DYNAMIC HEIGHT FILE (ISAMFILE) POSITION DESCRIPTION 01-03 Standard depth 04&05 Julian day 06&07 Year 08-11 Latitude 12-15 Longitude 16-18 Dynamic depth BS POSITION 01-05 06-08 09-14 15 16-22 23 24-27 28 29-33 34 35-40 41 42-45 46 47 48-80 TABLE B2 PARAMETER CARD (SYSIN) DESCRIPTION Standard depth Filler Center latitude Filler Center longitude Filler Center Julian day Filler Latitude range Filler Longitude range Filler Julian day range Filler Print Filler B6 TABLE B3 DATA CARD (SYSIN) POSITION DESCRIPTION 01-06 Latitude 7 Filler 08-14 Longitude 15-80 Filler B7 IDENTIFICATION DIVISION. AUTHORe BOB STARK» CO-OPs WEST VIRGINIA INSTITUTE OF TECHNOLOGY. INSTALLATIONe US COAST GUARD OCEANGGRAPHIC UNIT+s ATD/DPB. DATE=wRITTENe JUN 2691980. DATE=COMPILED. REMARKSe THIS PROGRAM IS THE MAIN PROGRAM OF THE DYFIT SYSTEM. Lh RAS 2 SHATEMENTS = TA CALE STO DYEORT ige TOLD MAT NRO UIPENES) AND A STOP STATEMENT. THE FIRST COBOL PROGRAM IN A MIXED LANGUAGE ENVIRONMENT CALLS ILBOSTPO (4 LIBRARY SUBROUTINE) WHICH INITIALIZES THE SUBROUTINE COMMUNICATIONS AREA AND SAVES POINTER REGISTERS NECESSARY FOR RETURN TO THE MAIN PROGRAM. THEREFORE THE FIRST PROGRAM MUST BE A COBOL PROGRAM. AS CONTROL WOULD NOT RETURN TO A MAIN FORTRAN PROGRAM AFTER IT HAD CALLED A COBOL SUB= ROUTINE. FOR MORE INFOo REFER TO CALLING AND CALLED PROGRAMS. IBM OS ANSI COBOL PROGRAMMERS GUIDE. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. CALL *DYFORT®. STOP RUNe IDENTIFICATION DIVISION. AUTHORe CO-OP BOB STARK USCG OCEANOGRAPHIC UNIT. INSTALLATIONe US COAST GUARD OCEANOGRAPHIC UNITe ATD/DPB. DATE=WRITTENe 6/11/1980. DATE=COMPILED. REMARKS. THIS PROGRAM READS AN INDEXED SEQUENTIAL FILE CONTAINING LATITUDE» LONGITUDEs YEAR» JULIAN=DAYs STANDARD DEPTHs AND DYNAMIC HEIGHT RECORDSs THE FILE IS SCRTED BY STANDARD DEPTHs JULIAN DAY» LATITUDE» AND LONGITUDES$ SKIP SEQUENTIAL LOGIC IS USED TO POSITION THE FILE AT THE PROPER START POINTS TwO ENTRY POINTS ARE USED: IT Seve Co POSIYUONS While Puke AY Wine TFURSY DESIRED RECORD BASED ON THE STDeDEPTH AND JULIAN DAY 2) READER = READS THE RECORDS AND RETURNS AN END OF PES PEAGS CLOSES whe FUL MnleN EOreilc ENVIRONYENT DIVISION.) CONFIGURATION SECTION. SOURCE=COMPUTER. IBM=360. OBJECT=COMPUTER. IBM=3606 INPUT-OUTPUT SECTION. FILE=CONTROL.« SELECT DYNAMIC=HEIGHT=FILE ASSIGN TO DA=I-ISAMFILE ACCESS MODE IS SEQUENTIAL RECORD: KEY TS RECORD=KEY. DATA DIVISION. FILE SECTION. FD DYNAMIC=HEIGHT-FILE LABEL RECORDS STANDARD RECORD CONTAINS 18 CHARACTERS BLOCK CONTAINS 354 RECORDS. 01 DYNAMIC=HEIGHT=REC. 03 RECORD-KEY. 05 STANDARD=-DEPTH PIC 9(5) USAGE COMP=3 SYNC. 05 JULTAN=-DAY PARC ROIS) USAGE COMP=3 SYNC. 05 YEAR PrCG Oe) USAGE COMP=-3. 05 LATITUDE PIC 999V999 USAGE COMP=3 SYNC. 05 LONGITUDE PIC 999V999 USAGE COMP=-3 SYNC. 03 OYNAMIC=HEIGHT PIC S99V999 USAGE COMP=3., WORKING=-STORAGE SECTION. 01 EQF=-FLAG PIC S9999 USAGE COMP SYNC. Q1 GENERIC=KEY. 03 NOM=-STD=DEPTH PIC 9(5) USAGE COMP=3 SYNCe 03 NOM=FIRST=JULIAN=DAY PIC 9(3) USAGE COMP=3 SYNC. LINKAGE SECTION, * THESE ARE USED WHEN SETKEY IS CALLED. 01 FIRST=JULIAN=DAY USAGE COMP=1 SYNC. 91 LAST=JULTAN=DAY USAGE COMP=1 SYNC. 01 STARTING=STD=DEPTH USAGE COMP=1 SYNC. 01 KEY-ERROR IPG SY) USAGE COMP SYNC. # THESE ARE USED WHEN READER IS CALLED. O01 LINK=LATITUDF USAGE COMP=] SYNC. 91 LINK=LONGITUDE USAGE COMP=] SYNC. 01 LINK=DYNAMIC=HEIGHT USAGE COMP=1 SYNC. 91 LINK-EOF-FLAG PIC $9999 USAGE COMP SYNC. #SETKEY ROUTINE PROCEDURE DIVISION USING FIRST=JULIAN=DAY»9 LAST=JULIAN=DAY 9 STARTING=STD=DEPTHs KEY=ERROPR. MOVE ZERO TO EOF=FLAGs KEY=ERROR. OPEN INPUT DYNAMIC=HEIGHT-FILE. MOVE STARTING=STD=DEPTH TO NOM=STD=DEPTH. MOVE FIRST=JULIAN=DAY TO NOM=FIRST=JULTAN=DAY. START DYNAMIC=HETIGHT=FILE USING KEY RECORD-KEY = GENERIC=KEY INVALID KEY MOVE 1 TO KEY=ERROR CLOSE DYNAMIC=HEIGHT=-FILE. GO TO SETKEY=EXIT. SETKEY-EXIT. EXIT PROGRAM. READER=ROUTINE. ENTRY *READER® USING LINK=LATITUDE+ LINK=LONGITUDE » LINK=DYNAMIC=HEIGHT» LINK~EOF-FLAG. MOVE EOF-FLAG TO LINK-EOF-FLAG. * READ DYNAMIC=HETIGHT=-FILE AT END PERFORM CLOSE-UP 69 TO EXIT=READER. IF STANDARD=DEPTH > STARTING-STD=DEPTH THEN PERFORM CLOSE-UP GO TO EXIT=READER ELSE IF JULTAN=DAY > LAST=JULIAN=DAY THEN PERFORM CLOSE=UP SUBTRACT 90 FROM LATITUDE» 180 FROM LONGITUDE TO CHANGE THE RANGE FROM 0-180 AND 0=360 TO -90 TO +90 AN -180 TO +130. ELSE SURTRACT 90 FROM LATITUDE GIVING LINK=LATITUDE SURTRACT 180 FROM LONGITUDE GIVING LINK-LONGITUDE MOVE DYNAMIC=HEIGHT TO LINK-DYNAMIC=HEIGHT. EXIT=READER. EXIT PROGRAM. CLOSE=UP. MOVE 1 TO EOF-FLAGs LINK=-EOF=-FLAG. CLOSE DYNAMIC-HEIGHT=-FILE. CF Fe ae ae te ae te te Sh Se He ah Sb ae Se Sb oe Sh ee te Sh aS ah Se oh ae oh de ae oe de de tb Sh de ae th te te de th tb th th ob oh ae Sh tk th th oh te de dh Sh te ae Te db te te ae th te oe ah te He Cv + C# PROGRAM DYFIT a C# + (Coe WRITTEN BY KEN MOONEY + C* Fs C# CHANGES * Gee 1) CHANGED FROM MAIN ROUTINE TO SUBROUTINE TO BE CALLED BY A + c* MAIN COBOL ROUTINE IN ORDER TO FACILITATE FORTRAN AND COBOL + Cc# SUBROUTINE COMMUNICATION. + Cee) ALL CALLS TO SPL4& HAVE BEEN DELETED AS SPL& HAS BEEN + Cz DELETED FROM THE DYFIT SYSTEM. % C* ENTERED 6/10/1980 BOB STARK + ce Ss) ADDED STANDARD DEPTH OF ZERO METERS. ENTERED 7/1/1980 Be. STARK CGE EE SESE HSE HE SESE SE GE GE SE Gb Se EE AE GE TE AE SEE ETE SEGRE SEETHER SUBROUTINE DYFORT COMMON A(169) COMMON XDATA(3591000) »YDATA(1000) sWDATA(1009) COMMON WORK (16) DIMENSION Z(18) : DATA 2/0920 ¢9300950097509100091250 91500 92000 9250093000 94000 950009 A6006970029800099002910006/ CY DPDP STANDARD DEPTH c* ALAT CENTER LATITUDE Gu ALON CENTER LONGITUDE Ce CTIME CENTER IN TIME (JULIAN DAY) c# YRNG RANGE FOR LATITUDE Cc# XRNG RANGE FOR LONGITUDE (Cw TRNG RANGE FOR TIME Cee IPRT IF 1 DATA PULLED OFF FILE RY SPL3 WILL BE PRINTED 10 READ (15900 sEND=40) DPDPeoALAT sALONo CTIMEs YRNGo XRNGs TRNGo IPRT 900 FORMAT (F5e092Xe LXoF6e201XoFFelolXoF4o0olXoFS5elelXaF bela lXs 1F4.091XeIl) IF (DPDP-EQ.9999-) GO TO 40 PRINT 903sDPDPeALATs YRNGoALONe XRNGoCTIME » TRNG 903 FORMAT(*1 STANDARD DEPTH = %o9F5.0e7Xe"LATITUDE = "oF 6er?9% +/— %q A FSe2o7TXo*LONGITUDE = %oF 7.29% */= "oF 6e226X9*JULIAN DAY = %o B F4e0e% +f/= %oF 4.0) G THIS SECTION CHECKS TO MAKE SURE THAT DPOP IS A STANDARD DEPTH DO 20 I=1918 IF (DPDPeEQeZ(1)) GO TO 30 20 CONTINUE PRINT 902 902 FORMAT(* DEPTH ENTERED IS NOT A STANDARD DEPTH.'*) C DPDP WASN'T A STANDARD DEPTH. NOW WE READ AND DUMP RECORDS C UNTIL WE FIND A 99 CARD WHICH MARKS THE END OF THIS SET OF POINTS 25 READ (1s901sEND=40) DPDP 901 FORMAT (F652) IF (DPDP.EQ.99.) GO TO 10 GO TO 25 30 CALL SPL3(DPDP eALAT sALONoCTIME »s XRNGo YRNGo TRNGo IPRT) GO TO 10 C 40 RETURN END SUBROUTINE SPL3(DPDP»ALAT »ALONoCTIME »XRNGs YRNGo TRNGoIPRT) CC RRR ER eh HEHEHE HEHEHE COMMON A(169) COMMON XDATA (361000) sYDATA(1900) »sWDATA(1000) COMMON WORK (16) DIMENSION XMIN(2) »XMAX(2) sNODES (2) sNDERIV (2) » COEF (16) eX (2) DATA NDIM/2/ NODES (1) 74/7 eo NODES (2) 47 9XTRAP/1 e/a NCFS16/ 5 NWRK/S17T/ REAL MINLAT»s MINLONs MAXLATs* MAXLON INTEGER*#2 ENF es KEYERR CC Rea se eh th ae a ee ee Sh SE HE ee ae eh Ee HHH (C c C aQaaN0 10 MEOi@re ) &) THIS SECTION REWRITTEN 6-13-1980 BY COOP BOB STARK TO PROVIDE COMPATABILITY WITH NEW COBOL INDEXED SEQUENTIAL RECORD RETRIEVAL SUBPROGRAMS ADDED TO THE DYFIT SYSTEM. XMIN (2) =ALAT=YRNG MINLAT = XMIN(?P) XMAX (7) =ALAT+YRNG MAXLAT = XMAX(?) XMIN( 1) =ALON=XRNG MINLON = XMIN(1) XMAX (1) =ALON+*XRNG MAXLON = XMAX(1) TMIN=CTIME=TRNG TMAX=CTIME+TRNG TMIN?@ = Oc TMAXK2 = Oe NDATA=0 CHECK FOR JANUARY TO DECEMBER WRAPAROUND IN START DATE. IF (TMINeGEe1) GO TO 8 TMIN=TMIN+365. TMIN2=1. TMAX2=TMAX TMAX=365- GO TO 10 CHECK FOR DECEMBER TO JANUARY WRAPAROUND IN THE END DATE. Ie CYA SoZ S6SOSo) 60 YO NO TMING = le TMAX? = TMAX=365.6 TMAX = 365-6 SE THE SWART ING IR TEE (NEY SOM DES TIRED I DYNAMEGs DEP IH AND JULIAN DAY (TMIN). CALL SETKEY(TMINs TMAXs DPDPs» KEYERR) IF (KEYERReNEe1) GO TO 20 Tho WE GOT HEREs ThE SETKEY ROUT ENES COULD NOT mr lNDR Am KENanAn THE STARTING KEY POINTe NOW WE TRY INCREMENTING THE START DAY WITH THE HOPE OF FINDING A GOOD KEYe IF WE CAN'T FIND A GOOD KEY FROM TMIN TO TMAXs THE AREA MUST BE OUTSIDE THE RANGE OF THE FILE. TMIN = TMIN¢1. IF (TMINeLT»~TMAX) GO TO 10 Oo Ke WE BOMBED OUT ON THAT ATTEMPT TO SET THE KEY. CHECK FOR A 2 ENTRY POINT CONDITION (IE DECEMBER=JANUARY WRAPAROUND) 22 NANA 25 aa IF FOUND» BRANCH TO THE SECOND KEY SETUP ROUTINE IF (TMIN2ZeNE ec DeeOReTMAX2eNE* 02) GO TO 22 SORRY "=—GANtT SET VAD REE KEY. PRINT 159DPDP FORMAT (* NO DATA IN FILE FOR STD DEPTH = %oF6.0) READ AND DUMP POINTS UNTIL A 99 IS FOUND. READ 9309X(2) IF (X(2) eNE*992) GO TO 17 GO TO 70 THIS IS THE MAIN READ LOOP. CALL READER (ALATTs ALONGs DYNHGTs EOF) HF CeOlzoNz ow) OO WO 2S) PME US Ap No CHECK FOR 2 START POINTS. IF (TMIN2Z.EQeMeceANDeTMAX2-EQ206) GO TO 40 FILE DOES HAVE 2 START POINTS DUE TO DECEMRER=JANUARY WRAPAROUND. NOW WE HAVE TO SET THE KEY FOR THE SECOND SyARY POUNW OF While te wleleq TMIN = TMIN? TMAX = TMAX? TMIN2=06 TMAX2 = De GO TO 10 THIS SECTION CHECKS THE DATA FOR VALIDITY. Wing NENW SYAVEMENY ADJUSTS Vals LONG Mba is hile Ceuta IS EAST OF THE INTERNATIONAL DATE LINE AND THE POINT IS WEST. IF (MINLONeLTe-1800eANDcALONGeGT206) ALONG =-3602-+ALONG Is THE NEXT STATEMENT ADJUSTS THE LONGITUDE IF THE CENTER IS WEST OF THE INTERNATIGNAL DATE LINE AND THE POINT IS EAST. IF (MAXLON GT e1l80eeANDeALONGeLTe0.) ALONG = 3602+ALONG NOW CHECK THAT LAT AND LONG ARE WITHIN RANGE. IF (ALATTeGTeMAXLAT eORc ALONG eGT oeMAXLONeURCALATToLT eMINLAT OR} 1 ALONG.eLTeMINLON) GO TO 20 Oe Ke WE MADE IT. DATA IS GOOD. NDATA = NDATA+] WDATA(NDATA) = le XDATAC2@sNDATA) = ALATT XDATA(1LeNDATA) = ALONG YDATA(NDATA) = DYNHGT IF (NDATAeGE-1000) GO TO 40 GO TO 20 RESUME DRe KEN MOONEY*S ORIGINAL SPL3 ROUTINF. 40 IF(IPRTeNE-1) GO TO 50 PRINT 910 910 FORMAT (1H=910X93HLAT 9 BXe4HLONGs 6Xe6HDY HGTo//) PRINT 9209 (IT eXDATA(29I1) sXDATA(1 91) sYDATA(I) 9 I=l9NDATA) 920 FORMAT(IH oS 3e5XeF60295KXoF Tele SX9F8e3) 50 CALL SPLCW(NDIMsNDATAsXMIN» XMAX NODES 9 XTRAP » COEF oNCF sNwRK» TERROR) IF (IERROR-GEe32) GO TO 69 PRINT 940 940 FORMAT (1H1] 92X09 3HLAT 9 8X 9 4HLONGs 7X9 3HDAY 9 6X9 3HDIR9 7X9 3HSPDs 1X9 LIHUs9Xo1LHVs6Xe9SHNDATA) C READ THE LATITUDE AND LONGITUDE AT WHICH THE SURFACE CURRENT Cc IS TO BE COMPUTED. 60 READ 9309X(2)9xX(1) 930 FORMAT (F6e2e1X9F Se2) IF (X(2) eEQ.99-) GO TO 70 IF (TERROR-GEe32) GO TO 69 CON1L=-1]1 e2/SIN(X(2)/572296) CON2=2 64/SIN(20*X(2)/570296) NDERIV(1)=0 NDERIV(2)=1 VX=CON]1#SPLOE (NDIMeX »NDERIVoCOEF o XMINoXMAX »NODESs IERROR) IF (IERROReGEe 32) GO TO 70 NDOERIV(1)=1 NDERIV (2) =0 VY=CON2*#SPLDE (NDIMsX sNDERIVo COEF »XMINo XMAXeNODESs IERROR) IF (TERROR.GEe32) GO TO 79 VEL=(VX*#VX4FVYHVY) F025 ANG=57 -296#ATAN2 (VXoVY) IF (ANGeLT e006) ANG=ANG+360. PRINT 9509X(2)oX(1) sCTIME sANGo VEL eo VXoVYoNDATA 950 FORMAT(LHOsF6e2o5KoFk Tela SX oF 4o09SKoF 4e0e3(5X9F50c) 095X913) GO TO 60 70 RETURN END SUBROUTINE SPLCW(NDIMsNDATAeXMINo XMAX 9 ] NODES» XTRAP » COEF »NCF »NWRK » TERROR) C DESCRIPTION OF SPLCW IS AVAILABLE IN NCAR SOFTWARE SUPPORT C LIBRARYs NCAR TECHNICAL NOTE TA~1059 MARCH 1975. Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure 6. Figure 7. Figure 8. Figure 9. Figure 10. Figure 11. Figure 12. Figure 13. LIST OF CAPTIONS Node arrangement used in spline fit analysis. Average geostrophic January. Average geostrophic February. Average geostrophic March. Average geostrophic April. Average geostrophic May. Average geostrophic June. Average geostrophic July. Average geostrophic August. Average geostrophic September. Average geostrophic October. Average geostrophic November. Average geostrophic December. currents currents currents currents currents 1 currents currents currents currents currents currents currents in in in in in in in in in the Southern California Bight the Southern California Bight the Southern California Bight the Southern California Bight the Southern California Bight the Southern California Bight the Southern California Bight the Southern California Bight the Southern California Bight for for for for for for for for for the Southern California Bight for in the Southern California Bight for in the Southern California Bight for the the the the the the the the the the the the month month month month month month month month month month month month of of of of of of of of of of of of of & of & ov & oS MoZI\ o8il o6 || oO dl oldl Mod dl LNSYYND NVAW AYVANVE MoZll o8ill 06 ll oOdl ol dl M od dl oc & of © ob & oG& oc & of & ov & oGe 8 ll o6 ll o0 dl old Mod dl / 10° 610 LNSYYND NVAW AYVNYE3aSs o8 ll o6 ll oOd| ol dl Moddl of & of & of & oG& MoZll oS ob Il oOdl ol d| Mod dl od & of of © oD ob & oS oGe INAYYUND NVAW HOYVNW MoZII o8ll o6ll o0dl ol dl Modal of & of & ove oGS Modll oSll 0 Borel ial MoZal = ; "lis 00 180) 40 201 | 60 OdI} 90 Ie!) 90 I1}90 6¢61) £0 pl eS 80 36 O€ | RS He PR Ne INAYYNONVAW TWYdv : Mod o8ll Fell oOZI piel MoZal oc & of & ob & oGS of & o& & oS oGE Moll 08 061 oOdl ol dl Modal LNAYYND NVAW AVW Mod II o8il 061] 00d! ol dl Moddl oc & of © ov & oG& MoZII Sil o6 ll oOdl oldl Mod dl oc & of & of © of © ove ov & N N oGe oGF LNAYYND NVAW ANNE MoZlI o8ll o6 II o0dl ol dl Moc dl Moll o8 il o6 II oO0dl oldl Modal og & oc & of of & oVE ob & N N oGe oGe INAYYND NVAW AINE MoZll o8ll of Il o0d| ol dl Modal MoZll o8ll of Il oO dl old Moddl oc & oc & of & 4 )" ; SO” 6S1| 80° o¢| of & \ INJHUND ON oS VE N N oGE oGE Nels) SIND Wiel LSNony MoZll o8ll ob ll oO dl ol dl Modal oc & of & oVE oGe MoZll o8ll o6 ll o0dl ol cl Mocdl LN3YYND NVAW YSAEWALd]AS MoZII o8ll oF Il o0dl ol dl M oc dl of & of & ov & oGS oc & o& & ove oGe Modll o9!| of ll o0dl ol dl Moddl IN3SYYND NVAW YAEOLIO MoZIl o8ll of Il oAdl ol dl Moddl oc & of © ob & oGS MoZl| 081 of ll o0dl ol dl Modal oc & Rcae 5e8 “eve ov © N N 58e ace LNSAYYND NVAW YAEWSAAON Moll o8 i o6 Il o0dl ol dl Mod dl ModZll o8 1 06] oOdl oldl Mod dl of & of & of & of ove oV & oGE oGe INS3AYYND NVAW YSAEW3I090 MoZlI o8 Il of II oO dl ol dl Mocdl J Fl ' * ee ey Sy 16 " v i 4 ‘2 7 i - rs aes an eee ¥ : ‘tabs ip oye aa ak mp el TUL ‘ NETS pent Na ; : Ke