Dec. 8, 1994 Many thanks to Kate Hedstrom for contributing the following patch for HDF3.3r4 on Stardent Titan. Kate can be reached at kate@ahab.rutgers.edu. ----------------------------------------------------------------------- All the tests passed except for the int8 fortran tests. Here is what I had to change. Note that the last patch is for a generic bug. The NCAR Graphics package showed me what to do for Fortran strings on a Titan. Kate Hedstrom *** MAKE.SUN Mon Dec 20 13:19:58 1993 --- MAKE.TITAN Sun Nov 13 07:34:40 1994 *************** *** 58,64 **** SHELL=/bin/sh # Define your machine type ! MACHINE=SUN # Define your C compiler and flags CC= cc --- 58,64 ---- SHELL=/bin/sh # Define your machine type ! MACHINE=TITAN # Define your C compiler and flags CC= cc *************** *** 65,71 **** CFLAGS= -D${MACHINE} -O # Define your FORTRAN compiler ! FC= f77 FFLAGS= # Location where the HDF include files are to be installed --- 65,71 ---- CFLAGS= -D${MACHINE} -O # Define your FORTRAN compiler ! FC= fc FFLAGS= # Location where the HDF include files are to be installed *** src/hdfi.h.orig Thu Oct 6 16:02:44 1994 --- src/hdfi.h Sun Nov 13 22:36:30 1994 *************** *** 51,56 **** --- 51,57 ---- #define DFMT_ALPHA 0x4441 #define DFMT_VP 0x6611 #define DFMT_I860 0x4441 + #define DFMT_TITAN 0x1111 /* I/O library constants */ #define UNIXUNBUFIO 1 *************** *** 138,143 **** --- 139,209 ---- #endif #endif /* SUN */ + + + #if defined(TITAN) || defined(titan) + + #ifndef TITAN + #define TITAN + #endif + + #ifdef GOT_MACHINE + If you get an error on this line more than one machine type has been defined. + Please check your Makefile. + #endif + #define GOT_MACHINE + + #include + #include + #ifndef __GNUC__ + #include + #endif /* __GNUC__ */ + #include + #include + #include /* for unbuffered i/o stuff */ + #define DF_MT DFMT_TITAN + typedef void VOID; + typedef char *VOIDP; + typedef struct + { + char *text; + int length; + } *_fcd; + typedef int bool; + typedef char char8; + typedef unsigned char uchar8; + typedef char int8; + typedef unsigned char uint8; + typedef short int int16; + typedef unsigned short int uint16; + typedef long int int32; + typedef unsigned long int uint32; + typedef int intn; + typedef unsigned int uintn; + typedef int intf; /* size of INTEGERs in Fortran compiler */ + typedef float float32; + typedef double float64; + #define _HUGE /* This should only be defined to a value on the PC */ + #define DF_CAPFNAMES + #define _fcdtocp(desc) (desc->text) + #define FILELIB UNIXBUFIO + #ifndef __STDC__ + #define const + #endif + + /* JPEG #define's - Look in the JPEG docs before changing - (Q) */ + + /* Determine the memory manager we are going to use. Valid values are: */ + /* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */ + /* what each does */ + #define JMEMSYS MEM_ANSI + + #ifdef __GNUC__ + #define HAVE_STDC + #define INCLUDES_ARE_ANSI + #endif + + #endif /* TITAN */ #if defined(IBM6000) || defined(_AIX) *** src/dfufp2i.c.orig Tue Oct 26 15:23:34 1993 --- src/dfufp2i.c Mon Nov 14 10:19:08 1994 *************** *** 138,144 **** fn = HDf2cstring(outfile, *lenfn); ret = DFUfptoimage( *hdim, *vdim, *max, *min, hscale, vscale, data, ! _fcdtocp(palette), fn, *ct_method, *hres, *vres, *compress ); HDfreespace(fn); return(ret); } --- 138,144 ---- fn = HDf2cstring(outfile, *lenfn); ret = DFUfptoimage( *hdim, *vdim, *max, *min, hscale, vscale, data, ! palette, fn, *ct_method, *hres, *vres, *compress ); HDfreespace(fn); return(ret); }