SCALAPACK 2.2.2
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ pcbla1timinfo()

subroutine pcbla1timinfo ( character*( * )  summry,
integer  nout,
integer  nmat,
integer, dimension( ldval )  nval,
integer, dimension( ldval )  mxval,
integer, dimension( ldval )  nxval,
integer, dimension( ldval )  imbxval,
integer, dimension( ldval )  mbxval,
integer, dimension( ldval )  inbxval,
integer, dimension( ldval )  nbxval,
integer, dimension( ldval )  rscxval,
integer, dimension( ldval )  cscxval,
integer, dimension( ldval )  ixval,
integer, dimension( ldval )  jxval,
integer, dimension( ldval )  incxval,
integer, dimension( ldval )  myval,
integer, dimension( ldval )  nyval,
integer, dimension( ldval )  imbyval,
integer, dimension( ldval )  mbyval,
integer, dimension( ldval )  inbyval,
integer, dimension( ldval )  nbyval,
integer, dimension( ldval )  rscyval,
integer, dimension( ldval )  cscyval,
integer, dimension( ldval )  iyval,
integer, dimension( ldval )  jyval,
integer, dimension( ldval )  incyval,
integer  ldval,
integer  ngrids,
integer, dimension( ldpval )  pval,
integer  ldpval,
integer, dimension( ldqval )  qval,
integer  ldqval,
logical, dimension( * )  ltest,
integer  iam,
integer  nprocs,
complex  alpha,
integer, dimension( * )  work 
)

Definition at line 573 of file pcblas1tim.f.

581*
582* -- PBLAS test routine (version 2.0) --
583* University of Tennessee, Knoxville, Oak Ridge National Laboratory,
584* and University of California, Berkeley.
585* April 1, 1998
586*
587* .. Scalar Arguments ..
588 INTEGER IAM, LDPVAL, LDQVAL, LDVAL, NGRIDS, NMAT, NOUT,
589 $ NPROCS
590 COMPLEX ALPHA
591* ..
592* .. Array Arguments ..
593 CHARACTER*( * ) SUMMRY
594 LOGICAL LTEST( * )
595 INTEGER CSCXVAL( LDVAL ), CSCYVAL( LDVAL ),
596 $ IMBXVAL( LDVAL ), IMBYVAL( LDVAL ),
597 $ INBXVAL( LDVAL ), INBYVAL( LDVAL ),
598 $ INCXVAL( LDVAL ), INCYVAL( LDVAL ),
599 $ IXVAL( LDVAL ), IYVAL( LDVAL ), JXVAL( LDVAL ),
600 $ JYVAL( LDVAL ), MBXVAL( LDVAL ),
601 $ MBYVAL( LDVAL ), MXVAL( LDVAL ),
602 $ MYVAL( LDVAL ), NBXVAL( LDVAL ),
603 $ NBYVAL( LDVAL ), NVAL( LDVAL ), NXVAL( LDVAL ),
604 $ NYVAL( LDVAL ), PVAL( LDPVAL ), QVAL( LDQVAL ),
605 $ RSCXVAL( LDVAL ), RSCYVAL( LDVAL ), WORK( * )
606* ..
607*
608* Purpose
609* =======
610*
611* PCBLA1TIMINFO get the needed startup information for timing various
612* Level 1 PBLAS routines, and transmits it to all processes.
613*
614* Notes
615* =====
616*
617* For packing the information we assumed that the length in bytes of an
618* integer is equal to the length in bytes of a real single precision.
619*
620* Arguments
621* =========
622*
623* SUMMRY (global output) CHARACTER*(*)
624* On exit, SUMMRY is the name of output (summary) file (if
625* any). SUMMRY is only defined for process 0.
626*
627* NOUT (global output) INTEGER
628* On exit, NOUT specifies the unit number for the output file.
629* When NOUT is 6, output to screen, when NOUT is 0, output to
630* stderr. NOUT is only defined for process 0.
631*
632* NMAT (global output) INTEGER
633* On exit, NMAT specifies the number of different test cases.
634*
635* NVAL (global output) INTEGER array
636* On entry, NVAL is an array of dimension LDVAL. On exit, this
637* array contains the values of N to run the code with.
638*
639* MXVAL (global output) INTEGER array
640* On entry, MXVAL is an array of dimension LDVAL. On exit, this
641* array contains the values of DESCX( M_ ) to run the code
642* with.
643*
644* NXVAL (global output) INTEGER array
645* On entry, NXVAL is an array of dimension LDVAL. On exit, this
646* array contains the values of DESCX( N_ ) to run the code
647* with.
648*
649* IMBXVAL (global output) INTEGER array
650* On entry, IMBXVAL is an array of dimension LDVAL. On exit,
651* this array contains the values of DESCX( IMB_ ) to run the
652* code with.
653*
654* MBXVAL (global output) INTEGER array
655* On entry, MBXVAL is an array of dimension LDVAL. On exit,
656* this array contains the values of DESCX( MB_ ) to run the
657* code with.
658*
659* INBXVAL (global output) INTEGER array
660* On entry, INBXVAL is an array of dimension LDVAL. On exit,
661* this array contains the values of DESCX( INB_ ) to run the
662* code with.
663*
664* NBXVAL (global output) INTEGER array
665* On entry, NBXVAL is an array of dimension LDVAL. On exit,
666* this array contains the values of DESCX( NB_ ) to run the
667* code with.
668*
669* RSCXVAL (global output) INTEGER array
670* On entry, RSCXVAL is an array of dimension LDVAL. On exit,
671* this array contains the values of DESCX( RSRC_ ) to run the
672* code with.
673*
674* CSCXVAL (global output) INTEGER array
675* On entry, CSCXVAL is an array of dimension LDVAL. On exit,
676* this array contains the values of DESCX( CSRC_ ) to run the
677* code with.
678*
679* IXVAL (global output) INTEGER array
680* On entry, IXVAL is an array of dimension LDVAL. On exit, this
681* array contains the values of IX to run the code with.
682*
683* JXVAL (global output) INTEGER array
684* On entry, JXVAL is an array of dimension LDVAL. On exit, this
685* array contains the values of JX to run the code with.
686*
687* INCXVAL (global output) INTEGER array
688* On entry, INCXVAL is an array of dimension LDVAL. On exit,
689* this array contains the values of INCX to run the code with.
690*
691* MYVAL (global output) INTEGER array
692* On entry, MYVAL is an array of dimension LDVAL. On exit, this
693* array contains the values of DESCY( M_ ) to run the code
694* with.
695*
696* NYVAL (global output) INTEGER array
697* On entry, NYVAL is an array of dimension LDVAL. On exit, this
698* array contains the values of DESCY( N_ ) to run the code
699* with.
700*
701* IMBYVAL (global output) INTEGER array
702* On entry, IMBYVAL is an array of dimension LDVAL. On exit,
703* this array contains the values of DESCY( IMB_ ) to run the
704* code with.
705*
706* MBYVAL (global output) INTEGER array
707* On entry, MBYVAL is an array of dimension LDVAL. On exit,
708* this array contains the values of DESCY( MB_ ) to run the
709* code with.
710*
711* INBYVAL (global output) INTEGER array
712* On entry, INBYVAL is an array of dimension LDVAL. On exit,
713* this array contains the values of DESCY( INB_ ) to run the
714* code with.
715*
716* NBYVAL (global output) INTEGER array
717* On entry, NBYVAL is an array of dimension LDVAL. On exit,
718* this array contains the values of DESCY( NB_ ) to run the
719* code with.
720*
721* RSCYVAL (global output) INTEGER array
722* On entry, RSCYVAL is an array of dimension LDVAL. On exit,
723* this array contains the values of DESCY( RSRC_ ) to run the
724* code with.
725*
726* CSCYVAL (global output) INTEGER array
727* On entry, CSCYVAL is an array of dimension LDVAL. On exit,
728* this array contains the values of DESCY( CSRC_ ) to run the
729* code with.
730*
731* IYVAL (global output) INTEGER array
732* On entry, IYVAL is an array of dimension LDVAL. On exit, this
733* array contains the values of IY to run the code with.
734*
735* JYVAL (global output) INTEGER array
736* On entry, JYVAL is an array of dimension LDVAL. On exit, this
737* array contains the values of JY to run the code with.
738*
739* INCYVAL (global output) INTEGER array
740* On entry, INCYVAL is an array of dimension LDVAL. On exit,
741* this array contains the values of INCY to run the code with.
742*
743* LDVAL (global input) INTEGER
744* On entry, LDVAL specifies the maximum number of different va-
745* lues that can be used for DESCX(:), IX, JX, INCX, DESCY(:),
746* IY, JY and INCY. This is also the maximum number of test
747* cases.
748*
749* NGRIDS (global output) INTEGER
750* On exit, NGRIDS specifies the number of different values that
751* can be used for P and Q.
752*
753* PVAL (global output) INTEGER array
754* On entry, PVAL is an array of dimension LDPVAL. On exit, this
755* array contains the values of P to run the code with.
756*
757* LDPVAL (global input) INTEGER
758* On entry, LDPVAL specifies the maximum number of different
759* values that can be used for P.
760*
761* QVAL (global output) INTEGER array
762* On entry, QVAL is an array of dimension LDQVAL. On exit, this
763* array contains the values of Q to run the code with.
764*
765* LDQVAL (global input) INTEGER
766* On entry, LDQVAL specifies the maximum number of different
767* values that can be used for Q.
768*
769* LTEST (global output) LOGICAL array
770* On entry, LTEST is an array of dimension at least ten. On
771* exit, if LTEST( i ) is .TRUE., the i-th Level 1 PBLAS routine
772* will be tested. See the input file for the ordering of the
773* routines.
774*
775* IAM (local input) INTEGER
776* On entry, IAM specifies the number of the process executing
777* this routine.
778*
779* NPROCS (global input) INTEGER
780* On entry, NPROCS specifies the total number of processes.
781*
782* ALPHA (global output) COMPLEX
783* On exit, ALPHA specifies the value of alpha to be used in all
784* the test cases.
785*
786* WORK (local workspace) INTEGER array
787* On entry, WORK is an array of dimension at least
788* MAX( 2, 2*NGRIDS+23*NMAT+NSUBS ) with NSUBS = 10. This array
789* is used to pack all output arrays in order to send info in
790* one message.
791*
792* -- Written on April 1, 1998 by
793* Antoine Petitet, University of Tennessee, Knoxville 37996, USA.
794*
795* =====================================================================
796*
797* .. Parameters ..
798 INTEGER NIN, NSUBS
799 parameter( nin = 11, nsubs = 10 )
800* ..
801* .. Local Scalars ..
802 LOGICAL LTESTT
803 INTEGER I, ICTXT, J
804* ..
805* .. Local Arrays ..
806 CHARACTER*7 SNAMET
807 CHARACTER*79 USRINFO
808* ..
809* .. External Subroutines ..
810 EXTERNAL blacs_abort, blacs_get, blacs_gridexit,
811 $ blacs_gridinit, blacs_setup, cgebr2d, cgebs2d,
812 $ icopy, igebr2d, igebs2d, sgebr2d, sgebs2d
813* ..
814* .. Intrinsic Functions ..
815 INTRINSIC max, min
816* ..
817* .. Common Blocks ..
818 CHARACTER*7 SNAMES( NSUBS )
819 COMMON /snamec/snames
820* ..
821* .. Executable Statements ..
822*
823*
824* Process 0 reads the input data, broadcasts to other processes and
825* writes needed information to NOUT
826*
827 IF( iam.EQ.0 ) THEN
828*
829* Open file and skip data file header
830*
831 OPEN( nin, file='PCBLAS1TIM.dat', status='OLD' )
832 READ( nin, fmt = * ) summry
833 summry = ' '
834*
835* Read in user-supplied info about machine type, compiler, etc.
836*
837 READ( nin, fmt = 9999 ) usrinfo
838*
839* Read name and unit number for summary output file
840*
841 READ( nin, fmt = * ) summry
842 READ( nin, fmt = * ) nout
843 IF( nout.NE.0 .AND. nout.NE.6 )
844 $ OPEN( nout, file = summry, status = 'UNKNOWN' )
845*
846* Read and check the parameter values for the tests.
847*
848* Get number of grids
849*
850 READ( nin, fmt = * ) ngrids
851 IF( ngrids.LT.1 .OR. ngrids.GT.ldpval ) THEN
852 WRITE( nout, fmt = 9998 ) 'Grids', ldpval
853 GO TO 100
854 ELSE IF( ngrids.GT.ldqval ) THEN
855 WRITE( nout, fmt = 9998 ) 'Grids', ldqval
856 GO TO 100
857 END IF
858*
859* Get values of P and Q
860*
861 READ( nin, fmt = * ) ( pval( i ), i = 1, ngrids )
862 READ( nin, fmt = * ) ( qval( i ), i = 1, ngrids )
863*
864* Read ALPHA
865*
866 READ( nin, fmt = * ) alpha
867*
868* Read number of tests.
869*
870 READ( nin, fmt = * ) nmat
871 IF( nmat.LT.1 .OR. nmat.GT.ldval ) THEN
872 WRITE( nout, fmt = 9998 ) 'Tests', ldval
873 GO TO 100
874 END IF
875*
876* Read in input data into arrays.
877*
878 READ( nin, fmt = * ) ( nval( i ), i = 1, nmat )
879 READ( nin, fmt = * ) ( mxval( i ), i = 1, nmat )
880 READ( nin, fmt = * ) ( nxval( i ), i = 1, nmat )
881 READ( nin, fmt = * ) ( imbxval( i ), i = 1, nmat )
882 READ( nin, fmt = * ) ( inbxval( i ), i = 1, nmat )
883 READ( nin, fmt = * ) ( mbxval( i ), i = 1, nmat )
884 READ( nin, fmt = * ) ( nbxval( i ), i = 1, nmat )
885 READ( nin, fmt = * ) ( rscxval( i ), i = 1, nmat )
886 READ( nin, fmt = * ) ( cscxval( i ), i = 1, nmat )
887 READ( nin, fmt = * ) ( ixval( i ), i = 1, nmat )
888 READ( nin, fmt = * ) ( jxval( i ), i = 1, nmat )
889 READ( nin, fmt = * ) ( incxval( i ), i = 1, nmat )
890 READ( nin, fmt = * ) ( myval( i ), i = 1, nmat )
891 READ( nin, fmt = * ) ( nyval( i ), i = 1, nmat )
892 READ( nin, fmt = * ) ( imbyval( i ), i = 1, nmat )
893 READ( nin, fmt = * ) ( inbyval( i ), i = 1, nmat )
894 READ( nin, fmt = * ) ( mbyval( i ), i = 1, nmat )
895 READ( nin, fmt = * ) ( nbyval( i ), i = 1, nmat )
896 READ( nin, fmt = * ) ( rscyval( i ), i = 1, nmat )
897 READ( nin, fmt = * ) ( cscyval( i ), i = 1, nmat )
898 READ( nin, fmt = * ) ( iyval( i ), i = 1, nmat )
899 READ( nin, fmt = * ) ( jyval( i ), i = 1, nmat )
900 READ( nin, fmt = * ) ( incyval( i ), i = 1, nmat )
901*
902* Read names of subroutines and flags which indicate
903* whether they are to be tested.
904*
905 DO 10 i = 1, nsubs
906 ltest( i ) = .false.
907 10 CONTINUE
908 20 CONTINUE
909 READ( nin, fmt = 9996, END = 50 ) SNAMET, ltestt
910 DO 30 i = 1, nsubs
911 IF( snamet.EQ.snames( i ) )
912 $ GO TO 40
913 30 CONTINUE
914*
915 WRITE( nout, fmt = 9995 )snamet
916 GO TO 100
917*
918 40 CONTINUE
919 ltest( i ) = ltestt
920 GO TO 20
921*
922 50 CONTINUE
923*
924* Close input file
925*
926 CLOSE ( nin )
927*
928* For pvm only: if virtual machine not set up, allocate it and
929* spawn the correct number of processes.
930*
931 IF( nprocs.LT.1 ) THEN
932 nprocs = 0
933 DO 60 i = 1, ngrids
934 nprocs = max( nprocs, pval( i )*qval( i ) )
935 60 CONTINUE
936 CALL blacs_setup( iam, nprocs )
937 END IF
938*
939* Temporarily define blacs grid to include all processes so
940* information can be broadcast to all processes
941*
942 CALL blacs_get( -1, 0, ictxt )
943 CALL blacs_gridinit( ictxt, 'Row-major', 1, nprocs )
944*
945* Pack information arrays and broadcast
946*
947 CALL cgebs2d( ictxt, 'All', ' ', 1, 1, alpha, 1 )
948*
949 work( 1 ) = ngrids
950 work( 2 ) = nmat
951 CALL igebs2d( ictxt, 'All', ' ', 2, 1, work, 2 )
952*
953 i = 1
954 CALL icopy( ngrids, pval, 1, work( i ), 1 )
955 i = i + ngrids
956 CALL icopy( ngrids, qval, 1, work( i ), 1 )
957 i = i + ngrids
958 CALL icopy( nmat, nval, 1, work( i ), 1 )
959 i = i + nmat
960 CALL icopy( nmat, mxval, 1, work( i ), 1 )
961 i = i + nmat
962 CALL icopy( nmat, nxval, 1, work( i ), 1 )
963 i = i + nmat
964 CALL icopy( nmat, imbxval, 1, work( i ), 1 )
965 i = i + nmat
966 CALL icopy( nmat, inbxval, 1, work( i ), 1 )
967 i = i + nmat
968 CALL icopy( nmat, mbxval, 1, work( i ), 1 )
969 i = i + nmat
970 CALL icopy( nmat, nbxval, 1, work( i ), 1 )
971 i = i + nmat
972 CALL icopy( nmat, rscxval, 1, work( i ), 1 )
973 i = i + nmat
974 CALL icopy( nmat, cscxval, 1, work( i ), 1 )
975 i = i + nmat
976 CALL icopy( nmat, ixval, 1, work( i ), 1 )
977 i = i + nmat
978 CALL icopy( nmat, jxval, 1, work( i ), 1 )
979 i = i + nmat
980 CALL icopy( nmat, incxval, 1, work( i ), 1 )
981 i = i + nmat
982 CALL icopy( nmat, myval, 1, work( i ), 1 )
983 i = i + nmat
984 CALL icopy( nmat, nyval, 1, work( i ), 1 )
985 i = i + nmat
986 CALL icopy( nmat, imbyval, 1, work( i ), 1 )
987 i = i + nmat
988 CALL icopy( nmat, inbyval, 1, work( i ), 1 )
989 i = i + nmat
990 CALL icopy( nmat, mbyval, 1, work( i ), 1 )
991 i = i + nmat
992 CALL icopy( nmat, nbyval, 1, work( i ), 1 )
993 i = i + nmat
994 CALL icopy( nmat, rscyval, 1, work( i ), 1 )
995 i = i + nmat
996 CALL icopy( nmat, cscyval, 1, work( i ), 1 )
997 i = i + nmat
998 CALL icopy( nmat, iyval, 1, work( i ), 1 )
999 i = i + nmat
1000 CALL icopy( nmat, jyval, 1, work( i ), 1 )
1001 i = i + nmat
1002 CALL icopy( nmat, incyval, 1, work( i ), 1 )
1003 i = i + nmat
1004*
1005 DO 70 j = 1, nsubs
1006 IF( ltest( j ) ) THEN
1007 work( i ) = 1
1008 ELSE
1009 work( i ) = 0
1010 END IF
1011 i = i + 1
1012 70 CONTINUE
1013 i = i - 1
1014 CALL igebs2d( ictxt, 'All', ' ', i, 1, work, i )
1015*
1016* regurgitate input
1017*
1018 WRITE( nout, fmt = 9999 )
1019 $ 'Level 1 PBLAS timing program.'
1020 WRITE( nout, fmt = 9999 ) usrinfo
1021 WRITE( nout, fmt = * )
1022 WRITE( nout, fmt = 9999 )
1023 $ 'Timing of the complex single precision '//
1024 $ 'Level 1 PBLAS'
1025 WRITE( nout, fmt = * )
1026 WRITE( nout, fmt = 9999 )
1027 $ 'The following parameter values will be used:'
1028 WRITE( nout, fmt = * )
1029 WRITE( nout, fmt = 9993 ) nmat
1030 WRITE( nout, fmt = 9992 ) ngrids
1031 WRITE( nout, fmt = 9990 )
1032 $ 'P', ( pval(i), i = 1, min(ngrids, 5) )
1033 IF( ngrids.GT.5 )
1034 $ WRITE( nout, fmt = 9991 ) ( pval(i), i = 6,
1035 $ min( 10, ngrids ) )
1036 IF( ngrids.GT.10 )
1037 $ WRITE( nout, fmt = 9991 ) ( pval(i), i = 11,
1038 $ min( 15, ngrids ) )
1039 IF( ngrids.GT.15 )
1040 $ WRITE( nout, fmt = 9991 ) ( pval(i), i = 16, ngrids )
1041 WRITE( nout, fmt = 9990 )
1042 $ 'Q', ( qval(i), i = 1, min(ngrids, 5) )
1043 IF( ngrids.GT.5 )
1044 $ WRITE( nout, fmt = 9991 ) ( qval(i), i = 6,
1045 $ min( 10, ngrids ) )
1046 IF( ngrids.GT.10 )
1047 $ WRITE( nout, fmt = 9991 ) ( qval(i), i = 11,
1048 $ min( 15, ngrids ) )
1049 IF( ngrids.GT.15 )
1050 $ WRITE( nout, fmt = 9991 ) ( qval(i), i = 16, ngrids )
1051 WRITE( nout, fmt = 9994 ) alpha
1052 IF( ltest( 1 ) ) THEN
1053 WRITE( nout, fmt = 9989 ) snames( 1 ), ' ... Yes'
1054 ELSE
1055 WRITE( nout, fmt = 9989 ) snames( 1 ), ' ... No '
1056 END IF
1057 DO 80 i = 2, nsubs
1058 IF( ltest( i ) ) THEN
1059 WRITE( nout, fmt = 9988 ) snames( i ), ' ... Yes'
1060 ELSE
1061 WRITE( nout, fmt = 9988 ) snames( i ), ' ... No '
1062 END IF
1063 80 CONTINUE
1064 WRITE( nout, fmt = * )
1065*
1066 ELSE
1067*
1068* If in pvm, must participate setting up virtual machine
1069*
1070 IF( nprocs.LT.1 )
1071 $ CALL blacs_setup( iam, nprocs )
1072*
1073* Temporarily define blacs grid to include all processes so
1074* information can be broadcast to all processes
1075*
1076 CALL blacs_get( -1, 0, ictxt )
1077 CALL blacs_gridinit( ictxt, 'Row-major', 1, nprocs )
1078*
1079 CALL cgebr2d( ictxt, 'All', ' ', 1, 1, alpha, 1, 0, 0 )
1080*
1081 CALL igebr2d( ictxt, 'All', ' ', 2, 1, work, 2, 0, 0 )
1082 ngrids = work( 1 )
1083 nmat = work( 2 )
1084*
1085 i = 2*ngrids + 23*nmat + nsubs
1086 CALL igebr2d( ictxt, 'All', ' ', i, 1, work, i, 0, 0 )
1087*
1088 i = 1
1089 CALL icopy( ngrids, work( i ), 1, pval, 1 )
1090 i = i + ngrids
1091 CALL icopy( ngrids, work( i ), 1, qval, 1 )
1092 i = i + ngrids
1093 CALL icopy( nmat, work( i ), 1, nval, 1 )
1094 i = i + nmat
1095 CALL icopy( nmat, work( i ), 1, mxval, 1 )
1096 i = i + nmat
1097 CALL icopy( nmat, work( i ), 1, nxval, 1 )
1098 i = i + nmat
1099 CALL icopy( nmat, work( i ), 1, imbxval, 1 )
1100 i = i + nmat
1101 CALL icopy( nmat, work( i ), 1, inbxval, 1 )
1102 i = i + nmat
1103 CALL icopy( nmat, work( i ), 1, mbxval, 1 )
1104 i = i + nmat
1105 CALL icopy( nmat, work( i ), 1, nbxval, 1 )
1106 i = i + nmat
1107 CALL icopy( nmat, work( i ), 1, rscxval, 1 )
1108 i = i + nmat
1109 CALL icopy( nmat, work( i ), 1, cscxval, 1 )
1110 i = i + nmat
1111 CALL icopy( nmat, work( i ), 1, ixval, 1 )
1112 i = i + nmat
1113 CALL icopy( nmat, work( i ), 1, jxval, 1 )
1114 i = i + nmat
1115 CALL icopy( nmat, work( i ), 1, incxval, 1 )
1116 i = i + nmat
1117 CALL icopy( nmat, work( i ), 1, myval, 1 )
1118 i = i + nmat
1119 CALL icopy( nmat, work( i ), 1, nyval, 1 )
1120 i = i + nmat
1121 CALL icopy( nmat, work( i ), 1, imbyval, 1 )
1122 i = i + nmat
1123 CALL icopy( nmat, work( i ), 1, inbyval, 1 )
1124 i = i + nmat
1125 CALL icopy( nmat, work( i ), 1, mbyval, 1 )
1126 i = i + nmat
1127 CALL icopy( nmat, work( i ), 1, nbyval, 1 )
1128 i = i + nmat
1129 CALL icopy( nmat, work( i ), 1, rscyval, 1 )
1130 i = i + nmat
1131 CALL icopy( nmat, work( i ), 1, cscyval, 1 )
1132 i = i + nmat
1133 CALL icopy( nmat, work( i ), 1, iyval, 1 )
1134 i = i + nmat
1135 CALL icopy( nmat, work( i ), 1, jyval, 1 )
1136 i = i + nmat
1137 CALL icopy( nmat, work( i ), 1, incyval, 1 )
1138 i = i + nmat
1139*
1140 DO 90 j = 1, nsubs
1141 IF( work( i ).EQ.1 ) THEN
1142 ltest( j ) = .true.
1143 ELSE
1144 ltest( j ) = .false.
1145 END IF
1146 i = i + 1
1147 90 CONTINUE
1148*
1149 END IF
1150*
1151 CALL blacs_gridexit( ictxt )
1152*
1153 RETURN
1154*
1155 100 WRITE( nout, fmt = 9997 )
1156 CLOSE( nin )
1157 IF( nout.NE.6 .AND. nout.NE.0 )
1158 $ CLOSE( nout )
1159 CALL blacs_abort( ictxt, 1 )
1160*
1161 stop
1162*
1163 9999 FORMAT( a )
1164 9998 FORMAT( ' Number of values of ',5a, ' is less than 1 or greater ',
1165 $ 'than ', i2 )
1166 9997 FORMAT( ' Illegal input in file ',40a,'. Aborting run.' )
1167 9996 FORMAT( a7, l2 )
1168 9995 FORMAT( ' Subprogram name ', a7, ' not recognized',
1169 $ /' ******* TESTS ABANDONED *******' )
1170 9994 FORMAT( 2x, 'Alpha : (', g16.6,
1171 $ ',', g16.6, ')' )
1172 9993 FORMAT( 2x, 'Number of Tests : ', i6 )
1173 9992 FORMAT( 2x, 'Number of process grids : ', i6 )
1174 9991 FORMAT( 2x, ' : ', 5i6 )
1175 9990 FORMAT( 2x, a1, ' : ', 5i6 )
1176 9989 FORMAT( 2x, 'Routines to be tested : ', a, a8 )
1177 9988 FORMAT( 2x, ' ', a, a8 )
1178*
1179* End of PCBLA1TIMINFO
1180*
subroutine icopy(n, sx, incx, sy, incy)
Definition pblastst.f:1525
#define max(A, B)
Definition pcgemr.c:180
#define min(A, B)
Definition pcgemr.c:181
Here is the call graph for this function:
Here is the caller graph for this function: