Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


tests.inc

Go to the documentation of this file.
00001 !/*********************************************************************
00002 ! *   Copyright 1996, UCAR/Unidata
00003 ! *   See netcdf/COPYRIGHT file for copying and redistribution conditions.
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 !/* The following prevents non-FORTRAN code from appearing in the output. */
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 !/* Parameters of test data */
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 ! * Limits of external types (based on those in ncx.h):
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 ! * Examples of invalid argument values:
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 ! * Internal data types:
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 ! * Define a macro for trimming trailing blanks from character variables.
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 /* UD_TESTS_INC */
00124 
00125 
00126 #include "../fortran/netcdf.inc"
00127 
00128 
00129 !    /* Global variables - filenames */
00130 
00131       CHARACTER*80      testfile        !/* netCDF read-only test data */
00132       CHARACTER*80      scratch         !/* netCDF test file for writing */
00133 
00134 !    /* Global variables - command-line arguments */
00135 
00136       LOGICAL   CREATE_FILE
00137       LOGICAL   READONLY
00138       LOGICAL   VERBOSE
00139       INTEGER   NFAILS
00140       INTEGER   MAX_NMPT        !/* max num messages per test */
00141 
00142 !    /* Global variables - test data */
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 !    /* Miscellaneous global variables: */
00161       CHARACTER*80              PROGNAME        !/* name of the program */
00162       INTEGER                   NFAILSTOTAL
00163 
00164 !    /* Common blocks for global variables: */
00165 
00166       COMMON    /LOGCOM/        CREATE_FILE,
00167      *                          READONLY,       !/* don't try to change files */
00168      *                          VERBOSE         !/* print details of tests */
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,         !/* number of failures in 
00179      *                                          ! * specific test */
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 !    /* Functions for accessing attribute test data */
00196 !    /* varid is -1 for NC_GLOBAL so can do global atts in same loop */
00197 
00198 !/*      EXTERNAL       ATT_NAME */
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
 

Powered by Plone

This site conforms to the following standards: