2024
2025
2026
2027
2028
2029
2030
2031 INTEGER INOUT, NPROCS
2032
2033
2034 LOGICAL LTEST( * )
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101 INTEGER NSUBS
2102 parameter( nsubs = 8 )
2103
2104
2105 LOGICAL ABRTSAV
2106 INTEGER I, ICTXT, MYCOL, MYROW, NPCOL, NPROW
2107
2108
2109 INTEGER SCODE( NSUBS )
2110
2111
2112 EXTERNAL blacs_get, blacs_gridexit, blacs_gridinfo,
2113 $ blacs_gridinit,
pcdimee, pcgemv, pcgerc,
2114 $ pcgeru, pchemv, pcher, pcher2,
pcmatee,
2116
2117
2118 LOGICAL ABRTFLG
2119 INTEGER NOUT
2120 CHARACTER*7 SNAMES( NSUBS )
2121 COMMON /snamec/snames
2122 COMMON /pberrorc/nout, abrtflg
2123
2124
2125 DATA scode/21, 22, 23, 23, 24, 24, 26, 27/
2126
2127
2128
2129
2130
2131
2132 CALL blacs_get( -1, 0, ictxt )
2133 CALL blacs_gridinit( ictxt, 'Row-major', 1, nprocs )
2134 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
2135
2136
2137
2138
2139
2140 abrtsav = abrtflg
2141 abrtflg = .false.
2142 nout = inout
2143
2144
2145
2146 i = 1
2147 IF( ltest( i ) ) THEN
2148 CALL pcoptee( ictxt, nout, pcgemv, scode( i ), snames( i ) )
2149 CALL pcdimee( ictxt, nout, pcgemv, scode( i ), snames( i ) )
2150 CALL pcmatee( ictxt, nout, pcgemv, scode( i ), snames( i ) )
2151 CALL pcvecee( ictxt, nout, pcgemv, scode( i ), snames( i ) )
2152 END IF
2153
2154
2155
2156 i = i + 1
2157 IF( ltest( i ) ) THEN
2158 CALL pcoptee( ictxt, nout, pchemv, scode( i ), snames( i ) )
2159 CALL pcdimee( ictxt, nout, pchemv, scode( i ), snames( i ) )
2160 CALL pcmatee( ictxt, nout, pchemv, scode( i ), snames( i ) )
2161 CALL pcvecee( ictxt, nout, pchemv, scode( i ), snames( i ) )
2162 END IF
2163
2164
2165
2166 i = i + 1
2167 IF( ltest( i ) ) THEN
2168 CALL pcoptee( ictxt, nout, pctrmv, scode( i ), snames( i ) )
2169 CALL pcdimee( ictxt, nout, pctrmv, scode( i ), snames( i ) )
2170 CALL pcmatee( ictxt, nout, pctrmv, scode( i ), snames( i ) )
2171 CALL pcvecee( ictxt, nout, pctrmv, scode( i ), snames( i ) )
2172 END IF
2173
2174
2175
2176 i = i + 1
2177 IF( ltest( i ) ) THEN
2178 CALL pcoptee( ictxt, nout, pctrsv, scode( i ), snames( i ) )
2179 CALL pcdimee( ictxt, nout, pctrsv, scode( i ), snames( i ) )
2180 CALL pcmatee( ictxt, nout, pctrsv, scode( i ), snames( i ) )
2181 CALL pcvecee( ictxt, nout, pctrsv, scode( i ), snames( i ) )
2182 END IF
2183
2184
2185
2186 i = i + 1
2187 IF( ltest( i ) ) THEN
2188 CALL pcdimee( ictxt, nout, pcgeru, scode( i ), snames( i ) )
2189 CALL pcvecee( ictxt, nout, pcgeru, scode( i ), snames( i ) )
2190 CALL pcmatee( ictxt, nout, pcgeru, scode( i ), snames( i ) )
2191 END IF
2192
2193
2194
2195 i = i + 1
2196 IF( ltest( i ) ) THEN
2197 CALL pcdimee( ictxt, nout, pcgerc, scode( i ), snames( i ) )
2198 CALL pcvecee( ictxt, nout, pcgerc, scode( i ), snames( i ) )
2199 CALL pcmatee( ictxt, nout, pcgerc, scode( i ), snames( i ) )
2200 END IF
2201
2202
2203
2204 i = i + 1
2205 IF( ltest( i ) ) THEN
2206 CALL pcoptee( ictxt, nout, pcher, scode( i ), snames( i ) )
2207 CALL pcdimee( ictxt, nout, pcher, scode( i ), snames( i ) )
2208 CALL pcvecee( ictxt, nout, pcher, scode( i ), snames( i ) )
2209 CALL pcmatee( ictxt, nout, pcher, scode( i ), snames( i ) )
2210 END IF
2211
2212
2213
2214 i = i + 1
2215 IF( ltest( i ) ) THEN
2216 CALL pcoptee( ictxt, nout, pcher2, scode( i ), snames( i ) )
2217 CALL pcdimee( ictxt, nout, pcher2, scode( i ), snames( i ) )
2218 CALL pcvecee( ictxt, nout, pcher2, scode( i ), snames( i ) )
2219 CALL pcmatee( ictxt, nout, pcher2, scode( i ), snames( i ) )
2220 END IF
2221
2222 IF( myrow.EQ.0 .AND. mycol.EQ.0 )
2223 $ WRITE( nout, fmt = 9999 )
2224
2225 CALL blacs_gridexit( ictxt )
2226
2227
2228
2229 abrtflg = abrtsav
2230
2231 9999 FORMAT( 2x, 'Error-exit tests completed.' )
2232
2233 RETURN
2234
2235
2236
subroutine pcvecee(ictxt, nout, subptr, scode, sname)
subroutine pcmatee(ictxt, nout, subptr, scode, sname)
subroutine pcoptee(ictxt, nout, subptr, scode, sname)
subroutine pcdimee(ictxt, nout, subptr, scode, sname)