netCDF Code Manual for Quality Controlled
Surface Meteorological Data







Shawn R. Smith and David Legler



Research Vessel Surface Meteorological Data Center (RVSMDC)

World Ocean Circulation Experiment (WOCE)

Surface Meteorological Data Assembly Center (DAC)

Center for Ocean-Atmospheric Prediction Studies

Florida State University




19 November 1997

Updated: 28 September 2001


Report WOCEMET 95-4
Version 3.0




1. Introduction

The WOCE network Common Data Format (netCDF) code manual for quality controlled (QC) surface meteorological data outlines the codes used within the DAC surface meteorological data sets released to the WOCE community. The code is a synthesis of the COADS documentation (Slutz et al. 1985), standard World Meteorological Organization (WMO) synoptic code, and new codes derived at Florida State University (FSU). In many places numeric codes were used to keep the data set compact.

NetCDF was chosen to take advantage of its portability and capability to include both the data and metadata (information about the data) in a single file. Complete details regarding netCDF can be found in Appendix 1.

The WOCE netCDF data file includes up to 31 possible parameters. In some cases, multiple measurements of the same parameter are available (e.g. sea temperature measured from a thermosalinograph and a bucket temperature) and are differentiated using sequentially numbered variable names (TS, TS2, TS3, TS4, etc.). As described in section 2, variables include not only meteorological data (temperature, pressure, etc.), but also a number of supporting variables (time of observation, platform position, movement, and flag discription, etc.). A variable containing quality control (QC) flags is included to indicate the QC applied to the data values. Multiple variable attributes provide information on data units, instruments used, instrument height, etc. in an attempt to provide an even mix between raw data and metadata. Thirteen global attributes contain general information for all data within the netCDF file. An example of a WOCE netCDF file is found in Appendix 2.

Most of the data that arrive at the Surface Meteorology DAC are converted to netCDF. The only change to the data is a simple conversion to a standard set of units. The original units are noted in a variable attribute. Any data arriving without an accurate time stamp or information on whether the time is local or UTC were discarded only after all attempts to obtain correct time information were exhausted. The data also must have position information, i.e. data lacking latitude and longitude values were discarded only after all attempts to correctly position the data failed. Furthermore, if data arrived with no units attached, only after every effort to determine their units was exhausted, were the data discarded. Data collected without a record of time, position, or units are useless to the research community. However, all original data contributions are archived in the event additional information is discovered later that would allow the inclusion of discarded data.

The DAC has now expanded beyond the WOCE parameters to provide other useful cruise data to researchers. These (non-woce;RVSMDC) cruises are set up in very much the same way as WOCE cruises, but are not resricted to the same time and location constraints. Many of the RVSMDC cruises are infact the same ships that provide WOCE data, but just at different times. One of the main differences between WOCE and RVSMDC data are the longitude convention. At the request of the WOCE Data Committee, all WOCE netCDF files (version 300) contain longitude units in the (+E/-W) 180 degrees convention. The RVSMDC standard longitude units are from 0-359.99 degrees East. All data that are not included in WOCE have the 0-359.99 degrees East units convention.

Section 2 outlines the data variables and attributes and describes all numeric codes that are employed. Section 3 covers the global attributes. Throughout the manual, variables will be indicated by bold type and attributes will be italicized.





2. Variables

Up to 31 parameters may appear in a surface meteorology file for WOCE, Table 1. All data files will contain the time, latitude, longitude, and quality control flag variables. The quality control flags are single alphabetic characters that represent either problems or notable features in the data. The quality control flags for multiple variables are combined in a single string and stored in the flag variable. The flag variable as a result is a character string that has a length equal to the number of variables that underwent quality control (a list of the flags, their definitions, and an example of their usage is found in section 2bb). For each variable, Table 1 shows whether or not that attribute is associated with a particular variable.

Table 1: Variable attribute list.
Variable long_name units convers _units type instrument height FORTRAN
_format
qcindex missing_value special_value
cruise_track_code cruise track code code (see text)         A9   N/A N/A
woce_date woce date YYYYMMDD UTC         I9 * N/A N/A
woce_time_of_day woce time of day HHMMSS.SS UTC         F10.2 * N/A N/A
time time min. since 1-1-1980 00:00 UTC   Table 2     I12 * N/A N/A
latitude latitude degrees N Table 3       F9.2 * N/A N/A
longitude** longitude** degrees E**, (+E/-W) 180 degrees** Table 3**       F9.2 * N/A N/A
PL_HD platform heading degrees - clockwise from N Table 4   *   F9.1 * -9999. -8888.
PL_CRS platform course degrees - clockwise from N Table 4  *   F9.1 * -9999. -8888.
PL_SPD platform speed m s-1 Table 5   *   F9.1 * -9999. -8888.
PL_WDIR platform relative wind direction degrees - clockwise from bow Table 4  

*

*

F9.1

*

-9999. -8888.
PL_WSPD platform relative wind speed m s-1 Table 5  

*

*

F9.1

*

