Doxygen Source Code Documentation
tests.inc
Go to the documentation of this file.00001 !
00002
00003
00004
00005 !!!!
00006 ! Do not tabify this unless you like hitting the 72 char limit !!!
00007 !!!
00008 #ifndef UD_TESTS_INC
00009 #define UD_TESTS_INC
00010
00011
00012 !
00013 #if defined(__osf__)
00014 # undef _POSIX_SOURCE
00015 # define _POSIX_SOURCE
00016 #endif
00017
00018 #define NO_NETCDF_2 1
00019
00020 #include "../fortran/nfconfig.inc"
00021
00022
00023 !
00024
00025 #ifdef NF_INT1_T
00026 # define NF_B 1
00027 #else
00028 # define NF_B 0
00029 #endif
00030 #ifdef NF_INT2_T
00031 # define NF_S 1
00032 #else
00033 # define NF_S 0
00034 #endif
00035 ! Total number of FORTRAN types:
00036 #define NUM_FORTRAN_TYPES (3 + NF_S + NF_B)
00037 #undef NF_B
00038 #undef NF_S
00039
00040 #define NTYPES 6
00041 #define NDIMS 5
00042 #define NVARS 136
00043 #define NRECS 2
00044 #define NGATTS NTYPES
00045 #define RECDIM 1
00046 #define MAX_RANK 3
00047 #define MAX_NELS 64
00048 #define MAX_DIM_LEN 4
00049 #define MAX_NATTS 3
00050
00051
00052 !
00053
00054
00055 #define X_CHAR_MIN 0
00056 #define X_CHAR_MAX 127
00057 #define X_INT1_MIN (-128)
00058 #define X_INT1_MAX 127
00059 #define X_INT2_MIN (-32768)
00060 #define X_INT2_MAX 32767
00061 #define X_INT_MIN (-2147483647-1)
00062 #define X_INT_MAX 2147483647
00063 #if 0
00064 #define X_REAL_MAX 3.4028234663852886e+38
00065 #else
00066 #define X_REAL_MAX 3.4028234663852886e+37
00067 #endif
00068 #define X_REAL_MIN (-X_FLOAT_MAX)
00069 #if 0
00070 #define X_DOUBLE_MAX 1.7976931348623157E+308
00071 #else
00072 #define X_DOUBLE_MAX 1.7976931348623157D+200
00073 #endif
00074 #define X_DOUBLE_MIN (-X_DOUBLE_MAX)
00075
00076 #define X_BYTE_MIN X_INT1_MIN
00077 #define X_BYTE_MAX X_INT1_MAX
00078 #define X_SHORT_MIN X_INT2_MIN
00079 #define X_SHORT_MAX X_INT2_MAX
00080 #define X_FLOAT_MIN X_REAL_MIN
00081 #define X_FLOAT_MAX X_REAL_MAX
00082
00083
00084 !
00085
00086
00087 #define BAD_ID -1
00088 #define BAD_DIMID -1
00089 #define BAD_VARID -2
00090 #define BAD_ATTNUM -1
00091 #define BAD_TYPE 0
00092 #define BAD_FILLMODE -1
00093 #define BAD_NAME 'a+b'
00094
00095
00096 !
00097
00098
00099 #define NFT_UNSPECIFIED 0
00100 #define NFT_TEXT 16
00101 #define NFT_CHAR NFT_TEXT
00102 #define NFT_INT1 17
00103 #define NFT_INT2 18
00104 #define NFT_INT 20
00105 #define NFT_REAL 36
00106 #define NFT_DOUBLE 40
00107
00108
00109 !
00110
00111
00112 #define TRIM(string) string(1:len_trim(string))
00113
00114
00115 !
00116 ! FORTRAN GETARG() subroutine:
00117 !
00118 #ifdef __hpux
00119 # define getarg getarg_
00120 #endif
00121
00122
00123 #endif
00124
00125
00126 #include "../fortran/netcdf.inc"
00127
00128
00129 !
00130
00131 CHARACTER*80 testfile !
00132 CHARACTER*80 scratch !
00133
00134 !
00135
00136 LOGICAL CREATE_FILE
00137 LOGICAL READONLY
00138 LOGICAL VERBOSE
00139 INTEGER NFAILS
00140 INTEGER MAX_NMPT !
00141
00142 !
00143
00144 CHARACTER*2 DIM_NAME(NDIMS)
00145 INTEGER DIM_LEN(NDIMS)
00146 CHARACTER*(2+MAX_RANK) VAR_NAME(NVARS)
00147 INTEGER VAR_TYPE(NVARS)
00148 INTEGER VAR_RANK(NVARS)
00149 INTEGER VAR_DIMID(MAX_RANK,NVARS)
00150 INTEGER VAR_SHAPE(MAX_RANK,NVARS)
00151 INTEGER VAR_NELS(NVARS)
00152 INTEGER VAR_NATTS(NVARS)
00153 CHARACTER*2 ATTNAME(MAX_NATTS,NVARS)
00154 CHARACTER*2 GATT_NAME(NGATTS)
00155 INTEGER ATTTYPE(NGATTS,NVARS)
00156 INTEGER GATT_TYPE(NGATTS)
00157 INTEGER ATTLEN(MAX_NATTS,NVARS)
00158 INTEGER GATT_LEN(NGATTS)
00159
00160 !
00161 CHARACTER*80 PROGNAME !
00162 INTEGER NFAILSTOTAL
00163
00164 !
00165
00166 COMMON /LOGCOM/ CREATE_FILE,
00167 * READONLY, !
00168 * VERBOSE !
00169
00170 COMMON /TXTCOM/ TESTFILE,
00171 * SCRATCH,
00172 * DIM_NAME,
00173 * VAR_NAME,
00174 * ATTNAME,
00175 * GATT_NAME,
00176 * PROGNAME
00177
00178 COMMON /INTCOM/ NFAILS, !
00179
00180 * DIM_LEN,
00181 * VAR_TYPE,
00182 * VAR_RANK,
00183 * VAR_DIMID,
00184 * VAR_SHAPE,
00185 * VAR_NELS,
00186 * VAR_NATTS,
00187 * ATTTYPE,
00188 * GATT_TYPE,
00189 * ATTLEN,
00190 * GATT_LEN,
00191 * MAX_NMPT,
00192 * NFAILSTOTAL
00193
00194
00195 !
00196 !
00197
00198 !
00199
00200 INTEGER VARID
00201 INTEGER NATTS
00202 CHARACTER*2 ATT_NAME
00203 INTEGER ATT_TYPE
00204 INTEGER ATT_LEN
00205
00206
00207 LOGICAL INRANGE
00208 LOGICAL INRANGE_UCHAR
00209 LOGICAL INRANGE_FLOAT
00210
00211 LOGICAL INRANGE3
00212 LOGICAL IN_INTERNAL_RANGE
00213 LOGICAL EQUAL
00214 LOGICAL INT_VEC_EQ
00215 INTEGER ROLL
00216 INTEGER INDEX2INDEXES
00217 INTEGER INDEX2NCINDEXES
00218 INTEGER INDEXES2INDEX
00219 INTEGER NC2DBL
00220 INTEGER DBL2NC
00221 INTEGER LEN_TRIM
00222 DOUBLEPRECISION HASH
00223 DOUBLEPRECISION HASH4
00224 DOUBLEPRECISION HASH_TEXT
00225 DOUBLEPRECISION HASH_INT1
00226 DOUBLEPRECISION HASH_INT2
00227 DOUBLEPRECISION HASH_INT
00228 DOUBLEPRECISION HASH_REAL
00229 DOUBLEPRECISION HASH_DOUBLE
00230 DOUBLEPRECISION INTERNAL_MIN
00231 DOUBLEPRECISION INTERNAL_MAX
00232 DOUBLEPRECISION EXTERNAL_MIN
00233 DOUBLEPRECISION EXTERNAL_MAX