Eizi TOYODA*1, Shin-Ichi Takehiro*2, Masaki Ishiwatari*3, and Yoshi-Yuki Hayashi*4
 
FORTRAN sequential unformatted file
File is a list of record pairs
CHARACTER*16Record pairs can be written in any order
Three dimensions of data is not necessarily spatial (e.g. longitude, latitude, elevation)
Axes specified by external file reference
Axis file
Control visual appearance of data/axis
| NAME | for data | for axis | 
|---|---|---|
| DMIN | lowest contour level | preferred plot range (lower) | 
| DMAX | highest contour level | preferred plot range (upper) | 
| DIVS | contour interval (thin) | tick mark interval (small) | 
| DIVL | contour interval (bold) | tick mark interval (large) | 
| STYP | (not used) | log plot / upside-down flags | 
 
module structure of GTOOL3 library.
Internal data:
SAVEd variable, not in COMMON blockquery by name
SUBROUTINE GTPSET(HPARA, IPARA)
  CHARACTER HPARA*(*)
  INTEGER   IPARA, INDX
  INTEGER   INTRNL({number of parameters})
  SAVE      INTRNL
  INDX = {parameter index associated to HPARA}
  INTRNL(INDX) = IPARA
ENTRY GTPGET(HPARA, IPARA)
  INDX = {parameter index associated to HPARA}
  IPARA = INTRNL(INDX)
ENDRecord pair access through GFOPEN/GFREAD/GFWRIT/GFCLSE
Array operation
Wrapper to DCL array operation subroutines
gtool.outConflicting requirement
Layered interface design solution
Slogan: "data file that can be visualized with a double-click"
Axis file management
Data structure extensibility
Software construction
Fortran 90
NetCDF
 
overview of gtool4 software products
Mainly usage of NetCDF attribute
NetCDF attribute
Data Representation Attributes
mainly based on NCAR CSM conventions
Traditional Style
Structured Style
Structure variable and "has-a" relation between variables
Enhance the idea "the data file is the image file"
 
schematic illustration of structure variable
Visible components (contours, vectors, line, text)
 
visualization class in gtool4 NetCDF Conventions.
Considered:
Import problem
Export problem
Attribute Namespace
gt_" to avoid coincidenceAttribute Classification
Conventions, gt_version, history,
    long_name, title, unitsscale_factor, valid_max, valid_min| Attr Creation _ Use | Advised | Recommended | Mandatory | 
| Mandatory | Mandatory | ||
| Recommended | Recommended | Non-Negligible | |
| Advised | Advisory | Compatibility | |
| Prohibited | Prohibited | 
Layered design
 
module structure of gtool4 library.
First example: simulation model model output
gtool_history:
    specialized to history (time series) output of n-dimensional arraygtdata_generic: slice-scan APIgt_map: subarray or transposed viewan_generic:
    text-numeric conversion for attributes,
    implicit dimension create, and
    implicit file openSimpler, more intuitive, thus more specialized than GTOOL3
interface suitable to typical access pattern:
HistorySetTimeHistoryPut(varname=) callGraphical object
 
schematic illustration of structure variable
GUI Frontend written in Visual Basic
 
 
Screenshot of gtool4 GUI Frontend (left) and gtview contoring/shading result (right)
static polymorphism generic subroutine
Chained module reference makes some compiler impractically slow
Solution: splitting them into external procedure
 
Data model difference between C/Fortran character string
Fortran CHARACTER
C char *
ISO/IEC 1539-2:1994 specifies the ISO_VARYING_STRING module
But ...
//, LEN or CHARAwaiting work
http://ferret.wrc.noaa.gov/noaa_coop/coop_cdf_profile.html
http://www.cgd.ucar.edu/cms/eaton/netcdf/NCAR-CSM.html
http://www.gfd-dennou.org/arch/dcl
http://www-pcmdi.llnl.gov/drach/GDT_convention.html.
http://www.unidata.ucar.edu/packages/netcdf/index.html
http://www.gfd-dennou.org/arch/agcm5,
GFD Dennou Club.
http://www.gfd-dennou.org/arch/gtool4/,
GFD Dennou Club.
http://www.gfd-dennou.org/arch/gtool4/, GFD Dennou Club.
http://www.mri-jma.go.jp/Dep/fo/mrinpd/coderule.html
*1Numerical Prediction Division, Japan Meteorological Agency
*2Faculty of Sciences, Kyushu University
*3Graduate School of Environment Earth Sciences,
Hokkaido University
*4Graduate School of Science, Hokkaido University