From shiotani Wed May 26 13:58:59 1993
Subject: Re: NetCDF
To: riko@ccsr.u-tokyo.ac.jp (Yamane Riko)
Cc: dennou_users@gaia.kula.kyoto-u.ac.jp (dennou_users)
X-Mailer: ELM [version 2.3 PL11]

$B1vC+$G$9(B. 

NetCDF $B$K$D$$$F(B"$B2-(B $BM};R!wElBg5$8u%;%s%?!<(B"$B$5$s$+$iLd$$9g$o$;$,$"$j$^$7(B
$B$?(B. $BJV;v$OEEG>$NJ}$K$b(B CC $B$7$F$bNI$$$H$N$3$H$G$7$?$N$G(B, $B$=$N$D$b$j$G0J(B
$B2<$r=q$+$;$F$$$?$@$-$^$9(B. 

$B0J2<$NOC$7$O;d$,8=:_<j85$K;}$C$F$$$k%^%K%e%"%k(B "NetCDF User's Guide:
An Interface for Data Access, Version 2.0, October 1991" $B$K$b$H$E$$$F(B
$B$$$^$9(B. $B$5$C$-(B, $B$A$g$C$H(B ftp $B%5%$%H$r$N$>$$$F$_$?$i(B V2.3.1 $B$J$k(B tar $B%U%!(B
$B%$%k$,CV$+$l$F$$$^$7$?(B. $B%^%K%e%"%k$N>O9=@.Ey$KJQ99$,$"$k$N$+$bCN$l$^$;(B
$B$s$,(B, tar $B$r2rE`$7$F%^%K%e%"%k$r:F=PNO$9$k$N$b5$>h$j$,$7$J$+$C$?$N$G(B, 
$B$H$j$"$($:<j85$N%^%K%e%"%k$K$7$?$,$C$FOC$7$r?J$a$5$;$F$b$i$$$^$9(B. 

$B%F%/%K%+%k$JOC$7$O;d<+?H>\$7$/$J$$$N$G(B, $B$I$A$i$+$H$$$&$H(B1$B%f!<%6!<$H$7(B
$B$F<B:]$K;H$C$F$_$?46A[(B, $B$H$$$C$?%N%j$NOC$7$K$J$k$+$H;W$$$^$9$,(B, $B0-$7$+(B
$B$i$:(B. $B5;=QE*$JOC$7$d(B, $BNr;KE*$J$$$-$5$D(B, $BB>$K$b$"$k$3$N<j$N%=%U%H$H$NHf(B
$B3SEy$OA}ED$5$s$"$?$j$NJ}$,$*>\$7$$$N$G$O$J$$$+$H;W$$$^$9(B($B>!<j$K?6$C$F(B
$B$4$a$s$J$5$$(B). 

1. $B35MW(B

$B$$$m$s$J7W;;5!$r;H$C$F;E;v$r$7$F$$$k$H(B, $B7W;;5!$4$H$K(B floating $B$NFbItI=(B
$B8=$,0c$C$F$$$?$j$7$F(B, $B%G!<%?%U%!%$%k$NFI$_=q$-$K6lO+$9$k$3$H$,$"$j$^$9(B.
NetCDF $B$O%^%7%s$K0MB8$7$J$$7A$G%G!<%?$rFI$_=q$-$9$k$?$a$NF;6q$G$9(B.
NetCDF $B$N%i%$%V%i%j$,@5$7$/0\?"$5$l$F$$$l$P(B, $B%G!<%?%U%!%$%k$O$?$H$($P(B 
ftp $B$GE>Aw$9$k$@$1$G(B, $B0[$J$k%^%7%s$G$bF1$8%=!<%9%3!<%I$r;H$C$FFI$_=q$-(B
$B$G$-$^$9(B.  $B%$%s%?!<%U%'%$%9$H$7$F$O(B Fortran $B$H(B C $B$,MQ0U$5$l$F$$$^$9(B.

$B$^$?(B, NetCFD $B%U%!%$%k$K$O(B, $B%G!<%?$NB>$K$=$N%G!<%?$NB0@-(B($B%G!<%?$N<oN`$d(B
$B$=$NC10L(B, $B%0%j%C%I>pJs$J$I(B)$B$r5-=R$G$-$k$N$G(B, $BI,MW$J>pJs$r@5$7$/5-=R$7(B
$B$F$*$1$P(B, $B$=$N%U%!%$%kFb$G407k$7$F>pJs$r4IM}$G$-$^$9(B. $B$D$^$j(B, $B$3$l$^$G(B
$B$G$9$H%U%!%$%k$K$O%I%-%e%a%s%H$,$D$-$b$N$G$7$?$,(B, $B$A$c$s$H>pJs$N5-=R$5(B
$B$l$?(B NetCDF $B%U%!%$%k$G$9$H(B, $B%U%!%$%k$5$($b$i$C$F$/$l$P(B($B%"%/%;%9$G$-$l(B
$B$P(B), $BFbIt$K5-=R$5$l$?>pJs$K$7$?$,$C$FFI$_=q$-$N%W%m%0%i%`$r=q$/$3$H$,(B
$B$G$-$^$9(B.

$B$"$H(B, $BJXMx$@$H;W$&$N$O(B NetCDF $B$G$OB?<!85$N%G!<%?$r%O%s%I%j%s%0$G$-$^$9(B
$B$,(B, $BI,MW$JCGLL$r4JC1$KFI$_=P$;$k(B($B$"$k$$$O=q$-=P$;$k(B)$BE@$G$9(B. $B%G!<%?NN0h(B
$B$KBP$7$F$P$+$G$+$$G[Ns$r@Z$C$F(B, $B$=$NG[Ns$rA`:n$9$k$h$&$K$7$F%G!<%?$,<h(B
$B$j07$($k$H$$$&$N$O2f!9$N$h$&$J(B, $B6u4V!&;~4V$NB?<!85%G!<%?$r07$&$b$N$K$H$C(B
$B$F(B, $B8+DL$7$NNI$$%W%m%0%i%_%s%0$,$G$-Hs>o$K$"$j$,$?$$$b$N$G$9(B. 

$B;d<+?H(B NCAR $B$G(B UARS $B$H$$$&1R@1%G!<%?$N2r@O$r$d$C$F$$$^$9$,(B, $BB,4o$K$h$C(B
$B$F(B, $B$^$?$=$l$>$l$NJ*M}NL$K$h$C$F(B, $B%G!<%?$N$"$k0^EYHO0O$d9bEYHO0O$,0[$J$C(B
$B$F$$$^$9$,(B, $B$=$&$$$C$?>pJs$b(B NetCDF $B%U%!%$%k$K=q$-9~$s$G$*$/$3$H$G(B, $B%"(B
$B%/%;%9$9$k%U%!%$%kKh$K%W%m%0%i%`$r=q$-49$($k$3$H$J$/;E;v$,$G$-$F$J$+$J(B
$B$+JXMx$G$"$k$H46$8$F$$$^$9(B. 

2. $BF~<jJ}K!(B

anonymous ftp $B$G(B unidata.ucar.edu (128.117.140.3) $B$+$iF~<j$G$-$^$9(B. 
pub/netcdf.tar.Z $B$,$=$l$G$9(B. 1MB $BDx$NBg$-$5$,$"$j$^$9$N$G(B, $B$_$s$J$GB@(B
$BJ?MN$r2#CG$7$F<h$j$K$$$/$N$b9M$($b$N$G$7$g$&$+$i(B, $B:G?7HG$rEEG>%5!<%P!<(B
$B$NJ}$K;}$C$F$-$F$*$-$^$7$?(B. $BE,@Z$JCV$->l=j$,J,$+$i$J$$$N$G:#$O(B 
~shiotani/tar $B$N2<$KCV$$$F$"$j$^$9$,(B, $B$9$0$K(B ftp $BNN0h$N$7$+$k$Y$->l=j(B
$B$KCV$+$l$k$H;W$$$^$9(B. $B0FFb$r$*BT$A2<$5$$(B.

3. $B%i%$%V%i%j$N9=C[(B

$B<j;}$A$N%^%K%e%"%k$G$O(B, Sun SPARCstation (SunOS), DEC VAX (VMS,Ultrix), 
DECstation (Ultrix), IBM RISC System 6000 (AIX), CRAY YMP (UNICOS),
IBM PS/2 (MSDOS,OS/2) $B$GF0:n$r3NG'$7$F$$$k$H$"$j$^$9(B. 

$B0JA0;n$7$K(B make $B$7$F$_$?$N$G$9$,(B, Sun $B$G$OLdBj$J$+$C$?$1$I(B, IBM $B$N%^%7(B
$B%s$G$O=q$$$F$"$kDL$j$K$d$C$F$b(B(README $B$NFI2rITB-$+$bCN$l$^$;$s$,(B)$B$&$^(B
$B$/$$$-$^$;$s$G$7$?(B.

$B$3$3$N$H$3$m$,LdBj$G(B, NetCDF $B$N%i%$%V%i%j$,@5$7$/0\?"$G$-$l$P(B, $B3N$+$K(B
$B%M%C%H%o!<%/F)2a$J?4CO$h$$4D6-$H$$$($k$N$G$9$,(B, $B$+$s$8$s$N%i%$%V%i%j$N(B
$B0\?"$K:$Fq$rH<$&$h$&$J$b$N$@$H2?$K$b$J$i$J$$(B. $B$3$NJU$O=y!9$K2~A1$5$l$F(B
$B$$$/$G$7$g$&$,(B, $B0JA0A}ED$5$s$,;XE&$5$l$F$$$?$h$&$K(B, $B%U%!%$%k$N;EMM$,%f!<(B
$B%6!<%l%Y%k$@$HA4$/J,$+$i$J$$$H$$$&$H$3$m$,(B NetCDF $B$NLdBjE@$N0l$D$G$7$g(B
$B$&(B. 

4. NetCDF $B%U%!%$%k(B

$B%^%K%e%"%k$N(B2$B>O$N;O$a$K$"$kNc$r0zMQ$7$^$9(B. $B$3$l$O(B CDL (network Common
Data form Language) $B$G=q$+$l$?Nc$G$9(B. $B$3$l$r(B ncgen $B$H$$$&%3%^%s%I$KDL(B
$B$9$HBP1~$9$k(B NetCDF $B%U%!%$%k$,$G$-$^$9(B. $B$^$?$=$N(B NetCDF $B%U%!%$%k$r(B 
ncdump $B$H$$$&%3%^%s%I$G%@%s%W$9$k$H(B CDL $B$K$7$?$,$C$?$[$\2<5-$NNc$HEy2A(B
$B$J%"%9%-!<%U%!%$%k$,@8@.$5$l$^$9(B. 

netcdf example_1 {  // example of CDL notation for a netCDF file

dimensions:          // dimension names and sizes are declared first
        lat = 5, lon = 10, level = 4, time = unlimited;

variables:           // variable types, names, shapes, attributes
        float   temp(time,level,lat,lon);
                temp:long_name     = "temperature";
                temp:units         = "celsius";
        float   rh(time,lat,lon);
                rh:long_name = "relative humidity";
                rh:valid_range = 0.0, 1.0;      // min and max
        int     lat(lat), lon(lon), level(level);
                lat:units       = "degrees_north";      
                lon:units       = "degrees_east";
                level:units     = "millibars";
        short   time(time);
                time:units      = "hours";
        // global attributes
                :source = "National Weather Service";
                :base_time = "1990 11 25 12:00";

data:                // optional data assignments
        level   = 1000, 850, 700, 500;
        lat     = 20, 30, 40, 50, 60;
        lon     = -160,-140,-118,-96,-84,-52,-45,-35,-25,-15;
        time    = 12;
        rh      =.5,.2,.4,.2,.3,.2,.4,.5,.6,.7,
                 .1,.3,.1,.1,.1,.1,.5,.7,.8,.8,
                 .1,.2,.2,.2,.2,.5,.7,.8,.9,.9,
                 .1,.2,.3,.3,.3,.3,.7,.8,.9,.9,
                  0,.1,.2,.4,.4,.4,.4,.7,.9,.9;
}

$B$3$NNc$+$iJ,$+$k$h$&$K(B NetCDF $B%U%!%$%k$O(B dimensions, variables,
attributes $B$H$$$C$?9=@.MWAG$+$i$J$j$^$9(B. dimensions, variables $B$"$?$j$O(B
$B8+$?$iJ,$+$j$^$9$h$M(B. attributes $B$ONc$($P(B, temp:unit $B$H$+(B :source $B$J$I(B
$B$,$=$&$G$9(B. 

$B>.$5$J%G!<%?%U%!%$%k$G$9$H(B, $B$3$&$d$C$F(B CDL $B$G=q$$$F$*$$$F(B ncgen $B$rDL$7(B
$B$F(B NetCDF $B%U%!%$%k$r:n$k$3$H$b$G$-$^$9(B. $B$b$A$m$s$3$l$i$NA`:n$r$9$Y$F(B 
Fortran $B$J$j(B C $B$N%W%m%0%i%`$r=q$$$F$*$3$J$&$3$H$b$G$-$^$9(B. $B$?$@(B, $B>pJs(B
$B$,B?$/$J$k$H%W%m%0%i%`$r=q$$$F(B NetCDF $B%U%!%$%k$r@8@.$9$k$N$O7k9=$a$s$I(B
$B$/$5$$$N$G(B, $B$o$?$7$O$b$C$Q$i(B dimensions, variables, attributes $B$J$I$r(B 
CDL $B$GDj5A$7$F%G!<%?$,6u$N(B NetCDF $B%U%!%$%k$r$$$C$?$s:n@.$7(B, $B%G!<%?ItJ,(B
$B$O%W%m%0%i%`$rMQ$$$F=q$-=P$9$h$&$K$7$F$$$^$9(B. 

5. NetCDF $B%i%$%V%i%j(B

$B%^%K%e%"%k$G$O(B4$B>O0J2<(B, NetCDF $B%i%$%V%i%j$K4X$9$k2r@b$,1d!9(B8$B>O$^$GB3$-(B
$B$^$9(B. $B:G=i$O%>%C$H$7$^$9$,(B, Fortran $B$H(B C $B$N%k!<%A%s$,%@%V$C$F@bL@$5$l(B
$B$F$$$k$N$G(B, $B<B<AE*$K$O$=$l$[$I$NNL$G$O$"$j$^$;$s(B. $B$d$O$j$6$C$HL\$rDL$5(B
$B$l$k$3$H$r4+$a$^$9(B. 

$B3F%k!<%A%s$N%3%s%;%W%H$O$O$C$-$j$7$F$$$k$N$G(B, $B;H$$J}$H$$$&E@$G$O$=$l$[(B
$B$I:$Fq$r46$8$^$;$s$G$7$?(B. $B$7$+$7(B, $BMQ0U$5$l$F$$$k%k!<%A%s$,Hs>o$K2<0L$N(B
$B4pK\%k!<%A%s$@$1$G(B, $B<B:]$K;H$&J,$K$O@5D>$$$C$F;H$$0W$$$H$O$$$($J$$$H;W(B
$B$$$^$9(B. $BNc$($F$$$($P(B, $BEEG>(B SGKS $B$N(B szpack $B%l%Y%k$N%k!<%A%s$,Ds6!$5$l$F(B
$B$$$k$@$1$G(B, sgpack $B%l%Y%k$,$J$$$H$$$C$?46$8$G$9(B. 

$B$?$H$($P(B, $B>e5-$NNc$G(B temp:units $B$NCf?H$,CN$j$?$$$H;W$&$H(B, $B$^$:(B ncvid 
$B$H$$$&%k!<%A%s$G(B temp $B$H$$$&(B variable $B$N(B variable ID $B$rCN$C$?>e$G(B, $B$=(B
$B$N(B ID $B$r$b$H$K(B ncagtc $B$H$$$&%k!<%A%s$GJ8;z7?(B attribute $B$N(B units $B$NCf?H(B
$B$r?R$M$k$H$$$&<j=g$H$J$j$^$9(B. $B%Q%U%)!<%^%s%9$rDI5a$9$k$H$$$&0UL#$G$O(B,
$B<!$K(B temp:long_name $B$,M_$7$/$J$C$?;~$K0JA0$K5a$a$?(B variable ID $B$r;H$((B
$B$P$$$$$N$G8zN($ONI$$$N$G$9$,(B, 1$B%f!<%6!<$H$7$F$O(B variable ID $B$J$I$K$O6=(B
$BL#$,$J$/$F(B, $B%Q%U%)!<%^%s%9$,>/$7$0$i$$0-$/$F$b$$$$$+$i(B temp:unit $B$NCf(B
$B?H$O2?$+$,CN$j$?$$$o$1$G$9(B.

$B$H$$$&$o$1$G(B, $B;d<+?H$O(B NetCDF $B$N%k!<%A%s$K$+$V$;$k7A$G(B, $B$b$&0lCJ>e0L$N(B
$B%i%$%V%i%j$r=q$$$F;H$C$F$$$^$9(B. $B$3$l$i$O$b$A$m$s(B NetCDF $B$N%*%j%8%J%k$N(B
$B%i%$%V%i%j$H6&B82DG=$G$9(B. $B$3$l$i$N%k!<%A%s$b(B tar $B%U%!%$%k$r$D$/$C$FEE(B
$BG>%5!<%P!<$KCV$$$F$"$j$^$9(B. (NetCDF $BK\BN$HF1$8$/(B, $B0FFb$r$*BT$A2<$5$$(B)
dcl-4.x $B$r;H$C$F$$$^$9$N$G;H$&;~$O$=$A$i$b%j%s%/$7$F2<$5$$(B. $B$J$*(B, $B%=!<(B
$B%9%3!<%I$NCf$G$O(B Fortran $BHsI8=`$N(B include $BJ8(B, $B$*$h$S>.J8;z$K$h$k%3!<%G%#(B
$B%s%0$r9T$J$C$F$$$^$9(B. (include $BJ8$O(B NetCDF $B%i%$%V%i%j$rMQ$$$k>e$GI,?\(B
$B$H$J$C$F$$$^$9(B)

$B<B:]$K;H$*$&$H$$$&?M0J30$O6=L#$,$J$$$G$7$g$&$,(B, $B%^%K%e%"%k$,$J$$$N$G0J(B
$B2<$K%k!<%A%s$N4JC1$J@bL@$r$7$F$*$-$^$9(B. $B>\$7$/$O%=!<%9$H(B NetCDF $B$N%^%K%e(B
$B%"%k$r8+$F2<$5$$(B. $B$^$?$3$l$i$r;H$C$?%G%b%W%m%0%i%`$r(B ncdtest.tar.Z $B$H(B
$B$7$F$*$$$F$*$-$^$9(B. $B$3$N%Q%C%1!<%8$r=q$$$F$$$?;~$N%G%b%W%m%0%i%`72$G$7(B
$B$F(B, $B$@$$$?$$;H$$J}$,J,$+$k$H;W$$$^$9(B. 

  a. $B%U%!%$%k$N<h$j07$$(B

  nxopen(ncdfid,cfname,cfmode)               : NetCDF $B%U%!%$%k$N(B open
  nxdefm(ncdfid,ldmode)                      : define mode $B$N@_Dj(B
  nxclos(ncdfid)                             : NetCDF $B%U%!%$%k$N(B close
  nxfilm(ncdfid,lfmode)                      : fill mode $B$N@_Dj(B

  b. dimensions

  nxddef(ncdfid,cdname,ndsize)               : dimension $B$NDj5A(B
  nxdqsz(ncdfid,cdname,ndsize)               : dimension $B$N;2>H(B

  c. variables

  nxvdef(ncdfid,cvstrc,cvtype)               : variable $B$NDj5A(B
  nxvp1x(ncdfid,cvname,mindex,valuex)        : 1$BJQ?t$N=q$-=P$7(B
  nxvp1c(ncdfid,cvname,mindex,cvalue)        : 1$BJ8;z$N=q$-=P$7(B
  nxvpnx(ncdfid,cvname,istart,icount,values) : $BB?JQ?t$N=q$-=P$7(B
  nxvpnc(ncdfid,cvname,istart,icount,cvalue) : $BB?J8;z$N=q$-=P$7(B
  nxvpax(ncdfid,cvname,values)               : $BJQ?t$^$k$4$H$N=q$-=P$7(B
  nxvpac(ncdfid,cvname,cvalue)               : $BJ8;z$^$k$4$H$N=q$-=P$7(B
  nxvg1x(ncdfid,cvname,mindex,valuex)        : 1$BJQ?t$NFI$_=P$7(B
  nxvg1c(ncdfid,cvname,mindex,cvalue)        : 1$BJ8;z$NFI$_=P$7(B
  nxvgnx(ncdfid,cvname,istart,icount,values) : $BB?JQ?t$NFI$_=P$7(B
  nxvgnc(ncdfid,cvname,istart,icount,cvalue) : $BB?J8;z$NFI$_=P$7(B
  nxvgax(ncdfid,cvname,values)               : $BJQ?t$^$k$4$H$NFI$_=P$7(B
  nxvgac(ncdfid,cvname,cvalue)               : $BJ8;z$^$k$4$H$NFI$_=P$7(B

  d. attributes

  nxaptx(ncdfid,caname,catype,naxlen,values) : $BB0@-$N=q$-=P$7(B
  nxaptc(ncdfid,caname,catype,naclen,cvalue) : $BB0@-(B($BJ8;z(B)$B$N=q$-=P$7(B
  nxagtx(ncdfid,caname,values)               : $BB0@-$NFI$_=P$7(B
  nxagtc(ncdfid,caname,cvalue)               : $BB0@-(B($BJ8;z(B)$B$NFI$_=P$7(B

$B$A$g$C$H%k!<%A%s$N?t$,B?$$$h$&$G$9$,(B, $BJ8;zJQ?t$H$=$l0J30$H$$$&$N$r6hJL(B
$B$9$kI,MW$,$"$k$?$a$K(B -----x $B$H(B -----c $B$N(B2$B7ONs$,$"$j$^$9(B. 

$BG[Ns$N<h$j07$$$K$D$$$F$O@bL@$,$$$j$^$9$,(B, $B=q$-=P$9$HBgJQ$J$N$G(B 7.5,
7.7 $B@a$"$?$j$rFI$s$G2<$5$$(B. $B$"$k$$$O(B ncdtest.tar.Z $B$K$"$k6qBNNc$r8+$F(B
$B$b$i$C$?J}$,$$$$$+$bCN$l$^$;$s(B. 

$B$A$g$C$H%7%j%-%l$H$s$\$N2r@b$H$J$C$F$7$^$$$^$7$?$,(B, $B$H$j$"$($:$3$N$/$i(B
$B$$$K$7$F$*$-$^$9(B. 

$B1vC+(B
-- 
Masato Shiotani (NCAR, PO Box 3000, Boulder CO 80307 USA)
E-Mail:    shiotani@ncar.ucar.edu  or  shiotani@isis.cgd.ucar.edu
Telephone: 303-497-1417           Fax: 303-497-1492
