1734
 1735
 1736
 1737
 1738
 1739
 1740
 1741      INTEGER            ICTXT, INCX, INCY, INFO, IX, IY, JX, JY, N,
 1742     $                   NOUT
 1743      DOUBLE PRECISION   ALPHA
 1744
 1745
 1746      CHARACTER*(*)      SNAME
 1747      INTEGER            DESCX( * ), DESCY( * )
 1748
 1749
 1750
 1751
 1752
 1753
 1754
 1755
 1756
 1757
 1758
 1759
 1760
 1761
 1762
 1763
 1764
 1765
 1766
 1767
 1768
 1769
 1770
 1771
 1772
 1773
 1774
 1775
 1776
 1777
 1778
 1779
 1780
 1781
 1782
 1783
 1784
 1785
 1786
 1787
 1788
 1789
 1790
 1791
 1792
 1793
 1794
 1795
 1796
 1797
 1798
 1799
 1800
 1801
 1802
 1803
 1804
 1805
 1806
 1807
 1808
 1809
 1810
 1811
 1812
 1813
 1814
 1815
 1816
 1817
 1818
 1819
 1820
 1821
 1822
 1823
 1824
 1825
 1826
 1827
 1828
 1829
 1830
 1831
 1832
 1833
 1834
 1835
 1836
 1837
 1838
 1839
 1840
 1841
 1842
 1843
 1844
 1845
 1846
 1847
 1848
 1849
 1850
 1851
 1852
 1853
 1854
 1855
 1856
 1857
 1858
 1859
 1860
 1861
 1862
 1863
 1864
 1865
 1866
 1867
 1868
 1869
 1870
 1871
 1872
 1873
 1874
 1875
 1876
 1877
 1878
 1879
 1880
 1881
 1882
 1883
 1884
 1885
 1886
 1887
 1888
 1889
 1890
 1891
 1892      INTEGER            BLOCK_CYCLIC_2D_INB, CSRC_, CTXT_, DLEN_,
 1893     $                   DTYPE_, IMB_, INB_, LLD_, MB_, M_, NB_, N_,
 1894     $                   RSRC_
 1895      parameter( block_cyclic_2d_inb = 2, dlen_ = 11,
 1896     $                   dtype_ = 1, ctxt_ = 2, m_ = 3, n_ = 4,
 1897     $                   imb_ = 5, inb_ = 6, mb_ = 7, nb_ = 8,
 1898     $                   rsrc_ = 9, csrc_ = 10, lld_ = 11 )
 1899
 1900
 1901      INTEGER            I, INCXREF, INCYREF, IXREF, IYREF, JXREF,
 1902     $                   JYREF, MYCOL, MYROW, NPCOL, NPROW, NREF
 1903      DOUBLE PRECISION   ALPHAREF
 1904
 1905
 1906      CHARACTER*15       ARGNAME
 1907      INTEGER            DESCXREF( DLEN_ ), DESCYREF( DLEN_ )
 1908
 1909
 1910      EXTERNAL           blacs_gridinfo, igsum2d
 1911
 1912
 1913      SAVE
 1914
 1915
 1916
 1917
 1918
 1919      CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
 1920
 1921
 1922
 1923      IF( info.EQ.0 ) THEN
 1924
 1925         nref = n
 1926         ixref = ix
 1927         jxref = jx
 1928         DO 10 i = 1, dlen_
 1929            descxref( i ) = descx( i )
 1930   10    CONTINUE
 1931         incxref = incx
 1932         iyref = iy
 1933         jyref = jy
 1934         DO 20 i = 1, dlen_
 1935            descyref( i ) = descy( i )
 1936   20    CONTINUE
 1937         incyref = incy
 1938         alpharef = alpha
 1939
 1940      ELSE
 1941
 1942
 1943
 1944         argname = ' '
 1945         IF( n.NE.nref ) THEN
 1946            WRITE( argname, fmt = '(A)' ) 'N'
 1947         ELSE IF( ix.NE.ixref ) THEN
 1948            WRITE( argname, fmt = '(A)' ) 'IX'
 1949         ELSE IF( jx.NE.jxref ) THEN
 1950            WRITE( argname, fmt = '(A)' ) 'JX'
 1951         ELSE IF( descx( dtype_ ).NE.descxref( dtype_ ) ) THEN
 1952            WRITE( argname, fmt = '(A)' ) 'DESCX( DTYPE_ )'
 1953         ELSE IF( descx( m_ ).NE.descxref( m_ ) ) THEN
 1954            WRITE( argname, fmt = '(A)' ) 'DESCX( M_ )'
 1955         ELSE IF( descx( n_ ).NE.descxref( n_ ) ) THEN
 1956            WRITE( argname, fmt = '(A)' ) 'DESCX( N_ )'
 1957         ELSE IF( descx( imb_ ).NE.descxref( imb_ ) ) THEN
 1958            WRITE( argname, fmt = '(A)' ) 'DESCX( IMB_ )'
 1959         ELSE IF( descx( inb_ ).NE.descxref( inb_ ) ) THEN
 1960            WRITE( argname, fmt = '(A)' ) 'DESCX( INB_ )'
 1961         ELSE IF( descx( mb_ ).NE.descxref( mb_ ) ) THEN
 1962            WRITE( argname, fmt = '(A)' ) 'DESCX( MB_ )'
 1963         ELSE IF( descx( nb_ ).NE.descxref( nb_ ) ) THEN
 1964            WRITE( argname, fmt = '(A)' ) 'DESCX( NB_ )'
 1965         ELSE IF( descx( rsrc_ ).NE.descxref( rsrc_ ) ) THEN
 1966            WRITE( argname, fmt = '(A)' ) 'DESCX( RSRC_ )'
 1967         ELSE IF( descx( csrc_ ).NE.descxref( csrc_ ) ) THEN
 1968            WRITE( argname, fmt = '(A)' ) 'DESCX( CSRC_ )'
 1969         ELSE IF( descx( ctxt_ ).NE.descxref( ctxt_ ) ) THEN
 1970            WRITE( argname, fmt = '(A)' ) 'DESCX( CTXT_ )'
 1971         ELSE IF( descx( lld_ ).NE.descxref( lld_ ) ) THEN
 1972            WRITE( argname, fmt = '(A)' ) 'DESCX( LLD_ )'
 1973         ELSE IF( incx.NE.incxref ) THEN
 1974            WRITE( argname, fmt = '(A)' ) 'INCX'
 1975         ELSE IF( iy.NE.iyref ) THEN
 1976            WRITE( argname, fmt = '(A)' ) 'IY'
 1977         ELSE IF( jy.NE.jyref ) THEN
 1978            WRITE( argname, fmt = '(A)' ) 'JY'
 1979         ELSE IF( descy( dtype_ ).NE.descyref( dtype_ ) ) THEN
 1980            WRITE( argname, fmt = '(A)' ) 'DESCY( DTYPE_ )'
 1981         ELSE IF( descy( m_ ).NE.descyref( m_ ) ) THEN
 1982            WRITE( argname, fmt = '(A)' ) 'DESCY( M_ )'
 1983         ELSE IF( descy( n_ ).NE.descyref( n_ ) ) THEN
 1984            WRITE( argname, fmt = '(A)' ) 'DESCY( N_ )'
 1985         ELSE IF( descy( imb_ ).NE.descyref( imb_ ) ) THEN
 1986            WRITE( argname, fmt = '(A)' ) 'DESCY( IMB_ )'
 1987         ELSE IF( descy( inb_ ).NE.descyref( inb_ ) ) THEN
 1988            WRITE( argname, fmt = '(A)' ) 'DESCY( INB_ )'
 1989         ELSE IF( descy( mb_ ).NE.descyref( mb_ ) ) THEN
 1990            WRITE( argname, fmt = '(A)' ) 'DESCY( MB_ )'
 1991         ELSE IF( descy( nb_ ).NE.descyref( nb_ ) ) THEN
 1992            WRITE( argname, fmt = '(A)' ) 'DESCY( NB_ )'
 1993         ELSE IF( descy( rsrc_ ).NE.descyref( rsrc_ ) ) THEN
 1994            WRITE( argname, fmt = '(A)' ) 'DESCY( RSRC_ )'
 1995         ELSE IF( descy( csrc_ ).NE.descyref( csrc_ ) ) THEN
 1996            WRITE( argname, fmt = '(A)' ) 'DESCY( CSRC_ )'
 1997         ELSE IF( descy( ctxt_ ).NE.descyref( ctxt_ ) ) THEN
 1998            WRITE( argname, fmt = '(A)' ) 'DESCY( CTXT_ )'
 1999         ELSE IF( descy( lld_ ).NE.descyref( lld_ ) ) THEN
 2000            WRITE( argname, fmt = '(A)' ) 'DESCY( LLD_ )'
 2001         ELSE IF( incy.NE.incyref ) THEN
 2002            WRITE( argname, fmt = '(A)' ) 'INCY'
 2003         ELSE IF( alpha.NE.alpharef ) THEN
 2004            WRITE( argname, fmt = '(A)' ) 'ALPHA'
 2005         ELSE
 2006            info = 0
 2007         END IF
 2008
 2009         CALL igsum2d( ictxt, 'All', ' ', 1, 1, info, 1, -1, 0 )
 2010
 2011         IF( myrow.EQ.0 .AND. mycol.EQ.0 ) THEN
 2012
 2013            IF( info.GT.0 ) THEN
 2014               WRITE( nout, fmt = 9999 ) argname, sname
 2015            ELSE
 2016               WRITE( nout, fmt = 9998 ) sname
 2017            END IF
 2018
 2019         END IF
 2020
 2021      END IF
 2022
 2023 9999 FORMAT( 2x, '   ***** Input-only parameter check: ', a,
 2024     $        ' FAILED  changed ', a, ' *****' )
 2025 9998 FORMAT( 2x, '   ***** Input-only parameter check: ', a,
 2026     $        ' PASSED  *****' )
 2027
 2028      RETURN
 2029
 2030
 2031