-9999. -8888.
DIR earth relative wind direction degrees - clockwise from N Table 4   * * F9.1 * -9999. -8888.
SPD earth relative wind speed m s-1Table 5   * * F9.1 * -9999. -8888.
P atmospheric pressure hPa Table 6 Table 7 * * F9.1 * -9999. -8888.
T air temperature degrees C Table 8   * * F9.2 * -9999. -8888.
TW wet-bulb temperature degrees C Table 8   * * F9.2 * -9999. -8888.
TD dew point temperature degrees C Table 8   * * F9.2 * -9999. -8888.
TS sea temperature degrees C Table 8 Table 9 * * F9.2 * -9999. -8888.
RH relative humidity percent     * * F9.1 * -9999. -8888.
Q specific humidity g kg-1 Table 10   * * F9.1 * -9999. -8888.
PRECIP precipitation mm Table 11   * * F9.1 * -9999. -8888.
RRATE rain rate mm/min Table 11   * * F9.1 * -9999. -8888.
RAD radiation W m-2 Table 12 Table 13 * * F9.1 * -9999. -8888.
WX present weather code
(Table 14)
        I6   -9999 -8888
TCA total cloud amount code
(Table 15)
Table 17       I6   -9999 -8888
LMCA low/middle cloud amount code
(Table 15)
Table 17       I6   -9999 -8888
ZCL cloud height code
(Table 18)
        I6   -9999 -8888
LCT low cloud type code
(Table 19)
        I6   -9999 -8888
MCT middle cloud type code
(Table 20)
        I6   -9999 -8888
HCT high cloud type code
(Table 21)
        I6   -9999 -8888
flag quality control flags code
(Table 22)
        A*   N/A N/A

**At the request of the WOCE Data Committee, all WOCE files (version 300) contain longitude units in the (+E/-W) 180 degrees convention. An example of the WOCE netCDF file is located in Appendix 2. The RVSMDC standard longitude units are from 0-359.99 degrees East. All data that are not included in WOCE have the 0-359.99 degrees East units convention.

The definition of the attributes are:

a) Cruise track code (cruise_track_code)

The cruise track code stores up to a 9 character string that marks each recording time as being either a WOCE cruise, another dedicated cruise (other), or a cruise with an 'unknown' designation. A WOCE cruise_track_code will include the WOCE Hydrographic Program transect line number and a sequential cruise number using the format BRS##D/## where:


For example, the code PRS14E/17 represents the 17th cruise on the Eastern portion of the Pacific Repeat time Series line number 14.

b) Date (woce_date)

The woce_date contains a four digit year (YYYY), two digit month (MM), and two digit date (DD) for each data record. The woce_date is stored as an integer with a format YYYYMMDD and units in the Universal Time Coordinate (UTC). Note: additional information about the data recording times are located in the variable attributes for time (see below).

c) Time of day (woce_time_of_day)

The woce_time_of_day contains the hour (HH), minute (MM), and seconds (SS.SS) for each data record. The woce_time_of_day is stored as a floating point values of the form HHMMSS.SS and units in the Universal Time Coordinate (UTC). Note: additional information about the data recording times are located in the variable attributes for time (see below).

d) time

The time is a double precision variable with units equal to minutes since 1-1-1980 00:00 UTC. We chose 1980 as our reference year primarily because it is the beginning of the decade that is nearest the start of the WOCE data collection. The time is quality controlled for non-sequential and unrealistic values. The type is encoded according to Table 2.

Table 2: Time types.

code definition


Two other attributes, ave_period and ave_center, were added to files after 30 March 1996 to add detail to mean times. The ave_period will contain the length of the averaging period in seconds or have a value of zero when the ave_period is unknown or N/A.

The codes for the ave_center are:

code definition

The time will be quality controlled primarily for non-sequential and duplicate time values and the QC flag index will be stored in qcindex.

A FORTRAN subroutine to convert from minutes since 1-1-1980 00:00 UTC to year, month, day, hour, and minute values is provided in Appendix 3.

e) latitude (latitude)
f) longitude (longitude)

Platform position is in units of degrees; positive degrees for north latitude, negative degrees for south latitude, positive 0-359.99 degrees east longitude for all RVSMDC cruises, and (+E/-W) 180 degrees longitude for all WOCE cruises. The units of the original values of latitude and longitude are found in Table 3.

Table 3: Units of original latitude and longitude.

code definition

The latitude and longitude are quality controlled for data validity, unrealistic platform movement, and whether an oceanographic platform moves over land.

g) platform heading (PL_HD)

The heading is recorded in units of degrees (recorded clockwise relative to true north) and represents the direction that the bow of the ship is pointing. Valid headings range from 000.0 to 359.9 degrees. A convers_units attribute stores the original format of compass values using the codes found below in Table 4.

h) platform course (PL_CRS)

The course is recorded in units of degrees (recorded clockwise relative to true north) and represents the direction that the ship is moving relative to the fixed earth. Valid course values range from 000.0 to 359.9 degrees. A convers_units attribute stores the original method of recording the course using the codes in Table 4.

i) platform speed (PL_SPD)

The platform speed is recorded in units of meter per second after a conversion from the original units (encoded using Table 5). Often multiple values are present including, but not limited to, a speed relative to the water (doppler log, etc.) and a speed relative to the earth (gps).

j) earth-relative wind direction (DIR)

The earth-relative wind direction is stored with units of degrees and is encoded using
000.0 = calm
001.0-360.0 = direction in degrees
361.0 = variable (rarely used in bridge data only)
going clockwise from true north. All wind directions are reported in the standard meteorological convention; the direction the wind is blowing from. Table 4 lists the possible compass types used to record the original data.

Table 4: Wind direction conversion units.

Code Definition

k) earth-relative wind speed (SPD)

