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

◆ pdbla1timinfo()

subroutine pdbla1timinfo ( 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,
double precision  alpha,
integer, dimension( * )  work 
)

Definition at line 542 of file pdblas1tim.f.

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