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*16
Record 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:
SAVE
d 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) END
Record pair access through GFOPEN/GFREAD/GFWRIT/GFCLSE
Array operation
Wrapper to DCL array operation subroutines
gtool.out
Conflicting 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
, units
scale_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:
HistorySetTime
HistoryPut(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 CHAR
Awaiting 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