Dear Sirs;
I mistakenly sent the following message to netcdfgroup-adm@xxxxxxxxxxxxxxxx.
I hereby send it to the correct netcdf mailing
list address netcdfgroup@xxxxxxxxxxxxxxxx.
I have just completed the installation of netCDF V. 2.0.2 on my HP9000/720
work station running HP-UX 8.0.5 and got all the test to run successfully.
I copied the discussion in netcdfgroup from unidata.ucar.edu by ftp before
I started and had a look at messages that referred to HP-UX.
It appears that some people have had problems with installing netCDF on HP-UX.
I therefore post my installation points in case they might be useful to
others trying to use netCDF on HP-UX.
I include a shell archive at the end of this message.
It contains the hpux.m4 and hpux0.inc files required for the netCDF fortran
interface, a patch file with the changes that I found necessary to make
netCDF run on the HP9000/720 and two LOG files with the output from the
compilation, testing and installation of netCDF.
The points below should be used with the netCDF distribution notes;
not in place of them.
netCDF seems to run at excellent speed on the HP9000/720.
I have observed a throughput of more that 200K/sec for writing
and more than 300K/sec for reading, which must be considered good.
INSTALLATION COMMENTS:
I made most of the changes suggested by kemp@xxxxxxxxxxxxxxxxxxxxx
in a message dated 1990.11.09.
I ran into several problems that required considerable debugging.
1) The method used for defining XDR_D_INFINITY does not alwasy work on HP-UX.
The reason is that xdr_d_infinity[2] in src/array.c is defined as a
long, so that it can conveniently be filled with a bit pattern.
It is later cast to double in the macro XDR_D_INFINITY which is
defined in netcdf.h. This causes problems on HP9000/720, because a valid
address of a variable must start at a memory location, which is a multiple
of the size of that variable (8 in the case of a double, but 4 in the
case of a long). There is a 50/50 chance that the code in array.c
works and in my case it didn't. I tried to change the memory location
of xdr_d_infinity by trial and error and found that changing its length
from 2 to 3 did the trick. This is of course a pure coincidence and
may not work for other versions of the compiler in the future.
It is possible to check whether the location of xdr_d_infinity is OK
with a debugger (xdb or adb). If the hex address of xdr_d_infinity
ends with a 0 it is OK, if not, you have to experiment with the code
in array.c in order to change the location.
It is desirable to change the representation of XDR_D_INFINITY and
xdr_d_infinity future versions of netCDF so that it is truly portable
to RISC computers (casting a long location to double is not safe on
RISC machines).
This bug explains the failure of ncgen in the test run (Termination
code 136 or 138), which is reported by dockhorn@xxxxxxxxxxxxxxxxxxx
and piedro@xxxxxxxxxxxxxxxx.
These problems were not reported by langdon@xxxxxxxxxxxxxx;
perhaps he is using a different version of the compiler;
this indicates that some HP-UX users do not need to
(and therefore should not) modify array.c.
2) I ran into another problem with the testing of ncgen when I had solved
the problem with XDR_D_INFINITY. This problem turned out to be caused
by a casting of a large double precision number (10000000000) from a
test cdl file to long in ncgen/ncgenyy.c.
I made a small change in ncgen.l so that this casting is not done
unless the double precision number is sufficiently small.
This modification makes it necessary to have both lex and yacc
on the HP-UX machine where netCDF is to be installed.
3) The ANSI C compiler on HP-UX ("cc -Aa") does not seem to define
"hpux" and "unix". The manual says that it should produce the same
name space as the default if _HPUX_SOURCE is defined, but it doesn't.
I therefore use -Dunix -Dhpux -D_HPUX_SOURCE in the COPTS macro
in the make command.
There may be other "defines" that need to be explicitly set in this way,
but the code generated using the COPTS variable below seems to work.
If "unix" is not defined, then temporary files are created in /usr/tmp,
which may not by in the same file system as the cdf file, which is being
modified. This leads to an error return in the rename() command in file.c.
When "unix" is defined in COPTS, the temporary file is created in
the current directory. This works as long as the netCDF file is
located in the same file system as the current directory.
This bug is the explanation of the failure of ncopen in the test run,
which is reported by the same users as the XDR_D_INFINITY error.
Again this problem is not reported by langdon@xxxxxxxxxxxxxx;
that is probably because he installed netCDF on the file system
where /usr/tmp is located.
4) The call to rename() in file.c does not work across file systems.
Therefore, one may encounter errors if the netCDF file is not located
in the same file system as the current directory where temporary files
are created. This may be a general bug on other platforms, as I
don't think rename() works across file systems on other machines.
I made a small modification in file.c so that temporary files are
created in the same directory as the netCDF file. The modification
is only done on for hpux as I don't know if it would run on other
machines. This might be something that should be changed in future
versions of netCDF.
INSTALLATION COMMANDS:
1) go to the directory below which the netCDF code should be generated
2) uncompress the netCDF 2.0.2 distribution; the netcdf directory is generated
uncompress < netcdf.tar.Z | tar xf -
3) go to netcdf directory and unpack the files in the shar archive
at the end of this mail message (<shar.file> is the name of a file
containing just the shar archive and nothing else)
cd netcdf
sh <shar.file>
the files nc-hpux-patch1, all.LOG and install.LOG are generated
4) patch the distribution
patch -p0 < nc-hpux-patch1
5) make sure that the install.bsd command is in your PATH.
if not, copy install.sh til a directory which is referenced in your PATH.
6) compile and test netCDF
make OS=hpux_8.0.5 COPTS="-Aa -O -Dunix -Dhpux -D_HPUX_SOURCE -Wl,-a,archive" \
FC=fort77 FOPTS="-w -K" DESTDIR=/usr/contrib INSTALL=install.bsd \
RANLIB=touch BINMODE=755 LIBMODE=644 INCMODE=644 MANMODE=644 \
all > all.L 2>&1 &
7) compare the all.L file with the all.LOG file from my shar archive
8) install netCDF
you will presumably want to change DESTDIR to something else;
make install will not work unless you have write permission in
DESTDIR/bin, DESTDIR/lib, DESTDIR/include, DESTDIR/man/man1
and DESTDIR/man/man3; if not it may be simplest to ask your system
administrator to manually copy the required files (see install.LOG)
to the desired locations
make OS=hpux_8.0.5 COPTS="-Aa -O -Dunix -Dhpux -D_HPUX_SOURCE -Wl,-a,archive" \
FC=fort77 FOPTS="-w -K" DESTDIR=/usr/contrib INSTALL=install.bsd \
RANLIB=touch BINMODE=755 LIBMODE=644 INCMODE=644 MANMODE=644 \
install > install.L 2>&1 &
9) compare the install.L file with the install.LOG file from my shar archive
good luck
--
Tomas Johannesson Electronic mail: tj@xxxxx
Orkustofnun (National Energy Authority)
Grensasvegi 9, IS-108 Reykjavik, Iceland
Phone: +354-1-696000 Fax: +354-1-688896 Home: 354-1-35639
# This is a shell archive. Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
#
# Wrapped by Tomas Johannesson <tj@skrifla> on Mon Jun 15 10:18:48 1992
#
# This archive contains:
# nc-hpux-patch1 fortran/hpux.m4
# fortran/hpux0.inc all.LOG
# install.LOG
#
LANG=""; export LANG
PATH=/bin:/usr/bin:$PATH; export PATH
echo x - nc-hpux-patch1
cat >nc-hpux-patch1 <<'@EOF'
*** ../netcdf.orig/src/netcdf.h Mon Dec 23 20:42:34 1991
--- src/netcdf.h Fri Jun 12 13:10:08 1992
***************
*** 40,46 ****
* USE_ENUM so that nc_type is an enum. Otherwise, nc_type is
* an int and the valid values are #defined.
*/
! #if defined(sun) || defined(vax) || defined(NeXT)
#define USE_ENUM
#endif
--- 40,46 ----
* USE_ENUM so that nc_type is an enum. Otherwise, nc_type is
* an int and the valid values are #defined.
*/
! #if defined(hpux) || defined(sun) || defined(vax) || defined(NeXT)
#define USE_ENUM
#endif
*** ../netcdf.orig/src/local_nc.h Mon Dec 23 20:42:33 1991
--- src/local_nc.h Fri Jun 12 12:34:02 1992
***************
*** 47,52 ****
--- 47,53 ----
#ifdef hpux
#define SYSTEM_XDR_INCLUDES
+ #define USE_BFLAG
#endif
#ifdef convex
*** ../netcdf.orig/src/array.c Mon Dec 23 20:42:25 1991
--- src/array.c Fri Jun 12 16:30:17 1992
***************
*** 148,154 ****
--- 148,158 ----
#ifdef SWAP
long xdr_d_infinity[2] = {0x00000000,0x7ff00000};
#else
+ #ifdef hpux
+ long xdr_d_infinity[3] = {0x7ff00000,0x00000000,0x00000000};
+ #else
long xdr_d_infinity[2] = {0x7ff00000,0x00000000};
+ #endif
#endif
#endif
/*
*** ../netcdf.orig/src/file.c Mon Dec 23 20:42:30 1991
--- src/file.c Sat Jun 13 15:09:54 1992
***************
*** 451,457 ****
--- 451,469 ----
*/
#if !defined(cray) && !defined(NeXT) && !defined(convex)
#if defined(unix) || defined(MSDOS)
+ #if defined(hpux)
+ { char *hpux_dir;
+ if(strchr(handle->path,'/') == NULL)
+ scratchfile = tempnam(getcwd((char*)NULL,FILENAME_MAX),"nc.") ;
+ else {
+ hpux_dir=strdup(handle->path) ;
+ *(strrchr(hpux_dir,'/')+1) = '\0' ;
+ scratchfile = tempnam(hpux_dir,"nc.") ;
+ }
+ }
+ #else
scratchfile = tempnam(getcwd((char*)NULL,FILENAME_MAX),"nc.") ;
+ #endif
#else
scratchfile = tmpnam(NULL) ;
#endif /* unix & !cray */
*** ../netcdf.orig/ncgen/ncgen.l Mon Dec 23 20:42:04 1991
--- ncgen/ncgen.l Fri Jun 12 16:58:08 1992
***************
*** 116,122 ****
sprintf(errstr,"bad long constant: %s",yytext);
yyerror(errstr);
}
! if (dd == (double) ((long) dd)) {
long_val = dd;
return LONG_CONST;
} else {
--- 116,122 ----
sprintf(errstr,"bad long constant: %s",yytext);
yyerror(errstr);
}
! if ((dd>0?dd:-dd) < 2147483647 && dd == (double) ((long) dd)) {
long_val = dd;
return LONG_CONST;
} else {
@EOF
chmod 644 nc-hpux-patch1
echo x - fortran/hpux.m4
cat >fortran/hpux.m4 <<'@EOF'
divert(-1)
# Name of system platform (for use in comments)
define(`M4__SYSTEM', HP-UX)
# transformation from fortran name to name of C module
define(`NAMEF',`$1') # for HP-UX, use same name
# transformation from string name to corresponding argument name
define(`STRINGF',`$1')
# extra arguments, if any, for string length
define(`STRINGX',`, $1len') # one extra stringlen parameter
# declaration to be used for argument name descriptor
define(`STRINGD',`
char *$1; `$2'
int $1`'`len';') # declare argument string with extra stringlen
parameter
# declarations and initializations of canonical local variables
define(`STRINGL',`')
# FORTRAN declaration for a long integer (e.g. integer*4 for Microsoft)
define(`LONG_INT',`integer')
# FORTRAN declaration for a short integer (e.g. integer*2)
define(`SHORT_INT',`integer*2')
# FORTRAN declaration for an integer byte (e.g. integer*1 or byte)
define(`BYTE_INT',`byte')
# FORTRAN declaration for double precision (e.g. real for a Cray)
define(`DOUBLE_PRECISION',`double precision')
divert(0)dnl
@EOF
chmod 644 fortran/hpux.m4
echo x - fortran/hpux0.inc
cat >fortran/hpux0.inc <<'@EOF'
c machine specific xdr infinity constants
c
real XDRFINF
double precision XDRDINF
c ifdef vax
c
c parameter(XDRDINF = 1.7014118346046923e+38)
c parameter(XDRFINF = 2.93873588e-39)
c ifdef sun
c parameter(XDRDINF = 1.797693134862315900e+308)
c parameter(XDRFINF = 3.40282357e+38)
c ifdef hpux
parameter(XDRDINF = Z'7FF0000000000000')
parameter(XDRFINF = Z'7F800000')
c
c Fill values
c These values are stuffed into newly allocated space as appropriate.
c The hope is that one might use these to notice that a particular dataum
c has not been set.
c
integer FILBYTE,FILCHAR, FILSHORT,FILLONG
real FILFLOAT
double precision FILDOUB
c
c Largest Negative value
parameter(FILBYTE = 128)
parameter(FILCHAR = 0)
parameter(FILSHORT = 32768)
parameter(FILLONG = -2147483647-1)
c IEEE Infinity
parameter(FILFLOAT = XDRFINF)
parameter(FILDOUB = XDRDINF)
@EOF
chmod 644 fortran/hpux0.inc
rm -f /tmp/uud$$
(echo "begin 666 /tmp/uud$$\n#;VL*n#6%@x\n \nend" | uudecode) >/dev/null 2>&1
if [ X"`cat /tmp/uud$$ 2>&1`" = Xok ]
then
unpacker=uudecode
else
echo Compiling unpacker for non-ascii files
pwd=`pwd`; cd /tmp
cat >unpack$$.c <<'EOF'
#include <stdio.h>
#define C (*p++ - ' ' & 077)
main()
{
int n;
char buf[128], *p, a,b;
scanf("begin %o ", &n);
gets(buf);
if (freopen(buf, "w", stdout) == NULL) {
perror(buf);
exit(1);
}
while (gets(p=buf) && (n=C)) {
while (n>0) {
a = C;
if (n-- > 0) putchar(a << 2 | (b=C) >> 4);
if (n-- > 0) putchar(b << 4 | (a=C) >> 2);
if (n-- > 0) putchar(a << 6 | C);
}
}
exit(0);
}
EOF
cc -o unpack$$ unpack$$.c
rm unpack$$.c
cd $pwd
unpacker=/tmp/unpack$$
fi
rm -f /tmp/uud$$
echo x - all.LOG '[non-ascii]'
$unpacker <<'@eof'
begin 644 all.LOG
M36%K:6YG(&!A;&PG(&EN("]B:&TO=FTO=7-E<B]T:B]N;W1O<R]H=6=B+VYEX
M=&-D9B]N971C9&8O9F]R=')A;@H)+B]F;W)T8R M3" N("U/(&AP=7@@:F%CX
M:V5T<RYS<F,@/B!J86-K971S+F,*"2]B:6XO8V,@+4DN+B]S<F,@+4%A("U/X
M("U$=6YI>" M1&AP=7@@+41?2%!56%]33U520T4@+5=L+"UA+&%R8VAI=F4@X
M+6,@:F%C:V5T<RYC"@DN+V9O<G1C("U,("X@+4\@:'!U>"!H<'5X,"YI;F,@X
M8V]M;6]N+FEN8R ^(&YE=&-D9BYI;F,*36%K:6YG(&!A;&PG(&EN("]B:&TOX
M=FTO=7-E<B]T:B]N;W1O<R]H=6=B+VYE=&-D9B]N971C9&8O>&1R"@DO8FENX
M+V-C("U)8&EF(%L@+7H@(B]U<W(O:6YC;'5D92]R<&,B(%T[('1H96X@96-HX
M;R N.R!<"@D)(" @(&5L<V4@96-H;R O=7-R+VEN8VQU9&4O<G!C.R!F:6 @X
M("U!82 M3R M1'5N:7@@+41H<'5X("U$7TA055A?4T]54D-%("U7;"PM82QAX
M<F-H:79E("UC('AD<G1E<W0N8PI-86MI;F<@8&%L;"<@:6X@+V)H;2]V;2]UX
M<V5R+W1J+VYO=&]S+VAU9V(O;F5T8V1F+VYE=&-D9B]S<F,*"2]B:6XO8V,@X
M+4E@:68@6R M>B B+W5S<B]I;F-L=61E+W)P8R(@73L@=&AE;B!E8VAO("XNX
M+WAD<CL@96QS92!<"@D)(" @(&5C:&\@+W5S<B]I;F-L=61E+W)P8SL@9FE@X
M(" M06$@+4\@+41U;FEX("U$:'!U>" M1%](4%587U-/55)#12 M5VPL+6$LX
M87)C:&EV92 M8R!A<G)A>2YC"@DO8FEN+V-C("U)8&EF(%L@+7H@(B]U<W(OX
M:6YC;'5D92]R<&,B(%T[('1H96X@96-H;R N+B]X9'([(&5L<V4@7 H)"2 @X
M("!E8VAO("]U<W(O:6YC;'5D92]R<&,[(&9I8" @+4%A("U/("U$=6YI>" MX
M1&AP=7@@+41?2%!56%]33U520T4@+5=L+"UA+&%R8VAI=F4@+6,@871T<BYCX
M"@DO8FEN+V-C("U)8&EF(%L@+7H@(B]U<W(O:6YC;'5D92]R<&,B(%T[('1HX
M96X@96-H;R N+B]X9'([(&5L<V4@7 H)"2 @("!E8VAO("]U<W(O:6YC;'5DX
M92]R<&,[(&9I8" @+4%A("U/("U$=6YI>" M1&AP=7@@+41?2%!56%]33U52X
M0T4@+5=L+"UA+&%R8VAI=F4@+6,@8V1F+F,*"2]B:6XO8V,@+4E@:68@6R MX
M>B B+W5S<B]I;F-L=61E+W)P8R(@73L@=&AE;B!E8VAO("XN+WAD<CL@96QSX
M92!<"@D)(" @(&5C:&\@+W5S<B]I;F-L=61E+W)P8SL@9FE@(" M06$@+4\@X
M+41U;FEX("U$:'!U>" M1%](4%587U-/55)#12 M5VPL+6$L87)C:&EV92 MX
M8R!D:6TN8PH)+V)I;B]C8R M26!I9B!;("UZ("(O=7-R+VEN8VQU9&4O<G!CX
M(B!=.R!T:&5N(&5C:&\@+BXO>&1R.R!E;'-E(%P*"0D@(" @96-H;R O=7-RX
M+VEN8VQU9&4O<G!C.R!F:6 @("U!82 M3R M1'5N:7@@+41H<'5X("U$7TA0X
M55A?4T]54D-%("U7;"PM82QA<F-H:79E("UC(&9I;&4N8PH)+V)I;B]C8R MX
M26!I9B!;("UZ("(O=7-R+VEN8VQU9&4O<G!C(B!=.R!T:&5N(&5C:&\@+BXOX
M>&1R.R!E;'-E(%P*"0D@(" @96-H;R O=7-R+VEN8VQU9&4O<G!C.R!F:6 @X
M("U!82 M3R M1'5N:7@@+41H<'5X("U$7TA055A?4T]54D-%("U7;"PM82QAX
M<F-H:79E("UC(&EA<G)A>2YC"@DO8FEN+V-C("U)8&EF(%L@+7H@(B]U<W(OX
M:6YC;'5D92]R<&,B(%T[('1H96X@96-H;R N+B]X9'([(&5L<V4@7 H)"2 @X
M("!E8VAO("]U<W(O:6YC;'5D92]R<&,[(&9I8" @+4%A("U/("U$=6YI>" MX
M1&AP=7@@+41?2%!56%]33U520T4@+5=L+"UA+&%R8VAI=F4@+6,@97)R;W(NX
M8PH)+V)I;B]C8R M26!I9B!;("UZ("(O=7-R+VEN8VQU9&4O<G!C(B!=.R!TX
M:&5N(&5C:&\@+BXO>&1R.R!E;'-E(%P*"0D@(" @96-H;R O=7-R+VEN8VQUX
M9&4O<G!C.R!F:6 @("U!82 M3R M1'5N:7@@+41H<'5X("U$7TA055A?4T]5X
M4D-%("U7;"PM82QA<F-H:79E("UC(&=L;V)D968N8PH)+V)I;B]C8R M26!IX
M9B!;("UZ("(O=7-R+VEN8VQU9&4O<G!C(B!=.R!T:&5N(&5C:&\@+BXO>&1RX
M.R!E;'-E(%P*"0D@(" @96-H;R O=7-R+VEN8VQU9&4O<G!C.R!F:6 @("U!X
M82 M3R M1'5N:7@@+41H<'5X("U$7TA055A?4T]54D-%("U7;"PM82QA<F-HX
M:79E("UC('!U=&=E="YC"@DO8FEN+V-C("U)8&EF(%L@+7H@(B]U<W(O:6YCX
M;'5D92]R<&,B(%T[('1H96X@96-H;R N+B]X9'([(&5L<V4@7 H)"2 @("!EX
M8VAO("]U<W(O:6YC;'5D92]R<&,[(&9I8" @+4%A("U/("U$=6YI>" M1&APX
M=7@@+41?2%!56%]33U520T4@+5=L+"UA+&%R8VAI=F4@+6,@<VAA<G)A>2YCX
M"@DO8FEN+V-C("U)8&EF(%L@+7H@(B]U<W(O:6YC;'5D92]R<&,B(%T[('1HX
M96X@96-H;R N+B]X9'([(&5L<V4@7 H)"2 @("!E8VAO("]U<W(O:6YC;'5DX
M92]R<&,[(&9I8" @+4%A("U/("U$=6YI>" M1&AP=7@@+41?2%!56%]33U52X
M0T4@+5=L+"UA+&%R8VAI=F4@+6,@<W1R:6YG+F,*"2]B:6XO8V,@+4E@:68@X
M6R M>B B+W5S<B]I;F-L=61E+W)P8R(@73L@=&AE;B!E8VAO("XN+WAD<CL@X
M96QS92!<"@D)(" @(&5C:&\@+W5S<B]I;F-L=61E+W)P8SL@9FE@(" M06$@X
M+4\@+41U;FEX("U$:'!U>" M1%](4%587U-/55)#12 M5VPL+6$L87)C:&EVX
M92 M8R!V87(N8PH)+V)I;B]C8R M26!I9B!;("UZ("(O=7-R+VEN8VQU9&4OX
M<G!C(B!=.R!T:&5N(&5C:&\@+BXO>&1R.R!E;'-E(%P*"0D@(" @96-H;R OX
M=7-R+VEN8VQU9&4O<G!C.R!F:6 @("U!82 M3R M1'5N:7@@+41H<'5X("U$X
M7TA055A?4T]54D-%("U7;"PM82QA<F-H:79E("UC('9E<G-I;VXN8PH)87(@X
M<G5V(&QI8FYE=&-D9BYA(&%R<F%Y+F\@871T<BYO(&-D9BYO(&1I;2YO(&9IX
M;&4N;R!I87)R87DN;R!E<G)O<BYO("!G;&]B9&5F+F\@<'5T9V5T+F\@<VAAX
M<G)A>2YO('-T<FEN9RYO('9A<BYO('9E<G-I;VXN;R @+BXO9F]R=')A;B]JX
M86-K971S+F\@?'P@*')M("UF(&QI8FYE=&-D9BYA("8F(&%R(')C=B!L:6)NX
M971C9&8N82!A<G)A>2YO(&%T='(N;R!C9&8N;R!D:6TN;R!F:6QE+F\@:6%RX
M<F%Y+F\@97)R;W(N;R @9VQO8F1E9BYO('!U=&=E="YO('-H87)R87DN;R!SX
M=')I;F<N;R!V87(N;R!V97)S:6]N+F\@("XN+V9O<G1R86XO:F%C:V5T<RYOX
M*0IA<CH@8W)E871I;F<@;&EB;F5T8V1F+F$*82 M(&%R<F%Y+F\*82 M(&%TX
M='(N;PIA("T@8V1F+F\*82 M(&1I;2YO"F$@+2!F:6QE+F\*82 M(&EA<G)AX
M>2YO"F$@+2!E<G)O<BYO"F$@+2!G;&]B9&5F+F\*82 M('!U=&=E="YO"F$@X
M+2!S:&%R<F%Y+F\*82 M('-T<FEN9RYO"F$@+2!V87(N;PIA("T@=F5R<VEOX
M;BYO"F$@+2 N+B]F;W)T<F%N+VIA8VME=',N;PH)=&]U8V@@;&EB;F5T8V1FX
M+F$*"2]B:6XO8V,@+4E@:68@6R M>B B+W5S<B]I;F-L=61E+W)P8R(@73L@X
M=&AE;B!E8VAO("XN+WAD<CL@96QS92!<"@D)(" @(&5C:&\@+W5S<B]I;F-LX
M=61E+W)P8SL@9FE@(" M06$@+4\@+41U;FEX("U$:'!U>" M1%](4%587U-/X
M55)#12 M5VPL+6$L87)C:&EV92 M8R!C9&9T97-T+F,*"7AD<F]B:G,]8&EFX
M(%L@+7H@(B]U<W(O:6YC;'5D92]R<&,B(%T[('1H96X@96-H;R N+B]X9'(OX
M>&1R+F\@7 H)"0DN+B]X9'(O>&1R9FQO870N;R N+B]X9'(O>&1R<W1D:6\NX
M;R!<"@D)"2XN+WAD<B]X9')A<G)A>2YO.R!E;'-E(&5C:&\@(B([(&9I8#L@X
M7 H)+V)I;B]C8R M26!I9B!;("UZ("(O=7-R+VEN8VQU9&4O<G!C(B!=.R!TX
M:&5N(&5C:&\@+BXO>&1R.R!E;'-E(%P*"0D@(" @96-H;R O=7-R+VEN8VQUX
M9&4O<G!C.R!F:6 @("U!82 M3R M1'5N:7@@+41H<'5X("U$7TA055A?4T]5X
M4D-%("U7;"PM82QA<F-H:79E(&-D9G1E<W0N;R!A<G)A>2YO(&%T='(N;R!CX
M9&8N;R!D:6TN;R!F:6QE+F\@:6%R<F%Y+F\@97)R;W(N;R @9VQO8F1E9BYOX
M('!U=&=E="YO('-H87)R87DN;R!S=')I;F<N;R!V87(N;R!V97)S:6]N+F\@X
M)'MX9')O8FIS+7T@8&-A<V4@:'!U>%\X+C N-2!I;B!U;FEC;W,J*2!E8VAOX
M("UL<G!C.SL@97-A8V @("UO(&-D9G1E<W0*36%K:6YG(&!A;&PG(&EN("]BX
M:&TO=FTO=7-E<B]T:B]N;W1O<R]H=6=B+VYE=&-D9B]N971C9&8O;F-G96X*X
M"2]B:6XO8V,@+4DN+B]S<F,@+4%A("U/("U$=6YI>" M1&AP=7@@+41?2%!5X
M6%]33U520T4@+5=L+"UA+&%R8VAI=F4@+6,@;6%I;BYC"@DO8FEN+V-C("U)X
M+BXO<W)C("U!82 M3R M1'5N:7@@+41H<'5X("U$7TA055A?4T]54D-%("U7X
M;"PM82QA<F-H:79E("UC(&=E;F5R871E+F,*"2]B:6XO8V,@+4DN+B]S<F,@X
M+4%A("U/("U$=6YI>" M1&AP=7@@+41?2%!56%]33U520T4@+5=L+"UA+&%RX
M8VAI=F4@+6,@;&]A9"YC"@EL97@@;F-G96XN; H);78@;&5X+GEY+F,@;F-GX
M96YY>2YC"@EY86-C("UD(&YC9V5N+GD*"6UV('DN=&%B+F,@;F-G96YT86(NX
M8PH);78@>2YT86(N:"!N8V=E;G1A8BYH"@DO8FEN+V-C("U)+BXO<W)C("U!X
M82 M3R M1'5N:7@@+41H<'5X("U$7TA055A?4T]54D-%("U7;"PM82QA<F-HX
M:79E("UC(&YC9V5N=&%B+F,*8V,Z(")N8V=E;GEY+F,B+"!L:6YE(#$R-3H@X
M=V%R;FEN9R V,#0Z(%!O:6YT97)S(&%R92!N;W0@87-S:6=N;65N="UC;VUPX
M871I8FQE+@IC8SH@(FYC9V5N>7DN8R(L(&QI;F4@,30Q.B!W87)N:6YG(#8PX
M-#H@4&]I;G1E<G,@87)E(&YO="!A<W-I9VYM96YT+6-O;7!A=&EB;&4N"F-CX
M.B B;F-G96YY>2YC(BP@;&EN92 Q-3 Z('=A<FYI;F<@-C T.B!0;VEN=&5RX
M<R!A<F4@;F]T(&%S<VEG;FUE;G0M8V]M<&%T:6)L92X*8V,Z(")N8V=E;GEYX
M+F,B+"!L:6YE(#$U.3H@=V%R;FEN9R V,#0Z(%!O:6YT97)S(&%R92!N;W0@X
M87-S:6=N;65N="UC;VUP871I8FQE+@IC8SH@(FYC9V5N>7DN8R(L(&QI;F4@X
M,3@Y.B!W87)N:6YG(#8P-#H@4&]I;G1E<G,@87)E(&YO="!A<W-I9VYM96YTX
M+6-O;7!A=&EB;&4N"F-C.B B;F-G96YY>2YC(BP@;&EN92 R,3(Z('=A<FYIX
M;F<@-C T.B!0;VEN=&5R<R!A<F4@;F]T(&%S<VEG;FUE;G0M8V]M<&%T:6)LX
M92X*8V,Z(")N8V=E;GEY+F,B+"!L:6YE(#(R,CH@=V%R;FEN9R V,#0Z(%!OX
M:6YT97)S(&%R92!N;W0@87-S:6=N;65N="UC;VUP871I8FQE+@H)+V)I;B]CX
M8R M22XN+W-R8R M06$@+4\@+41U;FEX("U$:'!U>" M1%](4%587U-/55)#X
M12 M5VPL+6$L87)C:&EV92 M8R!E<V-A<&5S+F,*"2]B:6XO8V,@+4DN+B]SX
M<F,@+4%A("U/("U$=6YI>" M1&AP=7@@+41?2%!56%]33U520T4@+5=L+"UAX
M+&%R8VAI=F4@+6,@9V5T9FEL;"YC"@DO8FEN+V-C("U)+BXO<W)C("U!82 MX
M3R M1'5N:7@@+41H<'5X("U$7TA055A?4T]54D-%("U7;"PM82QA<F-H:79EX
M("UC(&EN:70N8PH)+V)I;B]C8R M22XN+W-R8R M06$@+4\@+41U;FEX("U$X
M:'!U>" M1%](4%587U-/55)#12 M5VPL+6$L87)C:&EV92 M8R!C;&]S92YCX
M"@DO8FEN+V-C("U)+BXO<W)C("U!82 M3R M1'5N:7@@+41H<'5X("U$7TA0X
M55A?4T]54D-%("U7;"PM82QA<F-H:79E("UC(&1E<G)O<BYC"@DO8FEN+V-CX
M("U)+BXO<W)C("U!82 M3R M1'5N:7@@+41H<'5X("U$7TA055A?4T]54D-%X
M("U7;"PM82QA<F-H:79E("UC(&5M86QL;V,N8PH)+V)I;B]C8R M06$@+4\@X
M+41U;FEX("U$:'!U>" M1%](4%587U-/55)#12 M5VPL+6$L87)C:&EV92 MX
M;R!N8V=E;B!M86EN+F\@9V5N97)A=&4N;R!L;V%D+F\@;F-G96YT86(N;R!EX
M<V-A<&5S+F\@(&=E=&9I;&PN;R!I;FET+F\@8VQO<V4N;R!D97)R;W(N;R @X
M96UA;&QO8RYO("U,+BXO<W)C("UL;F5T8V1F("U,+W5S<B]C;VYT<FEB+VQIX
M8B M;&YE=&-D9B!@8V%S92!H<'5X7S@N,"XU(&EN('5N:6-O<RHI(&5C:&\@X
M+6QR<&,[.R!E<V%C8" *36%K:6YG(&!A;&PG(&EN("]B:&TO=FTO=7-E<B]TX
M:B]N;W1O<R]H=6=B+VYE=&-D9B]N971C9&8O;F-D=6UP"@DO8FEN+V-C("U)X
M+BXO<W)C("U!82 M3R M1'5N:7@@+41H<'5X("U$7TA055A?4T]54D-%("U7X
M;"PM82QA<F-H:79E("UC(&YC9'5M<"YC"@DO8FEN+V-C("U)+BXO<W)C("U!X
M82 M3R M1'5N:7@@+41H<'5X("U$7TA055A?4T]54D-%("U7;"PM82QA<F-HX
M:79E("UC('9A<F1A=&$N8PH)+V)I;B]C8R M22XN+W-R8R M06$@+4\@+41UX
M;FEX("U$:'!U>" M1%](4%587U-/55)#12 M5VPL+6$L87)C:&EV92 M8R!LX
M<'5T+F,*"2]B:6XO8V,@+4DN+B]S<F,@+4%A("U/("U$=6YI>" M1&AP=7@@X
M+41?2%!56%]33U520T4@+5=L+"UA+&%R8VAI=F4@+6,@97)R;W(N8PH)+V)IX
M;B]C8R M06$@+4\@+41U;FEX("U$:'!U>" M1%](4%587U-/55)#12 M5VPLX
M+6$L87)C:&EV92 M;R!N8V1U;7 @;F-D=6UP+F\@=F%R9&%T82YO(&QP=70NX
M;R!E<G)O<BYO("U,+BXO<W)C("UL;F5T8V1F("U,+W5S<B]C;VYT<FEB+VQIX
M8B M;&YE=&-D9B!@8V%S92!H<'5X7S@N,"XU(&EN('5N:6-O<RHI(&5C:&\@X
M+6QR<&,[.R!E<V%C8" *36%K:6YG(&!A;&PG(&EN("]B:&TO=FTO=7-E<B]TX
M:B]N;W1O<R]H=6=B+VYE=&-D9B]N971C9&8O;F-T97-T"@DO8FEN+V-C("U)X
M+BXO<W)C(" M06$@+4\@+41U;FEX("U$:'!U>" M1%](4%587U-/55)#12 MX
M5VPL+6$L87)C:&EV92 M8R!V87)G970N8PH)+V)I;B]C8R M22XN+W-R8R @X
M+4%A("U/("U$=6YI>" M1&AP=7@@+41?2%!56%]33U520T4@+5=L+"UA+&%RX
M8VAI=F4@+6,@=F%R<'5T+F,*"2]B:6XO8V,@+4DN+B]S<F,@("U!82 M3R MX
M1'5N:7@@+41H<'5X("U$7TA055A?4T]54D-%("U7;"PM82QA<F-H:79E("UCX
M('9A<F1E9BYC"@DO8FEN+V-C("U)+BXO<W)C(" M06$@+4\@+41U;FEX("U$X
M:'!U>" M1%](4%587U-/55)#12 M5VPL+6$L87)C:&EV92 M8R!V87)T97-TX
M<RYC"@DO8FEN+V-C("U)+BXO<W)C(" M06$@+4\@+41U;FEX("U$:'!U>" MX
M1%](4%587U-/55)#12 M5VPL+6$L87)C:&EV92 M8R!V<'5T9V5T+F,*"2]BX
M:6XO8V,@+4DN+B]S<F,@("U!82 M3R M1'5N:7@@+41H<'5X("U$7TA055A?X
M4T]54D-%("U7;"PM82QA<F-H:79E("UC(&1R:79E<BYC"@DO8FEN+V-C("U)X
M+BXO<W)C(" M06$@+4\@+41U;FEX("U$:'!U>" M1%](4%587U-/55)#12 MX
M5VPL+6$L87)C:&EV92 M8R!C9&9T97-T<RYC"@DO8FEN+V-C("U)+BXO<W)CX
M(" M06$@+4\@+41U;FEX("U$:'!U>" M1%](4%587U-/55)#12 M5VPL+6$LX
M87)C:&EV92 M8R!D:6UT97-T<RYC"@DO8FEN+V-C("U)+BXO<W)C(" M06$@X
M+4\@+41U;FEX("U$:'!U>" M1%](4%587U-/55)#12 M5VPL+6$L87)C:&EVX
M92 M8R!A='1T97-T<RYC"@DO8FEN+V-C("U)+BXO<W)C(" M06$@+4\@+41UX
M;FEX("U$:'!U>" M1%](4%587U-/55)#12 M5VPL+6$L87)C:&EV92 M8R!MX
M:7-C=&5S="YC"@DO8FEN+V-C("U)+BXO<W)C(" M06$@+4\@+41U;FEX("U$X
M:'!U>" M1%](4%587U-/55)#12 M5VPL+6$L87)C:&EV92 M8R!A9&0N8PH)X
M+V)I;B]C8R M22XN+W-R8R @+4%A("U/("U$=6YI>" M1&AP=7@@+41?2%!5X
M6%]33U520T4@+5=L+"UA+&%R8VAI=F4@+6,@97)R;W(N8PH)+V)I;B]C8R MX
M22XN+W-R8R @+4%A("U/("U$=6YI>" M1&AP=7@@+41?2%!56%]33U520T4@X
M+5=L+"UA+&%R8VAI=F4@+6,@96UA;&QO8RYC"@DO8FEN+V-C("U)+BXO<W)CX
M(" M06$@+4\@+41U;FEX("U$:'!U>" M1%](4%587U-/55)#12 M5VPL+6$LX
M87)C:&EV92 M8R!V86PN8PH)+V)I;B]C8R M22XN+W-R8R @+4%A("U/("U$X
M=6YI>" M1&AP=7@@+41?2%!56%]33U520T4@+5=L+"UA+&%R8VAI=F4@+6,@X
M<VQA8G,N8PH)+V)I;B]C8R M22XN+W-R8R @+4%A("U/("U$=6YI>" M1&APX
M=7@@+41?2%!56%]33U520T4@+5=L+"UA+&%R8VAI=F4@=F%R9V5T+F\@=F%RX
M<'5T+F\@=F%R9&5F+F\@=F%R=&5S=',N;R!V<'5T9V5T+F\@9')I=F5R+F\@X
M(&-D9G1E<W1S+F\@9&EM=&5S=',N;R!A='1T97-T<RYO(&UI<V-T97-T+F\@X
M(&%D9"YO(&5R<F]R+F\@96UA;&QO8RYO('9A;"YO('-L86)S+F\@+4PN+B]SX
M<F,@+6QN971C9&8@8&-A<V4@:'!U>%\X+C N-2!I;B!U;FEC;W,J*2!E8VAOX
M("UL<G!C.SL@97-A8V @("UO(&YC=&5S= I-86MI;F<@8'1E<W0G(&EN("]BX
M:&TO=FTO=7-E<B]T:B]N;W1O<R]H=6=B+VYE=&-D9B]N971C9&8O>&1R"BHJX
M*B!81%(@<&%S<V5S(&9O<FUA='1E9"!T97-T("HJ*@HJ*BH@6$12('!A<W-EX
M<R!B:6YA<GD@=&5S=" J*BH*36%K:6YG(&!T97-T)R!I;B O8FAM+W9M+W5SX
M97(O=&HO;F]T;W,O:'5G8B]N971C9&8O;F5T8V1F+V9O<G1R86X*"2XO9F]RX
M=&,@+4P@+B M3R!H<'5X(&9T97-T+G-R8R ^(&9T97-T+F8*"69O<G0W-R MX
M=R M2R M8R!F=&5S="YF"F9T97-T+F8Z"B @($U!24X@9G1E<W0Z"B @('1NX
M8V%C<'DZ"B @('1N8V%D96PZ"B @('1N8V%G=#H*(" @=&YC87!T.@H@("!"X
M3$]#2R!$051!.@H@("!T;F-D9&5F.@H@("!T;F-I;G$Z"B @('1N8W)E9&8ZX
M"B @('1N8W9D968Z"B @('1N8W9G=#H*(" @=&YC=F=T,3H*(" @=&YC=G!TX
M.@H@("!T;F-V<'0Q.@H)9F]R=#<W("UW("U+("UO(&9T97-T(&9T97-T+F\@X
M:F%C:V5T<RYO("U,+BXO<W)C("UL;F5T8V1F("U,+W5S<B]C;VYT<FEB+VQIX
M8B M;&YE=&-D9B!@8V%S92!H<'5X7S@N,"XU(&EN('5N:6-O<RHI(&5C:&\@X
M+6QR<&,[.R!E<V%C8" *"2XO9G1E<W0*("TM+2!497-T:6YG(&YC8W)E("XNX
M+@H@+2TM(%1E<W1I;F<@;F-D9&5F("XN+@H@+2TM(%1E<W1I;F<@;F-V9&5FX
M("XN+@H@+2TM(%1E<W1I;F<@;F-A<'0L(&YC87!T8R N+BX*("TM+2!497-TX
M:6YG(&YC8VQO<R N+BX*("TM+2!497-T:6YG(&YC=G!T,2 N+BX*("TM+2!4X
M97-T:6YG(&YC=F=T,2 N+BX*("TM+2!497-T:6YG(&YC=G!T("XN+@H@+2TMX
M(%1E<W1I;F<@;F-O<&XL(&YC:6YQ+"!N8V1I;G$L(&YC=FEN<2P@;F-A;F%MX
M+"!N8V%I;G$@+BXN"B M+2T@5&5S=&EN9R!N8W9G="P@;F-V9W1C("XN+@H@X
M+2TM(%1E<W1I;F<@;F-A9W0L(&YC86=T8R N+BX*("TM+2!497-T:6YG(&YCX
M<F5D9BP@;F-D<F5N+"!N8W9R96XL(&YC87)E;BP@;F-E;F1F("XN+@H@+2TMX
M(%1E<W1I;F<@;F-A8W!Y("XN+@H@+2TM(%1E<W1I;F<@;F-A9&5L("XN+@I-X
M86MI;F<@8'1E<W0G(&EN("]B:&TO=FTO=7-E<B]T:B]N;W1O<R]H=6=B+VYEX
M=&-D9B]N971C9&8O;F-G96X**BHJ(&YC9V5N("UN('1E<W0@<W5C8V5S<V9UX
M;" J*BH**BHJ(&YC9V5N("UC('1E<W0@<W5C8V5S<V9U;" J*BH*=&5S=# NX
M9CH*(" @34%)3B!F=&5S=# Z"BHJ*B!N8V=E;B M9B!T97-T('-U8V-E<W-FX
M=6P@*BHJ"DUA:VEN9R!@=&5S="<@:6X@+V)H;2]V;2]U<V5R+W1J+VYO=&]SX
M+VAU9V(O;F5T8V1F+VYE=&-D9B]N8V1U;7 **BHJ(&YC9'5M<"!T97-T('-UX
M8V-E<W-F=6P@*BHJ"DUA:VEN9R!@=&5S="<@:6X@+V)H;2]V;2]U<V5R+W1JX
M+VYO=&]S+VAU9V(O;F5T8V1F+VYE=&-D9B]N8W1E<W0*"2XO;F-T97-T"BTMX
M+2!497-T:6YG(&YC8W)E871E("XN+@HM+2T@5&5S=&EN9R!N8V]P96X@+BXNX
M"BTM+2!497-T:6YG(&YC<F5D968@+BXN"BTM+2!497-T:6YG(&YC96YD968@X
M+BXN"BTM+2!497-T:6YG(&YC8VQO<V4@+BXN"BTM+2!497-T:6YG(&YC:6YQX
M=6ER92 N+BX*+2TM(%1E<W1I;F<@;F-S>6YC("XN+@HM+2T@5&5S=&EN9R!NX
M8V%B;W)T("XN+@HM+2T@5&5S=&EN9R!N8V1I;61E9B N+BX*+2TM(%1E<W1IX
M;F<@;F-D:6UI9" N+BX*+2TM(%1E<W1I;F<@;F-D:6UI;G$@+BXN"BTM+2!4X
M97-T:6YG(&YC9&EM<F5N86UE("XN+@HM+2T@5&5S=&EN9R!N8W9A<F1E9B NX
M+BX*+2TM(%1E<W1I;F<@;F-V87)I9" N+BX*+2TM(%1E<W1I;F<@;F-V87)IX
M;G$@+BXN"BTM+2!497-T:6YG(&YC=F%R<'5T,2 N+BX*+2TM(%1E<W1I;F<@X
M;F-V87)G970Q("XN+@HM+2T@5&5S=&EN9R!N8W9A<G!U=" N+BX*+2TM(%1EX
M<W1I;F<@;F-V87)G970@+BXN"BTM+2!497-T:6YG(&YC=F%R<F5N86UE("XNX
M+@HM+2T@5&5S=&EN9R!N8V%T='!U=" N+BX*+2TM(%1E<W1I;F<@;F-A='1IX
M;G$@+BXN"BTM+2!497-T:6YG(&YC871T9V5T("XN+@HM+2T@5&5S=&EN9R!NX
M8V%T=&-O<'D@+BXN"BTM+2!497-T:6YG(&YC871T;F%M92 N+BX*+2TM(%1EX
M<W1I;F<@;F-A='1R96YA;64@+BXN"BTM+2!497-T:6YG(&YC871T9&5L("XNX
<+@HM+2T@5&5S=&EN9R!N8W1Y<&5L96X@+BXN"G-T X
X
end
@eof
chmod 644 all.LOG
echo x - install.LOG
cat >install.LOG <<'@EOF'
Making `install' in /bhm/vm/user/tj/notos/hugb/netcdf/netcdf/xdr
Making `install' in /bhm/vm/user/tj/notos/hugb/netcdf/netcdf/src
install.bsd -c -m 644 libnetcdf.a /usr/contrib/lib/libnetcdf.a
touch /usr/contrib/lib/libnetcdf.a
install /usr/contrib/include/netcdf.h
Making `install' in /bhm/vm/user/tj/notos/hugb/netcdf/netcdf/fortran
install.bsd -c -m 644 netcdf.inc /usr/contrib/include
Making `install' in /bhm/vm/user/tj/notos/hugb/netcdf/netcdf/ncgen
install.bsd -c -m 755 ncgen /usr/contrib/bin
Making `install' in /bhm/vm/user/tj/notos/hugb/netcdf/netcdf/ncdump
install.bsd -c -m 755 ncdump /usr/contrib/bin
Making `install' in /bhm/vm/user/tj/notos/hugb/netcdf/netcdf/doc
cp ncdump.1 /usr/contrib/man/man1/ncdump.1 && chmod 644
/usr/contrib/man/man1/ncdump.1
cp ncgen.1 /usr/contrib/man/man1/ncgen.1 && chmod 644
/usr/contrib/man/man1/ncgen.1
cp netcdf.3 /usr/contrib/man/man3/netcdf.3 && chmod 644
/usr/contrib/man/man3/netcdf.3
cp netcdf.3f /usr/contrib/man/man3/netcdf.3f && chmod 644
/usr/contrib/man/man3/netcdf.3f
@EOF
chmod 644 install.LOG
rm -f /tmp/unpack$$
exit 0