The earth-relative wind speed is recorded in units of meters per second, and Table 5 lists the codes for the original units of the wind speed data.

Table 5: Wind speed conversion units.

Code Definition

NOTE: TRUE WIND SPEED AND DIRECTION ARE EITHER CALCULATED BY THE DATA PROVIDER AND CHECKED BY THE DAC, OR THEY ARE CALCULATED BY THE DAC. A comment in the instrument attribute will be included.

NOTE 2: FILES RELEASED AFTER 19 AUGUST 1997 MAY CONTAIN PLATFORM RELATIVE WIND DIRECTION (PL_WDIR) AND SPEED (PL_WSPD). These variables are necessary when assessing errors caused by flow over the vessel or the vessel's acceleration. PL_WDIR and PL_WSPD data for cruises released before 19 August 1997 are available upon request. All coding and units for PL_WDIR and PL_WSPD are the same as DIR and SPD, with the exception that the PL_WDIR is referenced to a zero line on the vessel. This zero_line_ref is included as a variable attribute and coded:

Code Definition

l) atmospheric pressure (P)

Pressure is recorded in units of hectopascals. The units of the original data are listed in Table 6 and Table 7 outlines the codes for the pressure type.

Table 6: Atmospheric pressure conversion units.

Code Definition

Table 7: Atmospheric pressure type.

Code Definition

m) air temperature (T)
n) wet-bulb temperature (TW)
o) dew point temperature (TD)

All atmospheric temperatures are recorded in units of degrees Celsius after a conversion from the original units (see Table 8).

Table 8: Temperature conversion units.

Code Definition

p) sea temperature (TS)

The sea temperature is recorded in units of degrees Celsius with the original units encoded according to Table 8. NOTE: The sensor depth is recorded in meters and has a positive value for all non-missing values (the attribute name is changed from height to avoid confusion). The specific instrument type used to measure the sea temperature is stored in instrument while the general instrument type is recorded using the codes in Table 9.

Table 9: General instrument types used to record sea temperature.

Code Definition

q) relative humidity (RH)

The relative humidity is recorded in units of percent.

r) specific humidity (Q)

Specific humidity is recorded in units of grams per kilogram and the codes for convers_units are found in Table 10.

Table 10: Original specific humidity units.

Code Definition


s) precipitation (PRECIP) [rain rate (RRATE)]

The precipitation [rain rate] is recorded in units of millimeters [per minute] and Table 11 lists the original precipitation [rain rate] units.

Table 11: Precipitation conversion units.

Code Definition

t) atmospheric radiation (RAD)

All radiation parameters will be stored in sequentially numbered RAD variables with units of watts per meter squared. The original radiation units are encoded based on Table 12 and the radiation types are listed in Table 13.

Table 12: Radiation conversion units.

Code Definition

Table 13: Radiation types.

Code Definition

u) present weather (WX)

Table 14: Present weather codes are the same as those from COADS data (Slutz et al. 1985).

Code Definition

v) total cloud amount (TCA)
w) low/middle cloud amount (LMCA)

The codes for the total and low/middle cloud amounts (Table 15) are from the COADS data (Slutz et al. 1985). For the total cloud amount, codes 0 to 9 show the fraction, in oktas, of the celestial dome covered by all clouds. For the low/middle cloud amount the codes show the fraction, in oktas, of the celestial dome covered by all the low clouds and, if no low clouds are present, the fraction covered by all the middle clouds.

Table 15: Cloud amount codes.

Code Definition

If the data arriving at the DAC use tenths to describe cloud cover, the convention in Table 16 will be used to convert from tenths to oktas and the original data units will be noted using the codes in Table 17.

Table 16: Relationship between tenths and oktas.

tenths oktas

Table 17: Cloud amount conversion units.

Code Definition

x) cloud height (ZCL)

Cloud height is recorded using the standard 0-10 synoptic code. Table 17 shows the height ranges and codes for measurements in feet or meters.

Table 18: Cloud height codes, adapted from table 9 of the COADS data documentation (Slutz et al. 1985) .

