summaryrefslogtreecommitdiffstats
path: root/fortran/examples/run-fortran-ex.sh.in
blob: cace1aefdb3f40d0fa15ebceb654e7d983fe4b19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#! /bin/sh
#
# Copyright by The HDF Group.
# All rights reserved.
#
# This file is part of HDF5.  The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the COPYING file, which can be found at the root of the source code
# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.

#
#  This file:  run-hlfortran-ex.sh
# Written by:  Larry Knox
#       Date:  May 11, 2010
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#                                                                               #
# This script will compile and run the fortran examples from source files       #
# installed in .../share/hdf5_examples/fortran using h5fc or h5pfc.  The        #
# order for running programs with RunTest in the MAIN section below is taken    #
# from the Makefile.  The order is important since some of the test programs    #
# use data files created by earlier test programs.  Any future additions should #
# be placed accordingly.                                                        #
#                                                                               #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

# Initializations
EXIT_SUCCESS=0
EXIT_FAILURE=1

# Where the tool is installed.
# default is relative path to installed location of the tools
prefix="${prefix:-@prefix@}"
PARALLEL=@PARALLEL@             # Am I in parallel mode?
AR="@AR@"
RANLIB="@RANLIB@"
if [ "$PARALLEL" = no ]; then
    H5TOOL="h5fc"               # The tool name
else
    H5TOOL="h5pfc"               # The tool name
fi
H5TOOL_BIN="${prefix}/bin/${H5TOOL}"   # The path of the tool binary


#### Run test ####
RunTest()
{
    TEST_EXEC=$1
    Test=$1".f90"

    echo
    echo "#################  $1  #################"
    ${H5TOOL_BIN} -o $TEST_EXEC $Test
    if [ $? -ne 0 ]
    then
        echo "messed up compiling $Test"
        exit 1
    fi
    ./$TEST_EXEC
}

F2003_ENABLED=@HAVE_FORTRAN_2003@

##################  MAIN  ##################

# Run tests
if [ $? -eq 0 ]
then
    if (RunTest h5_crtdat &&\
        rm h5_crtdat &&\
        RunTest h5_rdwt &&\
        rm h5_rdwt &&\
        RunTest h5_crtatt &&\
        rm h5_crtatt &&\
        RunTest h5_crtgrp &&\
        rm h5_crtgrp &&\
        RunTest h5_crtgrpar &&\
        rm h5_crtgrpar &&\
        RunTest h5_crtgrpd &&\
        rm h5_crtgrpd &&\
        RunTest h5_extend &&\
        rm h5_extend &&\
        RunTest h5_subset &&\
        rm h5_subset &&\
        RunTest h5_cmprss &&\
        rm h5_cmprss &&\
        RunTest hyperslab &&\
        rm hyperslab &&\
        RunTest selectele &&\
        rm selectele &&\
        RunTest refobjexample &&\
        rm refobjexample &&\
        RunTest refregexample &&\
        rm refregexample &&\
        RunTest mountexample &&\
        rm mountexample &&\
        RunTest compound &&\
        rm compound); then
        EXIT_VALUE=${EXIT_SUCCESS}
    else
        EXIT_VALUE=${EXIT_FAILURE}
    fi
fi

if [ $EXIT_VALUE -eq ${EXIT_SUCCESS} -a "$F2003_ENABLED" = "yes" ]
then
# Add attention tests for Fortran 2003 features
    if (RunTest rwdset_fortran2003 &&\
        rm rwdset_fortran2003 &&\
        RunTest nested_derived_type &&\
        rm nested_derived_type &&\
        RunTest compound_fortran2003 &&\
        rm compound_fortran2003 &&\
        RunTest compound_complex_fortran2003 &&\
        rm compound_complex_fortran2003); then
        EXIT_VALUE=${EXIT_SUCCESS}
    else
        EXIT_VALUE=${EXIT_FAILURE}
    fi
fi
  

# Cleanup
rm *.o
rm *.h5
echo

exit $EXIT_VALUE