This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
> Organization: Cray > Keywords: 199404082139.AA08286 Hi Dave, > The netcdf software has been installed on the Cray3 machine at NCAR > (graywolf). Following are a list of modifications that were needed to get > the software to install and run correctly on the Cray3: > > 1) Edit the CUSTOMIZE file in the netcdf-2.3.2 directory: > CC=/bin/cc > FC=/bin/f77 > FFLAGS= > prefix=/usr/local > # > # Specify the operating system > OS=csos > # > # Ensure that the "native" xdr header files and libraries are used > # > CPP_XDR="/usr/include/rpc" > LD_XDR="-l /usr/lib/libnet.a -l /usr/lib/librpc.a" > > 2) Create an operating system file in the netcdf-2.3.2/fortran directory > named: > csos.m4 > > This is simply the unicos.m4 file with the following change: > < define(`M4__SYSTEM',CSOS) > --- > > define(`M4__SYSTEM', UNICOS) > > 3) Edit the configure script to recognize the LD_XDR definition from above by > commenting out the line which redefines LD_XDR to be nothing: > < # *) LD_XDR=;; > --- > > *) LD_XDR=;; > > 4) Edit the file netcdf-2.3.2/libsrc/netcdf.h to correctly define FILL_BYTE > for the CCC compilers: > < #define FILL_BYTE ((signed char)-127) /* Largest Negative value > */ > --- > > #define FILL_BYTE ((char)-127) /* Largest Negative value > */ > > > We (Cray Computer) would like to know if Unidata is willing to add the > above support to the netcdf install kit so that netcdf correctly installs > on a Cray3 machine? Yes, the changes look small enough that I would have no problem adding them to the source distribution. I would like to be able to identify the platform at run-time so I can integerate these changes into our auto-configure package. For that, I need to know what predefined constant is available for specifying this platform. For example, the UNICOS Cray C compiler predefines the macro "_UNICOS", so I can test on it with statements like #ifdef _UNICOS ... #endif Is there a similar predefined macro for CSOS? > Additionally, we have developed some very efficient, vectorized Cray <==> > IEEE floating point conversion routines. We will be modifying our > xdr_array() implementaion to use these new conversion routines and would > also like to modify some of the netcdf-2.3.2/libsrc modules to use them. > > Basically, a single call would be made to convert an arbitrary number of > values rather than converting a single value at a time from within a loop > as is currently done. The changes should be very minor. Again, we would > like to know if Unidata is willing to add this support (via conditional > compilation directives) to the netcdf sources? We have had several requests for such an optimization, since currently this is the main bottleneck in using the netcdf library on Cray platforms. I would be willing to add this support, via conditional compilation directives. This would be especially useful if it worked for all Cray platforms, not just the Cray 3. __________________________________________________________________________ Russ Rew UCAR Unidata Program address@hidden P.O. Box 3000 (303)497-8645 Boulder, Colorado 80307-3000