Approximate height of lowest cloud base
CodeFeetMeters
CodeFeetMeters
  • 0:
  • 0-1490-49
  • 1:
  • 150-29950-99
  • 2:
  • 300-599100-199
  • 3:
  • 600-999200-299
  • 4:
  • 1000-1999300-599
  • 5:
  • 2000-3499600-999
  • 6:
  • 3500-49991000-1499
  • 7:
  • 5000-64991500-1999
  • 8:
  • 6500-79992000-2499
  • 9:
  • >=8000 or no clouds>=2500 or no clouds
  • 10:
  • indicates that the cloud height cannot be estimated because of darkness or for other reasons.

    y) low cloud type (LCT)

    Table 19: Low cloud type codes extracted from the COADS data documentation (Slutz et al. 1985). The codes show observed characteristics of clouds of the types stratocumulus, stratus, cumulus, cumulonimbus, and their variations.

    Code Definition

    z) middle cloud type (MCT)

    Table 20: Middle cloud type codes extracted from the COADS data documentation (Slutz et al. 1985). The codes show observed characteristics of clouds of the types altocumulus, altostratus, and nimbostratus.

    Code Definition

    aa) high cloud type (HCT)

    Table 21: High cloud type codes extracted from the COADS data documentation (Slutz et al. 1985). The codes show observed characteristics of clouds of the types cirrus, cirrocumulus and cirrostratus.

    Code Definition


    bb) quality control flags (flag)

    The quality control flags (Table 22) are single alphabetic characters for each data value. Only those variables with a qcindex have flag values (the qcindex is an integer pointer to the flag for a selected variable), i.e. not all meteorological variables are quality controlled.

    Table 22: Definitions of WOCE quality control flags.

    Flag Definition

    Table 23: Range Bounds used in determining the use of flag B.
    Variable Lower Bound Upper Bound UnitsOther
    time 1-1-1980 12-31-1999   
    latitude -90 90 degrees 
    longitude 0*; -180W* 359.99*; +180E* degrees 
    platform heading 0 359.9 degrees 
    platform course
    0
    359.9

    degrees

     
    platform speed 0 15 m s-1 research vessels
    wind direction 0 360 degrees  
    wind speed 0 40 m s-1  
    pressure 950 1050 mb Sea level
    air temperature -10 40 deg. Celsius  
    wet bulb temperature -10 40 deg. Celsius  
    dew point temperature -10 40 deg. Celsius  
    sea temperature 0 35 deg. Celsius  
    relative humidity 0 100 percent  
    specific humidity 0 48 g kg-1  
    rain rate 0 150 mm hr-1  
    radiation 0 1400 W m-2  

    **At the request of the WOCE Data Committee, all WOCE files (version 300) contain longitude units in the (+E/-W) 180 degrees convention. An example of the WOCE netCDF file is located in Appendix 2. The RVSMDC standard longitude units are from 0-359.99 degrees East. All data that are not included in WOCE have the 0-359.99 degrees East units convention.


    As an example of the usage of the flag variable, assume that a WOCE netCDF file contains only time, latitude, longitude, atmospheric pressure, and air temperature data along with a flag variable. Based on Table 1, all five variables will be quality controlled and each will have a unique qcindex. If the values for the first record of all five variables pass all quality control checks, then the first record of the flag variable will contain "ZZZZZ"; i.e. the flag variable contains QC flags for each QC variable, in this example 5 flags. However, if the second record contains a non-sequential time, but good latitude and longitude values, a pressure value of 1090 mb, and a temperature that is 6 standard deviations from the climatology, then the second record of flag will contain "CZZBG". The qcindex allows access to the flags for any variable. For example, the flag for the second record for atmospheric pressure (qcindex=4) is a "B" indicating the pressure value is out of bounds.




    3. Global Attributes

    The global attributes in the WOCE DAC netCDF files include parameters that apply to all the variables in the file or to the file in general. Again a mix of data and metadata are included.

    a) title

    A descriptive title highlighting the platform name, location, and special instrument characteristics. Often used to title plots of the data from the netCDF file. Ex: "Bridge observations - R/V Vidal Gormaz - PR_14_/04 Cruise"

    b) site

    This attribute will contain either the alphanumeric R/V name or buoy location name.

    c) elev

    Stores the geographic elevation of the site in meters above sea level. This value is zero for ships and buoys.

    d) ID

    Either the ship/platform identification, call sign, or WMO number.

    e) platform

    Instrument system that recorded the data. For example: IMET, PAM, ATLAS, unspecified tower, bridge report, hand held instruments, etc.

    f) facility

    The institution or country that either collected the data or are the primary holder of the data. For example: NOAA, PMEL, WHOI, University of Washington, Chile, etc. Also included is the name of the PI or primary data provider for the original files.

    g) fsu_version

    The current version number or the data in the file.


    h) startdate

    The first date of the data in the file. Coded as DD MMM YYYY where
    DD Day number (01 to 31)
    MMM Month (JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC)
    YYYY Four digit year (ex: 1992).

    i) enddate

    The last date of the data in the file. Coded the same as startdate.

    j) EXPOCODE

    Identifier for all WOCE cruises created by the WOCE Hydrographic Programme Office and obtained from the WOCE DIU at the University of Delaware. This identifier is appended to help match our data files to other oceanographic data sets.

    k) Release_Date

    Date that QC data set was released by WOCE DAC.

    l) contact_info

    Center for Ocean-Atmospheric Prediction Studies (COAPS), The Florida State University, Tallahassee, FL, 32306-2840, USA.

    m) contact_email

    wocemet@coaps.fsu.edu





    4. References

    da Silva, A. M., C. C. Young, and S. Levitus, 1994: Atlas of Surface Marine Data, Volumes 1: Algorithms and Procedures. NOAA Atlas Series, U.S. Dept. of Commerce, NOAA, NESDIS, Data, and Information Service : For sale by the U.S. G.P.O., Supt. of Docs.

    Slutz, R.J., S.J. Lubker, J.D. Hiscox, S.D. Woodruff, R.L. Jenne, D.H. Joseph, P.M. Steurer, and J.D. Elms, COADS (Comprehensive Ocean-Atmosphere Data Set) Release 1, pp. 300, CIRES University of Colorado, 1985.





    Appendix 1

    Unidata netCDF
    Version 3.3.1
    June 1997

    The Unidata network Common Data Form (netCDF) is an interface for scientific data access and a freely-distributed software library that provides an implementation of the interface. The netCDF library also defines a machine-independent format for representing scientific data. Together, the interface, library, and format support the creation, access, and sharing of scientific data. The current netCDF software provides common C, FORTRAN, and C++, and perl interfaces for applications and data. It has been tested on various common platforms.

    netCDF files are self-describing, network-transparent, directly accessible, and extendible. `Self-describing' means that a netCDF file includes information about the data it contains. `Network-transparent' means that a netCDF file is represented in a form that can be accessed by computers with different ways of storing integers, characters, and floating-point numbers. `Direct-access' means that a small subset of a large dataset may be accessed efficiently, without first reading through all the preceding data. `Extendible' means that data can be appended to a netCDF dataset without copying it or redefining its structure.

    netCDF is useful for supporting access to diverse kinds of scientific data in heterogeneous networking environments and for writing application software that does not depend on application-specific formats. A variety of analysis and display packages have been developed to analyze and display data in netCDF form.

    You can obtain a copy of the latest released version of netCDF software using a WWW browser or anonymous FTP from

    ftp://ftp.unidata.ucar.edu/pub/netCDF/netCDF.tar.Z

    Included in this distribution are: the C source for the netCDF data access library, sources for the FORTRAN and C++ interfaces, documentation for the netCDF library and utilities in the form of a netCDF User's Guide, source for the netCDF utilities ncdump and ncgen, and test programs to verify the correct implementation of the netCDF library.

    More information about netCDF, including a Frequently Asked Questions list and access to on-line documentation, is available from the URL

    http://www.unidata.ucar.edu/packages/netCDF/

    A mailing list, netCDF group@unidata.ucar.edu, exists for discussion of the netCDF interface and announcements about netCDF bugs, fixes, and enhancements. For information about how to subscribe, see the URL

    http://www.unidata.ucar.edu/packages/netCDF/mailing-lists.html

    An archive of past postings to the netCDFgroup mailing list is available for searching from the netCDF home page.

    Questions about netCDF may be sent to support@unidata.ucar.edu.



    Appendix 2

    Sample listing of the contents of a public (version 3.0.0) netCDF file created by the FSU DAC. This file is stored in a binary format but the listing presented here can be created using a netCDF utility called "ncdump" (refer to information provided by Unidata, Appendix 1). All arrays are indexed by the time.
    netCDF CCVG.931007011v300 {
    dimensions:
            time = 43 ;
            f_string = 12 ;
            ctc_string = 9 ;
    variables:
            char cruise_track_code(time, ctc_string) ;
                    cruise_track_code:long_name = "cruise track code" ;
                    cruise_track_code:FORTRAN_format = "a9" ;
            long woce_date(time) ;
                    woce_date:long_name = "woce date" ;
                    woce_date:units = "YYYYMMDD UTC" ;
                    woce_date:qcindex = 1 ;
                    woce_date:FORTRAN_format = "I9" ;
            float woce_time_of_day(time) ;
                    woce_time_of_day:long_name = "woce time of day" ;
                    woce_time_of_day:units = "HHMMSS.SS UTC" ;
                    woce_time_of_day:qcindex = 1 ;
                    woce_time_of_day:FORTRAN_format = "F10.2" ;
            long time(time) ;
                    time:long_name = "cruise track code" ;
                    time:units = "minutes from 1-1-1980 00:00 UTC" ;
                    time:type = 2 ;
                    time:ave_period = 0 ;
                    time:ave_center = 0 ;
                    time:qcindex = 1 ;
                    time:FORTRAN_format = "i12" ;
            float latitude(time) ;
                    latitude:long_name = "latitude" ;
                    latitude:units = "degrees (+N)" ;
                    latitude:convers_units = 0 ;
                    latitude:qcindex = 2 ;
                    latitude:FORTRAN_format = "f9.1" ;
            float longitude(time) ;
                    longitude:long_name = "longitude" ;
                    longitude:units = "degrees (+E)" ;
                    longitude:convers_units = 0 ;
                    longitude:qcindex = 3 ;
                    longitude:FORTRAN_format = "f9.1" ;
            float PL_CRS(time) ;
                    PL_CRS:long_name = "platform course" ;
                    PL_CRS:units = "degrees (clockwise from true north)" ;
                    PL_CRS:convers_units = 5 ;
                    PL_CRS:instrument = "Magellan 5000D GPS" ;
                    PL_CRS:qcindex = 4 ;
                    PL_CRS:FORTRAN_format = "f9.0" ;
                    PL_CRS:missing_value = -9999.f ;
                    PL_CRS:special_value = -8888.f ;
            float PL_SPD(time) ;
                    PL_SPD:long_name = "platform speed" ;
                    PL_SPD:units = "meters/second" ;
                    PL_SPD:convers_units = 5 ;
                    PL_SPD:instrument = "Magellan 5000D GPS" ;
                    PL_SPD:qcindex = 5 ;
                    PL_SPD:FORTRAN_format = "f9.1" ;
                    PL_SPD:missing_value = -9999.f ;
                    PL_SPD:special_value = -8888.f ;
            float DIR(time) ;
                    DIR:long_name = "earth relative wind direction (meteorological)" ;
                    DIR:units = "degrees true" ;
                    DIR:convers_units = 0 ;
                    DIR:height = 15.24 ;
                    DIR:instrument = "calc from F420G Electric Speed Indicator (USA)" ;
                    DIR:qcindex = 6 ;
                    DIR:FORTRAN_format = "f9.0" ;
                    DIR:missing_value = -9999.f ;
                    DIR:special_value = -8888.f ;
            float SPD(time) ;
                    SPD:long_name = "earth relative wind speed" ;
                    SPD:units = "meters/second" ;
                    SPD:convers_units = 5 ;
                    SPD:height = 15.24 ;
                    SPD:instrument = "calc from F420G Electric Speed Indicator (USA)" ;
                    SPD:qcindex = 7 ;
                    SPD:FORTRAN_format = "f9.0" ;
                    SPD:missing_value = -9999.f ;
                    SPD:special_value = -8888.f ;
            float P(time) ;
                    P:long_name = "atmospheric pressure" ;
                    P:units = "hPa" ;
                    P:convers_units = 0 ;
                    P:height = -999.9 ;
                    P:type = 2 ;
                    P:instrument = "Lufft model 8103 quartz barograph" ;
                    P:qcindex = 8 ;
                    P:FORTRAN_format = "f9.1" ;
                    P:missing_value = -9999.f ;
                    P:special_value = -8888.f ;
            float T(time) ;
                    T:long_name = "air temperature" ;
                    T:units = "Celsius" ;
                    T:convers_units = 0 ;
                    T:height = -999.9 ;
                    T:instrument = "Nurnberg thermometer" ;
                    T:qcindex = 9 ;
                    T:FORTRAN_format = "f9.1" ;
                    T:missing_value = -9999.f ;
                    T:special_value = -8888.f ;
            float TS(time) ;
                    TS:long_name = "sea temperature" ;
                    TS:units = "Celsius" ;
                    TS:convers_units = 0 ;
                    TS:height = -999.9 ;
                    TS:type = 1 ;
                    TS:instrument = "themocouple" ;
                    TS:qcindex = 10 ;
                    TS:FORTRAN_format = "f9.1" ;
                    TS:missing_value = -9999.f ;
                    TS:special_value = -8888.f ;
            float TD(time) ;
                    TD:long_name = "dewpoint temperature" ;
                    TD:units = "Celsius" ;
                    TD:convers_units = 2 ;
                    TD:height = -999.9 ;
                    TD:instrument = "NOAA/NWS ship synoptic code table" ;
                    TD:qcindex = 11 ;
                    TD:FORTRAN_format = "f9.1" ;
                    TD:missing_value = -9999.f ;
                    TD:special_value = -8888.f ;
            float TW(time) ;
                    TW:long_name = "wet bulb temperature" ;
                    TW:units = "Celsius" ;
                    TW:convers_units = 0 ;
                    TW:height = -999.9 ;
                    TW:instrument = "Nurnberg thermometer" ;
                    TW:qcindex = 12 ;
                    TW:FORTRAN_format = "f9.1" ;
                    TW:missing_value = -9999.f ;
                    TW:special_value = -8888.f ;
            short WX(time) ;
                    WX:long_name = "present weather" ;
                    WX:FORTRAN_format = "i6" ;
                    WX:missing_value = -9999s ;
                    WX:special_value = -8888s ;
            short TCA(time) ;
                    TCA:long_name = "total cloud amount" ;
                    TCA:convers_units = 1 ;
                    TCA:FORTRAN_format = "i6" ;
                    TCA:missing_value = -9999s ;
                    TCA:special_value = -8888s ;
            short LMCA(time) ;
                    LMCA:long_name = "low/middle cloud amount" ;
                    LMCA:convers_units = 1 ;
                    LMCA:FORTRAN_format = "i6" ;
                    LMCA:missing_value = -9999s ;
                    LMCA:special_value = -8888s ;
            short ZCL(time) ;
                    ZCL:long_name = "cloud base height" ;
                    ZCL:FORTRAN_format = "i6" ;
                    ZCL:missing_value = -9999s ;
                    ZCL:special_value = -8888s ;
            short LCT(time) ;
                    LCT:long_name = "low cloud type" ;
                    LCT:FORTRAN_format = "i6" ;
                    LCT:missing_value = -9999s ;
                    LCT:special_value = -8888s ;
            short MCT(time) ;
                    MCT:long_name = "middle cloud type" ;
                    MCT:FORTRAN_format = "i6" ;
                    MCT:missing_value = -9999s ;
                    MCT:special_value = -8888s ;
            short HCT(time) ;
                    HCT:long_name = "high cloud type" ;
                    HCT:FORTRAN_format = "i6" ;
                    HCT:missing_value = -9999s ;
                    HCT:special_value = -8888s ;
            char flag(time, f_string) ;
                    flag:long_name = "quality control flags" ;
                    flag:FORTRAN_format = "a12" ;
                    flag:A = "Units added." ;
                    flag:B = "Data out of range." ;
                    flag:C = "Non-sequential time." ;
                    flag:D = "Failed T>Tw>Td." ;
                    flag:E = "True wind error." ;
                    flag:F = "Velocity unrealistic." ;
                    flag:G = "Value > 4 s. d. from climo." ;
                    flag:H = "Discontinuity." ;
                    flag:I = "Interesting feature." ;
                    flag:J = "Erroneous." ;
                    flag:K = "Suspect." ;
                    flag:L = "Ocean platform over land." ;
                    flag:M = "Instrument malfunction." ;
                    flag:O = "Multiple original units." ;
                    flag:P = "Movement uncertain." ;
                    flag:Q = "Pre-flagged as suspect" ;
                    flag:R = "Interpolated data." ;
                    flag:S = "Spike." ;
                    flag:T = "Time duplicate." ;
                    flag:Z = "Good data." ;
    
    // global attributes:
                    :title = "Vidal Gormaz: WOCE PR_14_/04" ;
                    :site = "Vidal Gormaz" ;
                    :elevation = 0 ;
                    :ID = "CCVG" ;
                    :platform = "Standard instrument shelter on open bridge" ;
                    :facility = "Chilean Navy" ;
                    :fsu_version = "300" ;
                    :startdate = " 7 OCT 1993" ;
                    :enddate = "17 OCT 1993" ;
                    :EXPOCODE = "20VDPR1493_1" ;
                    :Release_Date = "14 APR 2000" ;
                    :contact_info = "COAPS, Florida State Univ, Tallahassee, FL 32306-2840, U.S.A." ;
                    :contact_email = "wocemet@coaps.fsu.edu" ;
    
    data:
    
     cruise_track_code =
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04",
      "PR_14_/04" ;
    
     woce_date = 19931007, 19931007, 19931007, 19931008, 19931008, 19931008, 
        19931008, 19931009, 19931009, 19931009, 19931009, 19931010, 19931010, 
        19931010, 19931010, 19931011, 19931011, 19931011, 19931011, 19931012, 
        19931012, 19931012, 19931012, 19931013, 19931013, 19931013, 19931013, 
        19931014, 19931014, 19931014, 19931014, 19931015, 19931015, 19931015, 
        19931015, 19931016, 19931016, 19931016, 19931016, 19931017, 19931017, 
        19931017, 19931017 ;
    
     woce_time_of_day = 60000, 120000, 180000, 0, 60000, 120000, 180000, 0, 
        60000, 120000, 180000, 0, 60000, 120000, 180000, 0, 60000, 120000, 
        180000, 0, 60000, 120000, 180000, 0, 60000, 120000, 180000, 0, 60000, 
        120000, 180000, 0, 60000, 120000, 180000, 0, 60000, 120000, 180000, 0, 
        60000, 120000, 180000 ;
    
     time = 7240680, 7241040, 7241400, 7241760, 7242120, 7242480, 7242840, 
        7243200, 7243560, 7243920, 7244280, 7244640, 7245000, 7245360, 7245720, 
        7246080, 7246440, 7246800, 7247160, 7247520, 7247880, 7248240, 7248600, 
        7248960, 7249320, 7249680, 7250040, 7250400, 7250760, 7251120, 7251480, 
        7251840, 7252200, 7252560, 7252920, 7253280, 7253640, 7254000, 7254360, 
        7254720, 7255080, 7255440, 7255800 ;
    
     latitude = -37.9, -38, -37.9, -37.9, -38, -38, -38, -38, -38, -37.9, -38, 
        -38.1, -40, -40.6, -41.7, -42.5, -43.3, -44.1, -44.8, -45.5, -46.2, 
        -46.9, -47.5, -48, -48, -47.9, -47.8, -47.7, -48, -47.9, -48, -47.9, 
        -46.9, -45.8, -44.9, -43.9, -42.9, -41.6, -40.9, -39.9, -38.7, -37.6, 
        -36.7 ;
    
     longitude = -74.1, -74.7, -74.8, -75.6, -76.6, -77.5, -78.4, -79.6, -80.6, 
        -81.6, -82.2, -82.2, -82.2, -82.2, -82.2, -82.2, -82.2, -82.2, -82.3, 
        -82.3, -82.2, -82.2, -82.2, -81.9, -80.7, -79.5, -79.3, -79.3, -79.2, 
        -78.1, -77, -76.1, -76.2, -76, -75.9, -75.7, -75.4, -75, -74.9, -74.5, 
        -74.2, -73.9, -73.3 ;
    
     PL_CRS = 229, 270, 269, 238, 270, 269, 260, 271, 269, 270, 270, 180, 180, 
        180, 185, 182, 180, 180, 190, 190, 210, 235, 145, 95, 35, 60, 340, 335, 
        330, 90, 0, 345, 8, 3, 12, 15, 12, 20, 12, 16, 12, 15, 50 ;
    
     PL_SPD = 0.8, 5.1, 5.7, 1, 5.7, 5.7, 5.7, 5.7, 5.7, 5.7, 0.5, 5.7, 5.7, 5.7, 
        5.7, 6.2, 6.2, 5.1, 5.1, 4.6, 5.1, 4.1, 4.6, 6.2, 6.2, 5, 1, 1, 0, 5.1, 
        1, 3.8, 5.1, 5.1, 5.1, 5.7, 5.7, 5.9, 6.2, 6.2, 5.7, 5.7, 5.7 ;
    
     DIR = 180, 190, 190, 190, 190, 190, 190, 180, 190, 270, 210, 190, 290, 320, 
        300, 330, 320, 270, 260, 310, 310, 320, 310, 300, 360, 350, 350, 300, 
        330, 150, 350, 320, 240, 160, 120, 350, 180, 240, 250, 280, 330, 0, 340 ;
    
     SPD = 7, 10, 7, 10, 8, 7, 5, 6, 3, 5, 2, 3, 4, 7, 8, 12, 12, 8, 12, 9, 9, 
        11, 10, 10, 11, 12, 20, 15, 6, 11, 14, 18, 7, 7, 3, 6, 7, 9, 7, 9, 10, 9, 9 ;
    
     P = 1015.8, 1018, 1019.8, 1021, 1020, 1022.5, 1022, 1022, 1022.5, 1023, 
        1023.5, 1023, 1024, 1022, 1020.5, 1016.5, 1014.2, 1014.6, 1015, 1016, 
        1015, 1011.5, 1007, 1002, 999, 995, 992.5, 994.5, 998, 993, 989, 995, 
        998.5, 996.2, 992.8, 998.5, 1000, 1006.5, 1011, 1012, 1013, 1014.2, 1016 ;
    
     T = 12.5, 13, 14, 13.5, 12, 14, 16.5, 12.5, 13, 13, 14.5, 16.5, 12, 12, 14, 
        12, 10.5, 10, 11.5, 9, 9, 9, 9, 9, 9, 10.5, 10.5, 9.5, 8.5, 6, 11, 7.5, 
        9, 8.4, 9.5, 11, 10.5, 10.5, 11.5, 12, 11.5, 10, 13.5 ;
    
     TS = 13.3, 13.3, 13.3, 13.3, 13.3, 14, 12.8, 13.3, 13.4, 13.9, 14, 14, 13.3, 
        12.2, 11.7, 11.7, 10.6, 10.6, 10.6, 9, 9, 8.9, 9, 8.9, 8.9, 9, 8.9, 8.9, 
        7.8, 7.6, 9.4, 10.6, 9, 10.6, 10, 9.8, 11.7, 10, 12.8, 12.8, 12.8, 12.8, 
        12.2 ;
    
     TD = 10, 11, 12, 9, 8, 9, 9, 7, 7, 10, 10, 10, 10, 9, 13, 10, 10, 8, 9, 8, 
        7, 8, 5, 5, 8, 9, 9, 6, 7, 0, 9, 7, 5, 1, 4, 9, 7, 9, 10, 7, 11, 2, 12 ;
    
     TW = 11.5, 12, 13, 11, 10, 11, 12.5, 10, 10, 11.5, 12, 13, 11, 10.5, 13.5, 
        11, 10, 9, 9.5, 7.5, 8, 7.5, 7, 7, 8.5, 10, 10, 8, 7.5, 6, 11, 7, 7, 6.5, 
        7, 10, 9, 10, 11, 9.5, 11, 9, 13 ;
    
     WX = 3, 3, 2, 2, 2, 3, 2, 2, 3, 3, 3, 1, 1, 0, 3, 2, 80, 2, 3, 3, 1, 3, 3, 
        3, 3, 14, 14, -9999, 25, 25, 25, 1, 1, 3, 3, 3, 3, 25, 25, 3, 23, 3, 1 ;
    
     TCA = 1, 8, 8, 8, 4, 7, 8, 5, 3, 8, 6, 1, 1, 0, 5, 7, 6, 5, 8, 7, 0, 9, 8, 
        8, 9, 8, 8, 8, 8, 8, 8, 7, 2, 8, 7, 8, 8, 8, 5, 5, 5, 7, 7 ;
    
     LMCA = 0, 8, 8, 8, 4, 7, 8, 5, 3, 8, 6, 1, 1, 0, 5, 7, 6, 5, 8, 7, 0, 8, 8, 
        8, 8, 8, 8, 8, 8, 8, 8, 7, 2, 8, 7, 8, 8, 8, 5, 5, 5, 7, 7 ;
    
     ZCL = 9, 1, 4, 5, 5, 5, 5, 5, 4, 4, 5, 4, 4, 9, 5, 6, 3, 4, 2, 2, 10, 2, 5, 
        4, 4, 4, 4, 4, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 5, 4, 4, 5 ;
    
     LCT = 0, 4, 3, 3, 1, 2, 1, 3, 4, 4, 2, 2, 2, 0, 3, 4, 4, 8, 1, 1, 0, 7, 4, 
        8, 10, 7, 8, 8, 8, 8, 8, 8, 6, 7, 4, 4, 4, 6, 6, 4, 4, 1, 1 ;
    
     MCT = 10, 10, 10, 10, 10, 0, 10, 10, 0, 8, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 
        0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 
        10, 10, 10, 3 ;
    
     HCT = 10, 10, 10, 10, 10, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 6, 10, 10, 0, 0, 
        0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 
        10, 10, 10, 10, 2 ;
    
     flag =
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZKZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZKZDD",
      "ZZZZZZZZKZZZ",
      "ZZZZZZZZKZDD",
      "ZZZZZZZZKZZZ",
      "ZZZZZZZZKZZZ",
      "ZZZZZZZZKZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZIZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZKZZK",
      "ZZZZZZZIKZZK",
      "ZZZZZZIZKZZK",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZZZZZZZ",
      "ZZZZZZKZZZSZ",
      "ZZZZZZZZZZZZ" ;
    }
    



    Appendix 3

    The following links are subroutines that can be used to convert the time values from the WOCE netCDF files to four-digit year, month, day, hour, and minute values (Invtime) and from four-digit year, month, day, hour, and minute values to the time values on the WOCE netCDF files (Convtime). The routine processes individual time values (time stamp), but could be easily modified to handle an entire time array. They are available in FORTRAN, IDL, and C.

    FORTRAN
    invtime.f
    convtime.f

    IDL
    invtime.pro
    convtime.pro

    C
    invtime.c
    convtime.c

    The Invtime codes can be acquired electronically from our ftp site via the following commands:

    ftp wocemet.fsu.edu
    login anonymous
    cd pub/src
    get (invtime.f, invtime.pro, invtime.c)

    Any problems that occur while using the code can be addressed to wocemet@coaps.fsu.edu.