648 SUBROUTINE DMUMPS_SAVE_RESTORE_STRUCTURE(id,unit,mode
649 & ,NBVARIABLES,SIZE_VARIABLES,SIZE_GEST
650 & ,NBVARIABLES_ROOT,SIZE_VARIABLES_ROOT,SIZE_GEST_ROOT
651 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
652 & ,INFO1,INFO2,INFOG1,INFOG2)
653 USE DMUMPS_FACSOL_L0OMP_M, ONLY : DMUMPS_SAVE_RESTORE_L0FACARRAY
656 INTEGER,intent(in)::unit,NBVARIABLES,NBVARIABLES_ROOT
657 CHARACTER(len=*),intent(in) :: mode
658 INTEGER(8),dimension(NBVARIABLES)::SIZE_VARIABLES
659 INTEGER(8),dimension(NBVARIABLES_ROOT)::SIZE_VARIABLES_ROOT
660 INTEGER,dimension(NBVARIABLES)::SIZE_GEST
661 INTEGER,dimension(NBVARIABLES_ROOT)::SIZE_GEST_ROOT
662 INTEGER(8) :: TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
663 INTEGER:: INFO1,INFO2,INFOG1,INFOG2
664 INTEGER:: j,i1,i2,err,ierr
665 CHARACTER(len=30), allocatable, dimension(:)::VARIABLES
666 CHARACTER(len=30), allocatable, dimension(:)::VARIABLES_ROOT
667 CHARACTER(len=30) :: TMP_STRING1, TMP_STRING2
668 CHARACTER :: ARITH,READ_ARITH
669 INTEGER(8) :: size_written,gest_size,WRITTEN_STRUC_SIZE
670 INTEGER:: SIZE_INT, SIZE_INT8, SIZE_RL_OR_DBL, SIZE_ARITH_DEP
671 INTEGER:: SIZE_DOUBLE_PRECISION, SIZE_LOGICAL, SIZE_CHARACTER
672 INTEGER:: READ_NPROCS, READ_PAR, READ_SYM
673 INTEGER,dimension(NBVARIABLES)::NbRecords
674 INTEGER,dimension(NBVARIABLES_ROOT)::NbRecords_ROOT
675 INTEGER:: size_array1,size_array2,dummy,allocok
676 INTEGER(8):: size_array_INT8_1,size_array_INT8_2
677 LOGICAL:: INT_TYPE_64, READ_INT_TYPE_64
678 INTEGER:: tot_NbRecords,NbSubRecords
679 INTEGER(8):: size_read,size_allocated
680 INTEGER(8),dimension(NBVARIABLES)::DIFF_SIZE_ALLOC_READ
681 INTEGER(8),dimension(NBVARIABLES_ROOT)::DIFF_SIZE_ALLOC_READ_ROOT
682 INTEGER::READ_OOC_FILE_NAME_LENGTH
683 CHARACTER(len=LEN_SAVE_FILE):: READ_OOC_FIRST_FILE_NAME
684 INTEGER,dimension(4)::OOC_INDICES
685 CHARACTER(len=8) :: date
686 CHARACTER(len=10) :: time
687 CHARACTER(len=5) :: zone
688 INTEGER,dimension(8):: values
689 CHARACTER(len=23) :: hash,READ_HASH
690 LOGICAL:: BASIC_CHECK
691 LOGICAL :: FORTRAN_VERSION_OK
692 CHARACTER(len=1) :: TMP_OOC_NAMES(350)
693 INTEGER(8)::SIZE_VARIABLES_BLR,SIZE_VARIABLES_FRONT_DATA,
694 & SIZE_VARIABLES_L0FAC
695 INTEGER::SIZE_GEST_BLR,SIZE_GEST_FRONT_DATA,SIZE_GEST_L0FAC
696 INTEGER :: KEEP411_SAVE
698 TYPE (DMUMPS_STRUC) :: id
699 allocate(VARIABLES(NBVARIABLES), stat=allocok)
700.GT.
if (allocok 0) THEN
702 id%INFO(2) = NBVARIABLES
704 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
706.LT.
IF ( id%INFO(1) 0 ) GOTO 100
707 VARIABLES(186)="associated_ooc_files
"
708 VARIABLES(185)="pad16
"
709 VARIABLES(184)="deficiency
"
710 VARIABLES(183)="nb_singular_values
"
711 VARIABLES(182)="singular_values
"
712 VARIABLES(181)="mpitoomp_procs_map
"
713 VARIABLES(180)="l0_omp_mapping
"
714 VARIABLES(179)="ptr_leafs_l0_omp
"
715 VARIABLES(178)="perm_l0_omp
"
716 VARIABLES(177)="virt_l0_omp_mapping
"
717 VARIABLES(176)="virt_l0_omp
"
718 VARIABLES(175)="phys_l0_omp
"
719 VARIABLES(174)="ipool_a_l0_omp
"
720 VARIABLES(173)="ipool_b_l0_omp
"
721 VARIABLES(172)="i8_l0_omp
"
722 VARIABLES(171)="i4_l0_omp
"
723 VARIABLES(170)="thread_la
"
724 VARIABLES(169)="ll0_omp_factors
"
725 VARIABLES(168)="ll0_omp_mapping
"
726 VARIABLES(167)="l_virt_l0_omp
"
727 VARIABLES(166)="l_phys_l0_omp
"
728 VARIABLES(165)="lpool_b_l0_omp"
729 variables(164)=
"LPOOL_A_L0_OMP"
730 variables(163)=
"L0_OMP_FACTORS"
731 variables(162)=
"BLRARRAY_ENCODING"
732 variables(161)=
"FDM_F_ENCODING"
733 variables(160)=
"pad13"
734 variables(159)=
"NBGRP"
735 variables(158)=
"LRGROUPS"
736 variables(157)=
"root"
737 variables(156)=
"WORKING"
738 variables(155)=
"IPTR_WORKING"
739 variables(154)=
"pad14"
740 variables(153)=
"SUP_PROC"
741 variables(152)=
"PIVNUL_LIST"
742 variables(151)=
"OOC_FILE_NAMES"
743 variables(150)=
"OOC_FILE_NAME_LENGTH"
744 variables(149)=
"pad12"
745 variables(148)=
"OOC_NB_FILE_TYPE"
746 variables(147)=
"OOC_NB_FILES"
747 variables(146)=
"OOC_TOTAL_NB_NODES"
748 variables(145)=
"OOC_VADDR"
749 variables(144)=
"OOC_SIZE_OF_BLOCK"
750 variables(143)=
"OOC_INODE_SEQUENCE"
751 variables(142)=
"OOC_MAX_NB_NODES_FOR_ZONE"
752 variables(141)=
"INSTANCE_NUMBER"
753 variables(140)=
"CB_SON_SIZE"
754 variables(139)=
"DKEEP"
755 variables(138)=
"LWK_USER"
756 variables(137)=
"NBSA_LOCAL"
757 variables(136)=
"WK_USER"
758 variables(135)=
"CROIX_MANU"
759 variables(134)=
"SCHED_SBTR"
760 variables(133)=
"SCHED_GRP"
761 variables(132)=
"SCHED_DEP"
762 variables(131)=
"SBTR_ID"
763 variables(130)=
"DEPTH_FIRST_SEQ"
764 variables(129)=
"DEPTH_FIRST"
765 variables(128)=
"MY_NB_LEAF"
766 variables(127)=
"MY_FIRST_LEAF"
767 variables(126)=
"MY_ROOT_SBTR"
768 variables(125)=
"COST_TRAV"
769 variables(124)=
"MEM_SUBTREE"
770 variables(123)=
"RHSCOMP"
771 variables(122)=
"POSINRHSCOMP_COL"
772 variables(121)=
"pad11"
773 variables(120)=
"POSINRHSCOMP_COL_ALLOC"
774 variables(119)=
"POSINRHSCOMP_ROW"
775 variables(118)=
"MEM_DIST"
776 variables(117)=
"I_AM_CAND"
777 variables(116)=
"TAB_POS_IN_PERE"
778 variables(115)=
"FUTURE_NIV2"
779 variables(114)=
"ISTEP_TO_INIV2"
780 variables(113)=
"CANDIDATES"
781 variables(112)=
"ELTPROC"
782 variables(111)=
"LELTVAR"
783 variables(110)=
"NELT_loc"
784 variables(109)=
"DBLARR"
785 variables(108)=
"INTARR"
786 variables(107)=
"PROCNODE"
788 variables(105)=
"PTRFAC"
789 variables(104)=
"PTLUST_S"
790 variables(103)=
"Step2node"
791 variables(102)=
"PROCNODE_STEPS"
793 variables(100)=
"PTRAR"
794 variables(99)=
"FRTELT"
795 variables(98)=
"FRTPTR"
797 variables(96)=
"DAD_STEPS"
798 variables(95)=
"FRERE_STEPS"
799 variables(94)=
"ND_STEPS"
800 variables(93)=
"NE_STEPS"
806 variables(87)=
"ASS_IRECV"
807 variables(86)=
"NSLAVES"
808 variables(85)=
"NPROCS"
810 variables(83)=
"COMM_LOAD"
811 variables(82)=
"MYID_NODES"
812 variables(81)=
"COMM_NODES"
813 variables(80)=
"INST_Number"
814 variables(79)=
"MAX_SURF_MASTER"
815 variables(78)=
"KEEP8"
817 variables(76)=
"SAVE_PREFIX"
818 variables(75)=
"SAVE_DIR"
819 variables(74)=
"WRITE_PROBLEM"
820 variables(73)=
"OOC_PREFIX"
821 variables(72)=
"OOC_TMPDIR"
822 variables(71)=
"VERSION_NUMBER"
823 variables(70)=
"MAPPING"
824 variables(69)=
"LISTVAR_SCHUR"
825 variables(68)=
"SCHUR_CINTERFACE"
826 variables(67)=
"SCHUR"
827 variables(66)=
"SIZE_SCHUR"
828 variables(65)=
"SCHUR_LLD"
829 variables(64)=
"SCHUR_NLOC"
830 variables(63)=
"SCHUR_MLOC"
831 variables(62)=
"NBLOCK"
832 variables(61)=
"MBLOCK"
833 variables(60)=
"NPCOL"
834 variables(59)=
"NPROW"
835 variables(58)=
"UNS_PERM"
836 variables(57)=
"SYM_PERM"
837 variables(56)=
"METIS_OPTIONS"
838 variables(55)=
"RINFOG"
839 variables(54)=
"RINFO"
841 variables(52)=
"COST_SUBTREES"
842 variables(51)=
"INFOG"
844 variables(49)=
"ICNTL"
846 variables(47)=
"LSOL_loc"
847 variables(46)=
"LREDRHS"
848 variables(45)=
"LRHS_loc"
849 variables(44)=
"Nloc_RHS"
850 variables(43)=
"NZ_RHS"
853 variables(40)=
"IRHS_loc"
854 variables(39)=
"ISOL_loc"
855 variables(38)=
"IRHS_PTR"
856 variables(37)=
"IRHS_SPARSE"
857 variables(36)=
"RHS_loc"
858 variables(35)=
"SOL_loc"
859 variables(34)=
"RHS_SPARSE"
860 variables(33)=
"REDRHS"
862 variables(31)=
"BLKVAR"
863 variables(30)=
"BLKPTR"
866 variables(27)=
"PERM_IN"
868 variables(25)=
"A_ELT"
869 variables(24)=
"ELTVAR"
870 variables(23)=
"ELTPTR"
874 variables(19)=
"A_loc"
875 variables(18)=
"JCN_loc"
876 variables(17)=
"IRN_loc"
877 variables(16)=
"NNZ_loc"
879 variables(14)=
"NZ_loc"
881 variables(12)=
"ROWSCA"
882 variables(11)=
"COLSCA"
893 allocate(variables_root(nbvariables_root), stat=allocok)
894 if (allocok .GT. 0)
THEN
896 id%INFO(2) = nbvariables_root
900 IF ( id%INFO(1) .LT. 0 )
GOTO 100
901 variables_root(35)=
"rootpad4"
902 variables_root(34)=
"NB_SINGULAR_VALUES"
903 variables_root(33)=
"SINGULAR_VALUES"
904 variables_root(32)=
"SVD_VT"
905 variables_root(31)=
"SVD_U"
906 variables_root(30)=
"gridinit_done"
907 variables_root(29)=
"yes"
908 variables_root(28)=
"rootpad3"
909 variables_root(27)=
"QR_RCOND"
910 variables_root(26)=
"rootpad"
911 variables_root(25)=
"RHS_ROOT"
912 variables_root(24)=
"rootpad2"
913 variables_root(23)=
"QR_TAU"
914 variables_root(22)=
"SCHUR_POINTER"
915 variables_root(21)=
"RHS_CNTR_MASTER_ROOT"
916 variables_root(20)=
"rootpad1"
917 variables_root(19)=
"IPIV"
918 variables_root(18)=
"RG2L_COL"
919 variables_root(17)=
"RG2L_ROW"
920 variables_root(16)=
"rootpad0"
921 variables_root(15)=
"LPIV"
922 variables_root(14)=
"CNTXT_BLACS"
923 variables_root(13)=
"DESCRIPTOR"
924 variables_root(12)=
"TOT_ROOT_SIZE"
925 variables_root(11)=
"ROOT_SIZE"
926 variables_root(10)=
"RHS_NLOC"
927 variables_root(9)=
"SCHUR_LLD"
928 variables_root
"SCHUR_NLOC"
929 variables_root(7)=
"SCHUR_MLOC"
930 variables_root(6)=
"MYCOL"
931 variables_root(5)=
"MYROW"
932 variables_root(4)=
"NPCOL"
933 variables_root(3)=
"NPROW"
934 variables_root(2)=
"NBLOCK"
935 variables_root(1)=
"MBLOCK"
936 ooc_indices=(/147,148,150,151/)
937 size_int = id%KEEP(34)
938 size_int8 = id%KEEP(34)*id%KEEP(10)
939 size_rl_or_dbl = id%KEEP(16)
940 size_arith_dep = id%KEEP(35)
941 size_double_precision = 8
944 size_written=int(0,kind=8)
948 size_read=int(0,kind=8)
949 size_allocated=int(0,kind=8)
950 diff_size_alloc_read(:)=0
951 diff_size_alloc_read_root(:)=0
952 written_struc_size=int(0,kind=8)
954 size_variables_blr=0_8
956 size_variables_front_data=0_8
958 size_variables_l0fac=0
960 if(trim(mode).EQ.
"memory_save")
then
961 elseif(trim(mode).EQ.
"save")
then
962 write(unit,iostat=err)
"MUMPS"
970 IF ( id%INFO(1) .LT. 0 )
GOTO 100
971 size_written=size_written+int(5*size_character,kind=8)
972#if !defined(MUMPS_F2003)
973 size_written=size_written
974 & +int(2*id%KEEP(34)*1,kind=8)
976 IF(id%MYID.EQ.0)
THEN
977 call date_and_time(date,time,zone,values)
978 hash=trim(date)//trim(time)//trim(zone)
980 CALL mpi_bcast( hash, 23, mpi_character, 0, id%COMM, ierr )
981 write(unit,iostat=err) hash
989 IF ( id%INFO(1) .LT. 0 )
GOTO 100
990 size_written=size_written+int(23*size_character,kind=8)
991#if !defined(MUMPS_F2003)
992 size_written=size_written
993 & +int(2*id%KEEP(34)*1,kind=8)
995 write(unit,iostat=err) total_file_size,total_struc_size
1002 & id%COMM, id%MYID )
1003 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1004 size_written=size_written+int(2*size_int8,kind=8)
1005#if !defined(MUMPS_F2003)
1006 size_written=size_written
1007 & +int(2*id%KEEP(34)*1,kind=8)
1010 write(unit,iostat=err) arith
1017 & id%COMM, id%MYID )
1018 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1019 size_written=size_written+int(1,kind=8)
1020#if !defined(MUMPS_F2003)
1021 size_written=size_written
1022 & +int(2*id%KEEP(34)*1,kind=8)
1024 write(unit,iostat=err) id%SYM,id%PAR,id%NPROCS
1031 & id%COMM, id%MYID )
1032 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1033 size_written=size_written+int(3*size_int,kind=8)
1034#if !defined(MUMPS_F2003)
1035 size_written=size_written
1036 & +int(2*id%KEEP(34)*1,kind=8)
1038 IF(id%KEEP(10).EQ.1)
THEN
1043 write(unit,iostat=err) int_type_64
1050 & id%COMM, id%MYID )
1051 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1052 size_written=size_written+int(size_logical,kind=8)
1053#if !defined(MUMPS_F2003)
1054 size_written=size_written
1055 & +int(2*id%KEEP(34)*1,kind=8)
1057 IF(
associated(id%OOC_FILE_NAME_LENGTH).AND.
1058 &
associated(id%OOC_FILE_NAMES))
THEN
1059 write(unit,iostat=err) id%OOC_FILE_NAME_LENGTH(1)
1066 & id%COMM, id%MYID )
1067 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1068 size_written=size_written+int(size_int,kind=8)
1069#if !defined(MUMPS_F2003)
1070 size_written=size_written
1071 & +int(2*id%KEEP(34)*1,kind=8)
1073 tmp_ooc_names(1:id%OOC_FILE_NAME_LENGTH(1))=
1074 & id%OOC_FILE_NAMES(1,1:id%OOC_FILE_NAME_LENGTH(1))
1075 write(unit,iostat=err)
1076 & tmp_ooc_names(1:id%OOC_FILE_NAME_LENGTH(1))
1083 & id%COMM, id%MYID )
1084 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1085 size_written=size_written
1086 & +int(id%OOC_FILE_NAME_LENGTH(1)*size_character,kind=8)
1087#if !defined(MUMPS_F2003)
1088 size_written=size_written
1089 & +int(2*id%KEEP(34)*1,kind=8)
1092 write(unit,iostat=err) -999
1099 & id%COMM, id%MYID )
1100 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1101 size_written=size_written+int(size_int,kind=8)
1102#if !defined(MUMPS_F2003)
1103 size_written=size_written
1104 & +int(2*id%KEEP(34)*1,kind=8)
1106 write(unit,iostat=err) -999
1113 & id%COMM, id%MYID )
1114 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1115 size_written=size_written+int(size_int,kind=8)
1116#if !defined(MUMPS_F2003)
1117 size_written=size_written
1118 & +int(2*id%KEEP(34)*1,kind=8)
1121 elseif((trim(mode).EQ.
"restore").OR.
1122 & (trim(mode).EQ.
"restore_ooc"))
then
1124 & total_file_size, total_struc_size, read_arith,
1125 & read_int_type_64, read_ooc_file_name_length,
1126 & read_ooc_first_file_name,read_hash,
1127 & read_sym,read_par,read_nprocs,fortran_version_ok)
1132 elseif (.NOT.fortran_version_ok)
THEN
1137 & id%COMM, id%MYID )
1138 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1139 basic_check = .false.
1140 IF (trim(mode).EQ.
"restore_ooc")
THEN
1141 basic_check = .true.
1144 & read_hash, read_nprocs,
1145 & read_arith, read_sym, read_par)
1146 IF (id%INFO(1) .LT. 0)
GOTO 100
1147 elseif(trim(mode).EQ.
"fake_restore")
then
1148 read(unit,iostat=err) read_hash
1149 if(err.ne.0)
GOTO 100
1150 read(unit,iostat=err) total_file_size,total_struc_size
1151 if(err.ne.0)
GOTO 100
1152 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1157 DO j=1,
size(ooc_indices)
1159 tmp_string1 = variables(i1)
1160 SELECT CASE(tmp_string1)
1161 CASE(
"OOC_NB_FILES")
1163 if(trim(mode).EQ.
"memory_save")
then
1164 IF(
associated(id%OOC_NB_FILES))
THEN
1165 size_gest(i1)=size_int
1166 size_variables(i1)=
size(id%OOC_NB_FILES,1)*size_int
1168 size_gest(i1)=size_int*2
1169 size_variables(i1)=0_8
1171 elseif(trim(mode).EQ.
"save")
then
1172 IF(
associated(id%OOC_NB_FILES))
THEN
1173 write(unit,iostat=err)
size
1180 & id%COMM, id%MYID )
1181 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1182 write(unit,iostat=err) id%OOC_NB_FILES
1184 write(unit,iostat=err) -999
1191 & id%COMM, id%MYID )
1192 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1193 write(unit,iostat=err) -999
1201 & id%COMM, id%MYID )
1202 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1203 elseif((trim(mode).EQ.
"restore").OR.
1204 & (trim(mode).EQ.
"restore_ooc"))
then
1205 nullify(id%OOC_NB_FILES)
1206 read(unit,iostat=err) size_array1
1213 & id%COMM, id%MYID )
1214 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1215 if(size_array1.EQ.-999)
then
1216 size_gest(i1)=size_int*2
1217 size_variables(i1)=0_8
1218 read(unit,iostat=err) dummy
1220 size_gest(i1)=size_int
1221 size_variables(i1)=size_array1*size_int
1222 allocate(id%OOC_NB_FILES(size_array1), stat=allocok)
1223 if (allocok .GT. 0)
THEN
1226 & total_struc_size-size_allocated
1229 read(unit,iostat=err) id%OOC_NB_FILES
1232 & id%COMM, id%MYID )
1233 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1240 & id%COMM, id%MYID )
1241 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1243 CASE(
"OOC_NB_FILE_TYPE")
1245 if(trim(mode).EQ.
"memory_save")
then
1246 size_variables(i1)=size_int
1247 elseif(trim(mode).EQ.
"save")
then
1248 write(unit,iostat=err) id%OOC_NB_FILE_TYPE
1255 & id%COMM, id%MYID )
1256 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1257 elseif((trim(mode).EQ.
"restore").OR.
1258 & (trim(mode).EQ.
"restore_ooc"))
then
1259 size_variables(i1)=size_int
1260 read(unit,iostat=err) id%OOC_NB_FILE_TYPE
1267 & id%COMM, id%MYID )
1268 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1270 CASE(
"OOC_FILE_NAMES")
1272 if(trim(mode).EQ.
"memory_save")
then
1273 IF(
associated(id%OOC_FILE_NAMES))
THEN
1274 size_gest(i1)=size_int
1275 size_variables(i1)=
size(id%OOC_FILE_NAMES,1)
1276 & *
size(id%OOC_FILE_NAMES,2)*size_character
1278 size_gest(i1)=size_int*3
1279 size_variables(i1)=0_8
1281 elseif(trim(mode).EQ.
"save")
then
1282 IF(
associated(id%OOC_FILE_NAMES))
THEN
1283 write(unit,iostat=err)
size(id%OOC_FILE_NAMES,1)
1284 & ,
size(id%OOC_FILE_NAMES,2)
1291 & id%COMM, id%MYID )
1292 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1293 write(unit,iostat=err) id%OOC_FILE_NAMES
1295 write(unit,iostat=err) -999,-998
1302 & id%COMM, id%MYID )
1303 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1304 write(unit,iostat=err) -999
1312 & id%COMM, id%MYID )
1313 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1314 elseif((trim(mode).EQ.
"restore").OR.
1315 & (trim(mode).EQ.
"restore_ooc"))
then
1316 nullify(id%OOC_FILE_NAMES)
1317 read(unit,iostat=err) size_array1,size_array2
1324 & id%COMM, id%MYID )
1325 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1326 if(size_array1.EQ.-999)
then
1327 size_gest(i1)=size_int*3
1328 size_variables(i1)=0_8
1329 read(unit,iostat=err) dummy
1331 size_gest(i1)=size_int*2
1332 size_variables(i1)=size_array1*size_array2
1334 allocate(id%OOC_FILE_NAMES(size_array1,size_array2),
1336 if (allocok .GT. 0)
THEN
1339 & total_struc_size-size_allocated
1342 read(unit,iostat=err) id%OOC_FILE_NAMES
1345 & id%COMM, id%MYID )
1346 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1353 & id%COMM, id%MYID )
1354 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1356 CASE(
"OOC_FILE_NAME_LENGTH")
1358 if(trim(mode).EQ.
"memory_save")
then
1359 IF(
associated(id%OOC_FILE_NAME_LENGTH))
THEN
1360 size_gest(i1)=size_int
1362 &
size(id%OOC_FILE_NAME_LENGTH,1)*size_int
1364 size_gest(i1)=size_int*2
1365 size_variables(i1)=0_8
1367 elseif(trim(mode).EQ.
"save")
then
1368 IF(
associated(id%OOC_FILE_NAME_LENGTH))
THEN
1369 write(unit,iostat=err)
size(id%OOC_FILE_NAME_LENGTH,1)
1376 & id%COMM, id%MYID )
1377 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1378 write(unit,iostat=err) id%OOC_FILE_NAME_LENGTH
1380 write(unit,iostat=err) -999
1387 & id%COMM, id%MYID )
1388 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1389 write(unit,iostat=err) -999
1397 & id%COMM, id%MYID )
1398 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1399 elseif((trim(mode).EQ.
"restore").OR.
1400 & (trim(mode).EQ.
"restore_ooc"))
then
1401 nullify(id%OOC_FILE_NAME_LENGTH)
1402 read(unit,iostat=err) size_array1
1409 & id%COMM, id%MYID )
1410 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1411 if(size_array1.EQ.-999)
then
1412 size_gest(i1)=size_int*2
1413 size_variables(i1)=0_8
1414 read(unit,iostat=err) dummy
1416 size_gest(i1)=size_int
1417 size_variables(i1)=size_array1*size_int
1418 allocate(id%OOC_FILE_NAME_LENGTH(size_array1),
1420 if (allocok .GT. 0)
THEN
1423 & total_struc_size-size_allocated
1426 read(unit,iostat=err) id%OOC_FILE_NAME_LENGTH
1429 & id%COMM, id%MYID )
1430 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1437 & id%COMM, id%MYID )
1438 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1443 if(trim(mode).EQ.
"restore_ooc")
then
1447 tmp_string1 = variables(i1)
1448 SELECT CASE(tmp_string1)
1450 if(trim(mode).EQ.
"memory_save")
then
1451 diff_size_alloc_read(i1)=size_int
1452 elseif(trim(mode).EQ.
"save")
then
1453 diff_size_alloc_read(i1)=size_int
1454 elseif(trim(mode).EQ.
"restore")
then
1455 diff_size_alloc_read(i1)=size_int
1459 if(trim(mode).EQ.
"memory_save")
then
1460 size_variables(i1)=size_int
1461 elseif(trim(mode).EQ.
"save")
then
1462 write(unit,iostat=err) id%SYM
1469 & id%COMM, id%MYID )
1470 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1471 elseif(trim(mode).EQ.
"restore")
then
1472 size_variables(i1)=size_int
1473 read(unit,iostat=err) id%SYM
1480 & id%COMM, id%MYID )
1481 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1485.EQ.
if(trim(mode)"memory_save
") then
1486 SIZE_VARIABLES(i1)=SIZE_INT
1487.EQ.
elseif(trim(mode)"save") then
1488 write(unit,iostat=err) id%PAR
1491 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1494 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1495 & id%COMM, id%MYID )
1496.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1497.EQ.
elseif(trim(mode)"restore
") then
1498 SIZE_VARIABLES(i1)=SIZE_INT
1499 read(unit,iostat=err) id%PAR
1502 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1505 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1506 & id%COMM, id%MYID )
1507.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1510.EQ.
if(trim(mode)"memory_save
") then
1511 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT
1512.EQ.
elseif(trim(mode)"save") then
1513 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT
1514.EQ.
elseif(trim(mode)"restore
") then
1515 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT
1519.EQ.
if(trim(mode)"memory_save
") then
1520 SIZE_VARIABLES(i1)=SIZE_INT
1521.EQ.
elseif(trim(mode)"save") then
1522 write(unit,iostat=err) id%N
1525 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1528 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1529 & id%COMM, id%MYID )
1530.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1531.EQ.
elseif(trim(mode)"restore
") then
1532 SIZE_VARIABLES(i1)=SIZE_INT
1533 read(unit,iostat=err) id%N
1536 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1539 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1540 & id%COMM, id%MYID )
1541.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1545.EQ.
if(trim(mode)"memory_save
") then
1546 SIZE_VARIABLES(i1)=SIZE_INT*size(id%ICNTL,1)
1547.EQ.
elseif(trim(mode)"save") then
1548 write(unit,iostat=err) id%ICNTL
1551 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1554 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1555 & id%COMM, id%MYID )
1556.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1557.EQ.
elseif(trim(mode)"restore
") then
1558 SIZE_VARIABLES(i1)=SIZE_INT*size(id%ICNTL,1)
1559 read(unit,iostat=err) id%ICNTL
1562 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1565 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1566 & id%COMM, id%MYID )
1567.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1571.EQ.
if(trim(mode)"memory_save
") then
1572 SIZE_VARIABLES(i1)=SIZE_INT*size(id%INFO,1)
1573.EQ.
elseif(trim(mode)"save") then
1574 write(unit,iostat=err) INFO1,INFO2
1575 & ,id%INFO(3:size(id%INFO,1))
1578 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1581 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1582 & id%COMM, id%MYID )
1583.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1584.EQ.
elseif(trim(mode)"restore
") then
1585 SIZE_VARIABLES(i1)=SIZE_INT*size(id%INFO,1)
1586 read(unit,iostat=err) INFO1,INFO2
1587 & ,id%INFO(3:size(id%INFO,1))
1590 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1593 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1594 & id%COMM, id%MYID )
1595.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1599.EQ.
if(trim(mode)"memory_save
") then
1600 SIZE_VARIABLES(i1)=SIZE_INT*size(id%INFOG,1)
1601.EQ.
elseif(trim(mode)"save") then
1602 write(unit,iostat=err) INFOG1,INFOG2
1603 & ,id%INFOG(3:size(id%INFOG,1))
1606 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1609 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1610 & id%COMM, id%MYID )
1611.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1612.EQ.
elseif(trim(mode)"restore
") then
1613 SIZE_VARIABLES(i1)=SIZE_INT*size(id%INFOG,1)
1614 read(unit,iostat=err) INFOG1,INFOG2
1615 & ,id%INFOG(3:size(id%INFOG,1))
1618 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1621 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1622 & id%COMM, id%MYID )
1623.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1625 CASE("cost_subtrees
")
1627.EQ.
if(trim(mode)"memory_save
") then
1628 SIZE_VARIABLES(i1)=SIZE_RL_OR_DBL
1629.EQ.
elseif(trim(mode)"save") then
1630 write(unit,iostat=err) id%COST_SUBTREES
1633 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1636 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1637 & id%COMM, id%MYID )
1638.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1639.EQ.
elseif(trim(mode)"restore
") then
1640 SIZE_VARIABLES(i1)=SIZE_RL_OR_DBL
1641 read(unit,iostat=err) id%COST_SUBTREES
1644 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1647 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1648 & id%COMM, id%MYID )
1649.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1653.EQ.
if(trim(mode)"memory_save
") then
1654 SIZE_VARIABLES(i1)=SIZE_RL_OR_DBL*size(id%CNTL,1)
1655.EQ.
elseif(trim(mode)"save") then
1656 write(unit,iostat=err) id%CNTL
1659 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1662 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1663 & id%COMM, id%MYID )
1664.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1665.EQ.
elseif(trim(mode)"restore
") then
1666 SIZE_VARIABLES(i1)=SIZE_RL_OR_DBL*size(id%CNTL,1)
1667 read(unit,iostat=err) id%CNTL
1670 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1673 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1674 & id%COMM, id%MYID )
1675.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1679.EQ.
if(trim(mode)"memory_save
") then
1680 SIZE_VARIABLES(i1)=SIZE_RL_OR_DBL*size(id%RINFO,1)
1681.EQ.
elseif(trim(mode)"save") then
1682 write(unit,iostat=err) id%RINFO
1685 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1688 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1689 & id%COMM, id%MYID )
1690.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1691.EQ.
elseif(trim(mode)"restore")
then
1692 size_variables(i1)=size_rl_or_dbl*
size(id%RINFO,1)
1693 read(unit,iostat=err) id%RINFO
1700 & id%COMM, id%MYID )
1701 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1705 if(trim(mode).EQ.
"memory_save")
then
1706 size_variables(i1
size(id%RINFOG,1)
1707 elseif(trim(mode).EQ.
"save")
then
1708 write(unit,iostat=err) id%RINFOG
1715 & id%COMM, id%MYID )
1716 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1717 elseif(trim(mode).EQ.
"restore")
then
1718 size_variables(i1)=size_rl_or_dbl*
size(id%RINFOG,1)
1719 read(unit,iostat=err) id%RINFOG
1726 & id%COMM, id%MYID )
1727 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1731 if(trim(mode).EQ.
"memory_save")
then
1732 size_variables(i1)=size_int8*
size(id%KEEP8,1)
1733 elseif(trim(mode).EQ.
"save")
then
1734 write(unit,iostat=err) id%KEEP8
1741 & id%COMM, id%MYID )
1742 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1743 elseif(trim(mode).EQ.
"restore")
then
1744 size_variables(i1)=size_int8*
size(id%KEEP8,1)
1745 read(unit,iostat=err) id%KEEP8
1752 & id%COMM, id%MYID )
1753 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1757 if(trim(mode).EQ.
"memory_save")
then
1758 size_variables(i1)=size_int*
size(id%KEEP,1)
1759 elseif(trim(mode).EQ.
"save")
then
1760 write(unit,iostat=err) id%KEEP
1767 & id%COMM, id%MYID )
1768 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1769 elseif(trim(mode).EQ.
"restore")
then
1770 size_variables(i1)=size_int*
size(id%KEEP,1)
1771 keep411_save = id%KEEP(411)
1772 read(unit,iostat=err) id%KEEP
1773 id%KEEP(411) = keep411_save
1780 & id%COMM, id%MYID )
1781 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1785 if(trim(mode).EQ.
"memory_save")
then
1786 size_variables(i1)=size_rl_or_dbl*
size(id%DKEEP,1)
1787 elseif(trim(mode).EQ.
"save")
then
1788 write(unit,iostat=err) id%DKEEP
1795 & id%COMM, id%MYID )
1796 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1797 elseif(trim(mode).EQ.
"restore")
then
1798 size_variables(i1)=size_rl_or_dbl*
size(id%DKEEP,1)
1799 read(unit,iostat=err) id%DKEEP
1806 & id%COMM, id%MYID )
1807 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1811 if(trim(mode).EQ.
"memory_save")
then
1812 size_variables(i1)=size_int
1813 elseif(trim(mode).EQ.
"save")
then
1814 write(unit,iostat=err) id%NZ
1821 & id%COMM, id%MYID )
1822 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1823 elseif(trim(mode).EQ.
"restore")
then
1824 size_variables(i1)=size_int
1825 read(unit,iostat=err) id%NZ
1832 & id%COMM, id%MYID )
1833 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1837 if(trim(mode).EQ.
"memory_save")
then
1838 size_variables(i1)=size_int8
1839 elseif(trim(mode).EQ.
"save")
then
1840 write(unit,iostat=err) id%NNZ
1847 & id%COMM, id%MYID )
1848 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1849 elseif(trim(mode).EQ.
"restore")
then
1850 size_variables(i1)=size_int8
1851 read(unit,iostat=err) id%NNZ
1858 & id%COMM, id%MYID )
1859 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1865 IF(id%KEEP(52).NE.-1)
THEN
1867 if(trim(mode).EQ.
"memory_save")
then
1868 IF(
associated(id%COLSCA))
THEN
1869 size_gest(i1)=size_int
1870 size_variables(i1)=
size(id%COLSCA,1)*size_rl_or_dbl
1872 size_gest(i1)=size_int*2
1873 size_variables(i1)=0_8
1875 elseif(trim(mode).EQ.
"save")
then
1876 IF(
associated(id%COLSCA))
THEN
1877 write(unit,iostat=err)
size(id%COLSCA,1)
1881 & total_file_size-size_written,
1884 write(unit,iostat=err) id%COLSCA
1886 write(unit,iostat=err) -999
1890 & total_file_size-size_written,
1893 write(unit,iostat=err) -999
1901 & id%COMM, id%MYID )
1902 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1903 elseif(trim(mode).EQ.
"restore")
then
1905 read(unit,iostat=err) size_array1
1912 & id%COMM, id%MYID )
1913 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1914 if(size_array1.EQ.-999)
then
1915 size_gest(i1)=size_int*2
1916 size_variables(i1)=0_8
1917 read(unit,iostat=err) dummy
1919 size_gest(i1)=size_int
1920 size_variables(i1)=size_array1*size_rl_or_dbl
1921 allocate(id%COLSCA(size_array1), stat=allocok)
1922 if (allocok .GT. 0)
THEN
1925 & total_struc_size-size_allocated
1928 read(unit,iostat=err) id%COLSCA
1931 & id%COMM, id%MYID )
1932 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1939 & id%COMM, id%MYID )
1940 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1945 IF(id%KEEP(52).NE.-1)
THEN
1947 if(trim(mode).EQ.
"memory_save")
then
1948 IF(
associated(id%ROWSCA))
THEN
1949 size_gest(i1)=size_int
1950 size_variables(i1)=
size(id%ROWSCA,1)*size_rl_or_dbl
1952 size_gest(i1)=size_int*2
1953 size_variables(i1)=0_8
1955 elseif(trim(mode).EQ.
"save")
then
1956 IF(
associated(id%ROWSCA))
THEN
1957 write(unit,iostat=err)
size(id%ROWSCA,1)
1961 & total_file_size-size_written,
1964 write(unit,iostat=err) id%ROWSCA
1966 write(unit,iostat=err) -999
1970 & total_file_size-size_written,
1973 write(unit,iostat=err) -999
1981 & id%COMM, id%MYID )
1982 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1983 elseif(trim(mode).EQ.
"restore")
then
1985 read(unit,iostat=err) size_array1
1992 & id%COMM, id%MYID )
1993 IF ( id%INFO(1) .LT. 0 )
GOTO 100
1994 if(size_array1.EQ.-999)
then
1995 size_gest(i1)=size_int*2
1996 size_variables(i1)=0_8
1997 read(unit,iostat=err) dummy
1999 size_gest(i1)=size_int
2000 size_variables(i1)=size_array1*size_rl_or_dbl
2001 allocate(id%ROWSCA(size_array1), stat=allocok)
2002 if (allocok .GT. 0)
THEN
2005 & total_struc_size-size_allocated
2008 read(unit,iostat=err) id%ROWSCA
2011 & id%COMM, id%MYID )
2012 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2019 & id%COMM, id%MYID )
2020 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2026 if(trim(mode).EQ.
"memory_save")
then
2027 size_variables(i1)=size_int
2028 elseif(trim(mode).EQ.
"save")
then
2029 write(unit,iostat=err) id%NZ_loc
2036 & id%COMM, id%MYID )
2037 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2038 elseif(trim(mode).EQ.
"restore")
then
2039 size_variables(i1)=size_int
2040 read(unit,iostat=err) id%NZ_loc
2047 & id%COMM, id%MYID )
2048 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2052 if(trim(mode).EQ.
"memory_save")
then
2053 size_variables(i1)=size_int8
2054 elseif(trim(mode).EQ.
"save")
then
2055 write(unit,iostat=err) id%NNZ_loc
2062 & id%COMM, id%MYID )
2063 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2064 elseif(trim(mode).EQ.
"restore")
then
2065 size_variables(i1)=size_int8
2066 read(unit,iostat=err) id%NNZ_loc
2073 & id%COMM, id%MYID )
2074 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2081 if(trim(mode).EQ.
"memory_save")
then
2082 size_variables(i1)=size_int
2083 elseif(trim(mode).EQ.
"save")
then
2084 write(unit,iostat=err) id%NELT
2091 & id%COMM, id%MYID )
2092 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2093 elseif(trim(mode).EQ.
"restore")
then
2094 size_variables(i1)=size_int
2095 read(unit,iostat=err) id%NELT
2102 & id%COMM, id%MYID )
2103 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2107 if(trim(mode).EQ.
"memory_save")
then
2108 size_variables(i1)=size_int
2109 elseif(trim(mode).EQ.
"save")
then
2110 write(unit,iostat=err) id%NBLK
2117 & id%COMM, id%MYID )
2118 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2119 elseif(trim(mode).EQ.
"restore")
then
2120 size_variables(i1)=size_int
2121 read(unit,iostat=err) id%NBLK
2128 & id%COMM, id%MYID )
2129 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2148 if(trim(mode).EQ.
"memory_save")
then
2149 size_variables(i1)=size_int
2150 elseif(trim(mode).EQ.
"save")
then
2151 write(unit,iostat=err) id%LRHS
2158 & id%COMM, id%MYID )
2159 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2160 elseif(trim(mode).EQ.
"restore")
then
2161 size_variables(i1)=size_int
2162 read(unit,iostat=err) id%LRHS
2169 & id%COMM, id%MYID )
2170 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2174 if(trim(mode).EQ.
"memory_save")
then
2175 size_variables(i1)=size_int
2176 elseif(trim(mode).EQ.
"save")
then
2177 write(unit,iostat=err) id%NRHS
2184 & id%COMM, id%MYID )
2185 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2186 elseif(trim(mode).EQ.
"restore")
then
2187 size_variables(i1)=size_int
2188 read(unit,iostat=err) id%NRHS
2195 & id%COMM, id%MYID )
2196 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2200 if(trim(mode).EQ.
"memory_save")
then
2201 size_variables(i1)=size_int
2202 elseif(trim(mode).EQ.
"save")
then
2203 write(unit,iostat=err) id%NZ_RHS
2210 & id%COMM, id%MYID )
2211 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2212 elseif(trim(mode).EQ.
"restore")
then
2213 size_variables(i1)=size_int
2214 read(unit,iostat=err) id%NZ_RHS
2221 & id%COMM, id%MYID )
2222 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2228 if(trim(mode).EQ.
"memory_save")
then
2229 size_variables(i1)=size_int
2230 elseif(trim(mode).EQ.
"save")
then
2231 write(unit,iostat=err) id%LSOL_loc
2238 & id%COMM, id%MYID )
2239 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2240 elseif(trim(mode).EQ.
"restore")
then
2241 size_variables(i1)=size_int
2242 read(unit,iostat=err) id%LSOL_loc
2249 & id%COMM, id%MYID )
2250 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2254 if(trim(mode).EQ.
"memory_save")
then
2255 size_variables(i1)=size_int
2256 elseif(trim(mode).EQ.
"save")
then
2257 write(unit,iostat=err) id%LREDRHS
2264 & id%COMM, id%MYID )
2265 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2266 elseif(trim(mode).EQ.
"restore")
then
2267 size_variables(i1)=size_int
2268 read(unit,iostat=err) id%LREDRHS
2275 & id%COMM, id%MYID )
2276 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2280 if(trim(mode).EQ.
"memory_save")
then
2282 IF(
associated(id%SYM_PERM))
THEN
2283 size_gest(i1)=size_int
2284 size_variables(i1)=
size(id%SYM_PERM,1)*size_int
2286 size_gest(i1)=size_int*2
2287 size_variables(i1)=0_8
2289 elseif(trim(mode).EQ.
"save")
then
2290 IF(
associated(id%SYM_PERM))
THEN
2291 write(unit,iostat=err)
size(id%SYM_PERM,1)
2298 & id%COMM, id%MYID )
2299 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2300 write(unit,iostat=err) id%SYM_PERM
2302 write(unit,iostat=err) -999
2309 & id%COMM, id%MYID )
2310 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2311 write(unit,iostat=err) -999
2319 & id%COMM, id%MYID )
2320 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2321 elseif(trim(mode).EQ.
"restore")
then
2322 nullify(id%SYM_PERM)
2323 read(unit,iostat=err) size_array1
2330 & id%COMM, id%MYID )
2331 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2332 if(size_array1.EQ.-999)
then
2333 size_gest(i1)=size_int*2
2334 size_variables(i1)=0_8
2335 read(unit,iostat=err) dummy
2337 size_gest(i1)=size_int
2338 size_variables(i1)=size_array1*size_int
2339 allocate(id%SYM_PERM(size_array1), stat=allocok)
2340 if (allocok .GT. 0)
THEN
2343 & total_struc_size-size_allocated
2346 read(unit,iostat=err) id%SYM_PERM
2349 & id%COMM, id%MYID )
2350 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2357 & id%COMM, id%MYID )
2358 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2362 if(trim(mode).EQ.
"memory_save")
then
2363 IF(
associated(id%UNS_PERM))
THEN
2364 size_gest(i1)=size_int
2365 size_variables(i1)=
size(id%UNS_PERM,1)*size_int
2367 size_gest(i1)=size_int*2
2368 size_variables(i1)=0_8
2370 elseif(trim(mode).EQ.
"save")
then
2371 IF(
associated(id%UNS_PERM))
THEN
2372 write(unit,iostat=err)
size(id%UNS_PERM,1)
2379 & id%COMM, id%MYID )
2380 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2381 write(unit,iostat=err) id%UNS_PERM
2383 write(unit,iostat=err) -999
2390 & id%COMM, id%MYID )
2391 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2392 write(unit,iostat=err) -999
2400 & id%COMM, id%MYID )
2401 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2402 elseif(trim(mode).EQ.
"restore")
then
2403 nullify(id%UNS_PERM)
2404 read(unit,iostat=err) size_array1
2411 & id%COMM, id%MYID )
2412 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2413 if(size_array1.EQ.-999)
then
2414 size_gest(i1)=size_int*2
2415 size_variables(i1)=0_8
2416 read(unit,iostat=err) dummy
2418 size_gest(i1)=size_int
2419 size_variables(i1)=size_array1*size_int
2420 allocate(id%UNS_PERM(size_array1), stat=allocok)
2421 if (allocok .GT. 0)
THEN
2424 & total_struc_size-size_allocated
2427 read(unit,iostat=err) id%UNS_PERM
2430 & id%COMM, id%MYID )
2431 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2438 & id%COMM, id%MYID )
2439 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2443 if(trim(mode).EQ.
"memory_save")
then
2444 size_variables(i1)=size_int
2445 elseif(trim(mode).EQ.
"save")
then
2446 write(unit,iostat=err) id%NPROW
2453 & id%COMM, id%MYID )
2454 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2455 elseif(trim(mode).EQ.
"restore")
then
2456 size_variables(i1)=size_int
2457 read(unit,iostat=err) id%NPROW
2464 & id%COMM, id%MYID )
2465 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2469 if(trim(mode).EQ.
"memory_save")
then
2470 size_variables(i1)=size_int
2471 elseif(trim(mode).EQ.
"save")
then
2472 write(unit,iostat=err) id%NPCOL
2479 & id%COMM, id%MYID )
2480 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2482 elseif(trim(mode).EQ.
"restore")
then
2483 size_variables(i1)=size_int
2484 read(unit,iostat=err) id%NPCOL
2491 & id%COMM, id%MYID )
2492 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2496 if(trim(mode).EQ.
"memory_save")
then
2497 size_variables(i1)=size_int
2498 elseif(trim(mode).EQ.
"save")
then
2499 write(unit,iostat=err) id%MBLOCK
2506 & id%COMM, id%MYID )
2507 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2508 elseif(trim(mode).EQ.
"restore")
then
2509 size_variables(i1)=size_int
2510 read(unit,iostat=err) id%MBLOCK
2517 & id%COMM, id%MYID )
2518 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2522 if(trim(mode).EQ."memory_save
") then
2523 SIZE_VARIABLES(i1)=SIZE_INT
2524.EQ.
elseif(trim(mode)"save") then
2525 write(unit,iostat=err) id%NBLOCK
2528 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2531 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2532 & id%COMM, id%MYID )
2533.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2534.EQ.
elseif(trim(mode)"restore
") then
2535 SIZE_VARIABLES(i1)=SIZE_INT
2536 read(unit,iostat=err) id%NBLOCK
2539 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2542 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2543 & id%COMM, id%MYID )
2544.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2548.EQ.
if(trim(mode)"memory_save
") then
2549 SIZE_VARIABLES(i1)=SIZE_INT
2550.EQ.
elseif(trim(mode)"save") then
2551 write(unit,iostat=err) id%SCHUR_MLOC
2554 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2557 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2558 & id%COMM, id%MYID )
2559.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2560.EQ.
elseif(trim(mode)"restore
") then
2561 SIZE_VARIABLES(i1)=SIZE_INT
2562 read(unit,iostat=err) id%SCHUR_MLOC
2565 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2568 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2569 & id%COMM, id%MYID )
2570.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2574.EQ.
if(trim(mode)"memory_save
") then
2575 SIZE_VARIABLES(i1)=SIZE_INT
2576.EQ.
elseif(trim(mode)"save") then
2577 write(unit,iostat=err) id%SCHUR_NLOC
2580 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2583 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2584 & id%COMM, id%MYID )
2585.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2586.EQ.
elseif(trim(mode)"restore
") then
2587 SIZE_VARIABLES(i1)=SIZE_INT
2588 read(unit,iostat=err) id%SCHUR_NLOC
2591 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2594 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2595 & id%COMM, id%MYID )
2596.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2600.EQ.
if(trim(mode)"memory_save
") then
2601 SIZE_VARIABLES(i1)=SIZE_INT
2602.EQ.
elseif(trim(mode)"save") then
2603 write(unit,iostat=err) id%SCHUR_LLD
2606 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2609 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2610 & id%COMM, id%MYID )
2611.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2612.EQ.
elseif(trim(mode)"restore
") then
2613 SIZE_VARIABLES(i1)=SIZE_INT
2614 read(unit,iostat=err) id%SCHUR_LLD
2617 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2620 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2621 & id%COMM, id%MYID )
2622.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2626.EQ.
if(trim(mode)"memory_save
") then
2627 SIZE_VARIABLES(i1)=SIZE_INT
2628.EQ.
elseif(trim(mode)"save") then
2629 write(unit,iostat=err) id%SIZE_SCHUR
2632 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2635 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2636 & id%COMM, id%MYID )
2637.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2639.EQ.
elseif(trim(mode)"restore
") then
2640 SIZE_VARIABLES(i1)=SIZE_INT
2641 read(unit,iostat=err) id%SIZE_SCHUR
2644 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2647 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2648 & id%COMM, id%MYID )
2649.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2652 CASE("schur_cinterface
")
2653 CASE("listvar_schur
")
2656.EQ.
if(trim(mode)"memory_save
") then
2657 IF(associated(id%MAPPING)) THEN
2658 SIZE_GEST(i1)=SIZE_INT8
2659 SIZE_VARIABLES(i1)=id%KEEP8(28)*SIZE_INT
2661 SIZE_GEST(i1)=SIZE_INT8+SIZE_INT
2662 SIZE_VARIABLES(i1)=0_8
2664.EQ.
elseif(trim(mode)"save") then
2665 IF(associated(id%MAPPING)) THEN
2666 write(unit,iostat=err) id%KEEP8(28)
2669 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2672 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2673 & id%COMM, id%MYID )
2674.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2675 write(unit,iostat=err) id%MAPPING
2677 write(unit,iostat=err) int(-999,8)
2680 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2683 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2684 & id%COMM, id%MYID )
2685.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2686 write(unit,iostat=err) -999
2690 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2693 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2694 & id%COMM, id%MYID )
2695.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2696.EQ.
elseif(trim(mode)"restore
") then
2698 read(unit,iostat=err) size_array_INT8_1
2701 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2704 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2705 & id%COMM, id%MYID )
2706.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2707.EQ.
if(size_array_INT8_1int(-999,8)) then
2708 SIZE_GEST(i1)=SIZE_INT+SIZE_INT8
2709 SIZE_VARIABLES(i1)=0_8
2710 read(unit,iostat=err) dummy
2712 SIZE_GEST(i1)=SIZE_INT8
2713 SIZE_VARIABLES(i1)=size_array_INT8_1*SIZE_INT
2714 allocate(id%MAPPING(size_array_INT8_1), stat=allocok)
2715.GT.
if (allocok 0) THEN
2717 CALL MUMPS_SETI8TOI4(
2718 & TOTAL_STRUC_SIZE-size_allocated
2721 read(unit,iostat=err) id%MAPPING
2723 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2724 & id%COMM, id%MYID )
2725.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2728 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2731 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2732 & id%COMM, id%MYID )
2733.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2735 CASE("version_number
")
2737.EQ.
if(trim(mode)"memory_save
") then
2738 SIZE_VARIABLES(i1)=len(id%VERSION_NUMBER)
2740.EQ.
elseif(trim(mode)"save") then
2741 write(unit,iostat=err) id%VERSION_NUMBER
2744 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2747 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2748 & id%COMM, id%MYID )
2749.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2750.EQ.
elseif(trim(mode)"restore
") then
2751 SIZE_VARIABLES(i1)=len(id%VERSION_NUMBER)
2753 read(unit,iostat=err) id%VERSION_NUMBER
2756 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2759 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2760 & id%COMM, id%MYID )
2761.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2765.EQ.
if(trim(mode)"memory_save
") then
2766 SIZE_VARIABLES(i1)=len(id%OOC_TMPDIR)
2768.EQ.
elseif(trim(mode)"save") then
2769 write(unit,iostat=err) id%OOC_TMPDIR
2772 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2775 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2776 & id%COMM, id%MYID )
2777.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2778.EQ.
elseif(trim(mode)"restore
") then
2779 SIZE_VARIABLES(i1)=len(id%OOC_TMPDIR)
2781 read(unit,iostat=err) id%OOC_TMPDIR
2784 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2787 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2788 & id%COMM, id%MYID )
2789.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2793.EQ.
if(trim(mode)"memory_save
") then
2794 SIZE_VARIABLES(i1)=len(id%OOC_PREFIX)
2796.EQ.
elseif(trim(mode)"save") then
2797 write(unit,iostat=err) id%OOC_PREFIX
2800 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2803 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2804 & id%COMM, id%MYID )
2805.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2807.EQ.
elseif(trim(mode)"restore
") then
2808 SIZE_VARIABLES(i1)=len(id%OOC_PREFIX)
2810 read(unit,iostat=err) id%OOC_PREFIX
2813 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2816 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2817 & id%COMM, id%MYID )
2818.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2820 CASE("write_problem
")
2822.EQ.
if(trim(mode)"memory_save
") then
2823 SIZE_VARIABLES(i1)=len(id%WRITE_PROBLEM)
2825.EQ.
elseif(trim(mode)"save") then
2826 write(unit,iostat=err) id%WRITE_PROBLEM
2829 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2832 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2833 & id%COMM, id%MYID )
2834.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2835.EQ.
elseif(trim(mode)"restore
") then
2836 SIZE_VARIABLES(i1)=len(id%WRITE_PROBLEM)
2838 read(unit,iostat=err) id%WRITE_PROBLEM
2841 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2844 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2845 & id%COMM, id%MYID )
2846.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2848 CASE("max_surf_master
")
2850.EQ.
if(trim(mode)"memory_save
") then
2851 SIZE_VARIABLES(i1)=SIZE_INT8
2852.EQ.
elseif(trim(mode)"save") then
2853 write(unit,iostat=err) id%MAX_SURF_MASTER
2856 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2859 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2860 & id%COMM, id%MYID )
2861.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2862.EQ.
elseif(trim(mode)"restore
") then
2863 SIZE_VARIABLES(i1)=SIZE_INT8
2864 read(unit,iostat=err) id%MAX_SURF_MASTER
2867 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2870 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2871 & id%COMM, id%MYID )
2872.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2876.EQ.
if(trim(mode)"memory_save
") then
2877 SIZE_VARIABLES(i1)=SIZE_INT
2878.EQ.
elseif(trim(mode)"save") then
2879 write(unit,iostat=err) id%INST_Number
2882 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2885 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2886 & id%COMM, id%MYID )
2887.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2888.EQ.
elseif(trim(mode)"restore
") then
2889 SIZE_VARIABLES(i1)=SIZE_INT
2890 read(unit,iostat=err) id%INST_Number
2893 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2896 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2897 & id%COMM, id%MYID )
2898.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2901.EQ.
if(trim(mode)"memory_save
") then
2902 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT
2903.EQ.
elseif(trim(mode)"save") then
2904 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT
2905.EQ.
elseif(trim(mode)"restore
") then
2906 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT
2910.EQ.
if(trim(mode)"memory_save
") then
2911 SIZE_VARIABLES(i1)=SIZE_INT
2912.EQ.
elseif(trim(mode)"save") then
2913 write(unit,iostat=err) id%MYID_NODES
2916 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2919 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2920 & id%COMM, id%MYID )
2921.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2922.EQ.
elseif(trim(mode)"restore
") then
2923 SIZE_VARIABLES(i1)=SIZE_INT
2924 read(unit,iostat=err) id%MYID_NODES
2927 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2930 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2931 & id%COMM, id%MYID )
2932.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2935.EQ.
if(trim(mode)"memory_save
") then
2936 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT
2937.EQ.
elseif(trim(mode)"save") then
2938 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT
2939.EQ.
elseif(trim(mode)"restore
") then
2940 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT
2944.EQ.
if(trim(mode)"memory_save
") then
2945 SIZE_VARIABLES(i1)=SIZE_INT
2946.EQ.
elseif(trim(mode)"save") then
2947 write(unit,iostat=err) id%MYID
2950 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2953 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2954 & id%COMM, id%MYID )
2955.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2956.EQ.
elseif(trim(mode)"restore
") then
2957 SIZE_VARIABLES(i1)=SIZE_INT
2958 read(unit,iostat=err) id%MYID
2961 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2964 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2965 & id%COMM, id%MYID )
2966.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2970.EQ.
if(trim(mode)"memory_save
") then
2971 SIZE_VARIABLES(i1)=SIZE_INT
2972.EQ.
elseif(trim(mode)"save") then
2973 write(unit,iostat=err) id%NPROCS
2976 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2979 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2980 & id%COMM, id%MYID )
2981.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2982.EQ.
elseif(trim(mode)"restore
") then
2983 SIZE_VARIABLES(i1)=SIZE_INT
2984 read(unit,iostat=err) id%NPROCS
2987 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2990 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2991 & id%COMM, id%MYID )
2992.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2996.EQ.
if(trim(mode)"memory_save
") then
2997 SIZE_VARIABLES(i1)=SIZE_INT
2998.EQ.
elseif(trim(mode)"save") then
2999 write(unit,iostat=err) id%NSLAVES
3002 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3005 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3006 & id%COMM, id%MYID )
3007.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3008.EQ.
elseif(trim(mode)"restore
") then
3009 SIZE_VARIABLES(i1)=SIZE_INT
3010 read(unit,iostat=err) id%NSLAVES
3013 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3016 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3017 & id%COMM, id%MYID )
3018.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3022.EQ.
if(trim(mode)"memory_save
") then
3023 SIZE_VARIABLES(i1)=SIZE_INT
3024.EQ.
elseif(trim(mode)"save") then
3025 write(unit,iostat=err) id%ASS_IRECV
3028 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3031 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3032 & id%COMM, id%MYID )
3033.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3034.EQ.
elseif(trim(mode)"restore
") then
3035 SIZE_VARIABLES(i1)=SIZE_INT
3036 read(unit,iostat=err) id%ASS_IRECV
3039 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3042 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3043 & id%COMM, id%MYID )
3044.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3048.EQ.
if(trim(mode)"memory_save
") then
3049 IF(associated(id%IS)) THEN
3050 SIZE_GEST(i1)=SIZE_INT*2
3051 SIZE_VARIABLES(i1)=id%KEEP(32)*SIZE_INT
3052 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT*
3053 & (size(id%IS,1)-id%KEEP(32))
3055 SIZE_GEST(i1)=SIZE_INT*3
3056 SIZE_VARIABLES(i1)=0_8
3058.EQ.
elseif(trim(mode)"save") then
3059 IF(associated(id%IS)) THEN
3060 write(unit,iostat=err) size(id%IS,1),id%KEEP(32)
3063 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3066 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3067 & id%COMM, id%MYID )
3068.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3069 write(unit,iostat=err) id%IS(1:id%KEEP(32))
3070 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT*
3071 & (size(id%IS,1)-id%KEEP(32))
3073 write(unit,iostat=err) -999,-998
3076 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3079 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3080 & id%COMM, id%MYID )
3081.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3082 write(unit,iostat=err) -999
3086 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3089 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3090 & id%COMM, id%MYID )
3091.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3092.EQ.
elseif(trim(mode)"restore
") then
3094 read(unit,iostat=err) size_array1,size_array2
3097 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3100 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3101 & id%COMM, id%MYID )
3102.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3103.EQ.
if(size_array1-999) then
3104 SIZE_GEST(i1)=SIZE_INT*3
3105 SIZE_VARIABLES(i1)=0_8
3106 read(unit,iostat=err) dummy
3108 SIZE_GEST(i1)=SIZE_INT*2
3109 SIZE_VARIABLES(i1)=size_array2*SIZE_INT
3110 DIFF_SIZE_ALLOC_READ(i1)=SIZE_INT*
3111 & (size_array1-size_array2)
3112 allocate(id%IS(size_array1), stat=allocok)
3113.GT.
if (allocok 0) THEN
3115 CALL MUMPS_SETI8TOI4(
3116 & TOTAL_STRUC_SIZE-size_allocated
3119 read(unit,iostat=err) id%IS(1:size_array2)
3121 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3122 & id%COMM, id%MYID )
3123.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3126 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3129 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3130 & id%COMM, id%MYID )
3131.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3135.EQ.
if(trim(mode)"memory_save
") then
3136 SIZE_VARIABLES(i1)=SIZE_INT
3137.EQ.
elseif(trim(mode)"save") then
3138 write(unit,iostat=err) id%Deficiency
3141 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3144 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3145 & id%COMM, id%MYID )
3146.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3147.EQ.
elseif(trim(mode)"restore
") then
3148 SIZE_VARIABLES(i1)=SIZE_INT
3149 read(unit,iostat=err) id%Deficiency
3152 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3155 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3156 & id%COMM, id%MYID )
3157.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3161.EQ.
if(trim(mode)"memory_save
") then
3162 SIZE_VARIABLES(i1)=SIZE_INT
3163.EQ.
elseif(trim(mode)"save") then
3164 write(unit,iostat=err) id%LNA
3167 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3170 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3171 & id%COMM, id%MYID )
3172.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3173.EQ.
elseif(trim(mode)"restore
") then
3174 SIZE_VARIABLES(i1)=SIZE_INT
3175 read(unit,iostat=err) id%LNA
3178 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3181 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3182 & id%COMM, id%MYID )
3183.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3187.EQ.
if(trim(mode)"memory_save
") then
3188 SIZE_VARIABLES(i1)=SIZE_INT
3189.EQ.
elseif(trim(mode)"save") then
3190 write(unit,iostat=err) id%NBSA
3193 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3196 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3197 & id%COMM, id%MYID )
3198.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3199.EQ.
elseif(trim(mode)"restore
") then
3200 SIZE_VARIABLES(i1)=SIZE_INT
3201 read(unit,iostat=err) id%NBSA
3204 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3207 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3208 & id%COMM, id%MYID )
3209.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3213.EQ.
if(trim(mode)"memory_save
") then
3214 IF(associated(id%STEP)) THEN
3215 SIZE_GEST(i1)=SIZE_INT
3216 SIZE_VARIABLES(i1)=size(id%STEP,1)*SIZE_INT
3218 SIZE_GEST(i1)=SIZE_INT*2
3219 SIZE_VARIABLES(i1)=0_8
3221.EQ.
elseif(trim(mode)"save") then
3222 IF(associated(id%STEP)) THEN
3223 write(unit,iostat=err) size(id%STEP,1)
3226 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3229 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3230 & id%COMM, id%MYID )
3231.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3232 write(unit,iostat=err) id%STEP
3234 write(unit,iostat=err) -999
3237 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3240 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3241 & id%COMM, id%MYID )
3242.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3243 write(unit,iostat=err) -999
3247 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3250 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3251 & id%COMM, id%MYID )
3252.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3253.EQ.
elseif(trim(mode)"restore
") then
3255 read(unit,iostat=err) size_array1
3258 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES(i1),id%INFO(2))
3260 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3261 & id%COMM, id%MYID )
3262.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3263.EQ.
if(size_array1-999) then
3264 SIZE_GEST(i1)=SIZE_INT*2
3265 SIZE_VARIABLES(i1)=0_8
3266 read(unit,iostat=err) dummy
3268 SIZE_GEST(i1)=SIZE_INT
3269 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
3270 allocate(id%STEP(size_array1), stat=allocok)
3271.GT.
if (allocok 0) THEN
3273 CALL MUMPS_SETI8TOI4(
3274 & TOTAL_STRUC_SIZE-size_allocated
3277 read(unit,iostat=err) id%STEP
3279 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3280 & id%COMM, id%MYID )
3281.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3284 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3287 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3288 & id%COMM, id%MYID )
3289.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3293.EQ.
if(trim(mode)"memory_save
") then
3294 IF(associated(id%NE_STEPS)) THEN
3295 SIZE_GEST(i1)=SIZE_INT
3296 SIZE_VARIABLES(i1)=size(id%NE_STEPS,1)*SIZE_INT
3298 SIZE_GEST(i1)=SIZE_INT*2
3299 SIZE_VARIABLES(i1)=0_8
3301.EQ.
elseif(trim(mode)"save") then
3302 IF(associated(id%NE_STEPS)) THEN
3303 write(unit,iostat=err) size(id%NE_STEPS,1)
3306 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3309 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3310 & id%COMM, id%MYID )
3311.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3312 write(unit,iostat=err) id%NE_STEPS
3314 write(unit,iostat=err) -999
3317 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3320 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3321 & id%COMM, id%MYID )
3322.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3323 write(unit,iostat=err) -999
3327 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3330 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3331 & id%COMM, id%MYID )
3332.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3333.EQ.
elseif(trim(mode)"restore
") then
3334 nullify(id%NE_STEPS)
3335 read(unit,iostat=err) size_array1
3338 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3341 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3342 & id%COMM, id%MYID )
3343.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3344.EQ.
if(size_array1-999) then
3345 SIZE_GEST(i1)=SIZE_INT*2
3346 SIZE_VARIABLES(i1)=0_8
3347 read(unit,iostat=err) dummy
3349 SIZE_GEST(i1)=SIZE_INT
3350 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
3351 allocate(id%NE_STEPS(size_array1), stat=allocok)
3352.GT.
if (allocok 0) THEN
3354 CALL MUMPS_SETI8TOI4(
3355 & TOTAL_STRUC_SIZE-size_allocated
3358 read(unit,iostat=err) id%NE_STEPS
3360 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3361 & id%COMM, id%MYID )
3362.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3365 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3368 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3369 & id%COMM, id%MYID )
3370.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3374.EQ.
if(trim(mode)"memory_save
") then
3375 IF(associated(id%ND_STEPS)) THEN
3376 SIZE_GEST(i1)=SIZE_INT
3377 SIZE_VARIABLES(i1)=size(id%ND_STEPS,1)*SIZE_INT
3379 SIZE_GEST(i1)=SIZE_INT*2
3380 SIZE_VARIABLES(i1)=0_8
3382.EQ.
elseif(trim(mode)"save") then
3383 IF(associated(id%ND_STEPS)) THEN
3384 write(unit,iostat=err) size(id%ND_STEPS,1)
3387 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3390 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3391 & id%COMM, id%MYID )
3392.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3393 write(unit,iostat=err) id%ND_STEPS
3395 write(unit,iostat=err) -999
3398 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3401 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3402 & id%COMM, id%MYID )
3403.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3404 write(unit,iostat=err) -999
3408 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3411 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3412 & id%COMM, id%MYID )
3413.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3414.EQ.
elseif(trim(mode)"restore
") then
3415 nullify(id%ND_STEPS)
3416 read(unit,iostat=err) size_array1
3419 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3422 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3423 & id%COMM, id%MYID )
3424.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3425.EQ.
if(size_array1-999) then
3426 SIZE_GEST(i1)=SIZE_INT*2
3427 SIZE_VARIABLES(i1)=0_8
3428 read(unit,iostat=err) dummy
3430 SIZE_GEST(i1)=SIZE_INT
3431 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
3432 allocate(id%ND_STEPS(size_array1), stat=allocok)
3433.GT.
if (allocok 0) THEN
3435 CALL MUMPS_SETI8TOI4(
3436 & TOTAL_STRUC_SIZE-size_allocated
3439 read(unit,iostat=err) id%ND_STEPS
3441 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3442 & id%COMM, id%MYID )
3443.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3446 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3449 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3450 & id%COMM, id%MYID )
3451.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3455.EQ.
if(trim(mode)"memory_save
") then
3456 IF(associated(id%Step2node)) THEN
3457 SIZE_GEST(i1)=SIZE_INT
3458 SIZE_VARIABLES(i1)=size(id%Step2node,1)*SIZE_INT
3460 SIZE_GEST(i1)=SIZE_INT*2
3461 SIZE_VARIABLES(i1)=0_8
3463.EQ.
elseif(trim(mode)"save") then
3464 IF(associated(id%Step2node)) THEN
3465 write(unit,iostat=err) size(id%Step2node,1)
3468 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3471 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3472 & id%COMM, id%MYID )
3473.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3474 write(unit,iostat=err) id%Step2node
3476 write(unit,iostat=err) -999
3479 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3482 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3483 & id%COMM, id%MYID )
3484.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3485 write(unit,iostat=err) -999
3489 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3492 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3493 & id%COMM, id%MYID )
3494.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3495.EQ.
elseif(trim(mode)"restore
") then
3496 nullify(id%Step2node)
3497 read(unit,iostat=err) size_array1
3500 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3503 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3504 & id%COMM, id%MYID )
3505.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3506.EQ.
if(size_array1-999) then
3507 SIZE_GEST(i1)=SIZE_INT*2
3508 SIZE_VARIABLES(i1)=0_8
3509 read(unit,iostat=err) dummy
3511 SIZE_GEST(i1)=SIZE_INT
3512 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
3513 allocate(id%Step2node(size_array1), stat=allocok)
3514.GT.
if (allocok 0) THEN
3516 CALL MUMPS_SETI8TOI4(
3517 & TOTAL_STRUC_SIZE-size_allocated
3520 read(unit,iostat=err) id%Step2node
3522 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3523 & id%COMM, id%MYID )
3524.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3527 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3530 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3531 & id%COMM, id%MYID )
3532.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3536.EQ.
if(trim(mode)"memory_save
") then
3537 IF(associated(id%FRERE_STEPS)) THEN
3538 SIZE_GEST(i1)=SIZE_INT
3539 SIZE_VARIABLES(i1)=size(id%FRERE_STEPS,1)*SIZE_INT
3541 SIZE_GEST(i1)=SIZE_INT*2
3542 SIZE_VARIABLES(i1)=0_8
3544.EQ.
elseif(trim(mode)"save") then
3545 IF(associated(id%FRERE_STEPS)) THEN
3546 write(unit,iostat=err) size(id%FRERE_STEPS,1)
3549 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3552 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3553 & id%COMM, id%MYID )
3554.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3555 write(unit,iostat=err) id%FRERE_STEPS
3557 write(unit,iostat=err) -999
3560 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3563 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3564 & id%COMM, id%MYID )
3565.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3566 write(unit,iostat=err) -999
3570 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3573 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3574 & id%COMM, id%MYID )
3575.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3576.EQ.
elseif(trim(mode)"restore
") then
3577 nullify(id%FRERE_STEPS)
3578 read(unit,iostat=err) size_array1
3581 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3584 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3585 & id%COMM, id%MYID )
3586.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3587.EQ.
if(size_array1-999) then
3588 SIZE_GEST(i1)=SIZE_INT*2
3589 SIZE_VARIABLES(i1)=0_8
3590 read(unit,iostat=err) dummy
3592 SIZE_GEST(i1)=SIZE_INT
3593 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
3594 allocate(id%FRERE_STEPS(size_array1), stat=allocok)
3595.GT.
if (allocok 0) THEN
3597 CALL MUMPS_SETI8TOI4(
3598 & TOTAL_STRUC_SIZE-size_allocated
3601 read(unit,iostat=err) id%FRERE_STEPS
3603 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3604 & id%COMM, id%MYID )
3605.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3608 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3611 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3612 & id%COMM, id%MYID )
3613.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3617.EQ.
if(trim(mode)"memory_save
") then
3618 IF(associated(id%DAD_STEPS)) THEN
3619 SIZE_GEST(i1)=SIZE_INT
3620 SIZE_VARIABLES(i1)=size(id%DAD_STEPS,1)*SIZE_INT
3622 SIZE_GEST(i1)=SIZE_INT*2
3623 SIZE_VARIABLES(i1)=0_8
3625.EQ.
elseif(trim(mode)"save") then
3626 IF(associated(id%DAD_STEPS)) THEN
3627 write(unit,iostat=err) size(id%DAD_STEPS,1)
3630 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3633 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3634 & id%COMM, id%MYID )
3635.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3636 write(unit,iostat=err) id%DAD_STEPS
3638 write(unit,iostat=err) -999
3641 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3644 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3645 & id%COMM, id%MYID )
3646.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3647 write(unit,iostat=err) -999
3651 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3654 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3655 & id%COMM, id%MYID )
3656.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3657.EQ.
elseif(trim(mode)"restore
") then
3658 nullify(id%DAD_STEPS)
3659 read(unit,iostat=err) size_array1
3662 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3665 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3666 & id%COMM, id%MYID )
3667.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3668.EQ.
if(size_array1-999) then
3669 SIZE_GEST(i1)=SIZE_INT*2
3670 SIZE_VARIABLES(i1)=0_8
3671 read(unit,iostat=err) dummy
3673 SIZE_GEST(i1)=SIZE_INT
3674 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
3675 allocate(id%DAD_STEPS(size_array1), stat=allocok)
3676.GT.
if (allocok 0) THEN
3678 CALL MUMPS_SETI8TOI4(
3679 & TOTAL_STRUC_SIZE-size_allocated
3682 read(unit,iostat=err) id%DAD_STEPS
3684 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3685 & id%COMM, id%MYID )
3686.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3689 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3692 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3693 & id%COMM, id%MYID )
3694.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3698.EQ.
if(trim(mode)"memory_save
") then
3699 IF(associated(id%FILS)) THEN
3700 SIZE_GEST(i1)=SIZE_INT
3701 SIZE_VARIABLES(i1)=size(id%FILS,1)*SIZE_INT
3703 SIZE_GEST(i1)=SIZE_INT*2
3704 SIZE_VARIABLES(i1)=0_8
3706.EQ.
elseif(trim(mode)"save") then
3707 IF(associated(id%FILS)) THEN
3708 write(unit,iostat=err) size(id%FILS,1)
3711 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3714 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3715 & id%COMM, id%MYID )
3716.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3717 write(unit,iostat=err) id%FILS
3719 write(unit,iostat=err) -999
3722 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3725 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3726 & id%COMM, id%MYID )
3727.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3728 write(unit,iostat=err) -999
3732 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3735 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3736 & id%COMM, id%MYID )
3737.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3738.EQ.
elseif(trim(mode)"restore
") then
3740 read(unit,iostat=err) size_array1
3743 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3746 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3747 & id%COMM, id%MYID )
3748.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3749.EQ.
if(size_array1-999) then
3750 SIZE_GEST(i1)=SIZE_INT*2
3751 SIZE_VARIABLES(i1)=0_8
3752 read(unit,iostat=err) dummy
3754 SIZE_GEST(i1)=SIZE_INT
3755 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
3756 allocate(id%FILS(size_array1), stat=allocok)
3757.GT.
if (allocok 0) THEN
3759 CALL MUMPS_SETI8TOI4(
3760 & TOTAL_STRUC_SIZE-size_allocated
3763 read(unit,iostat=err) id%FILS
3765 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3766 & id%COMM, id%MYID )
3767.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3770 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3773 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3774 & id%COMM, id%MYID )
3775.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3779.EQ.
if(trim(mode)"memory_save
") then
3780 IF(associated(id%PTRAR)) THEN
3781 SIZE_GEST(i1)=SIZE_INT
3782 SIZE_VARIABLES(i1)=size(id%PTRAR,1)*SIZE_INT8
3784 SIZE_GEST(i1)=SIZE_INT*2
3785 SIZE_VARIABLES(i1)=0_8
3787.EQ.
elseif(trim(mode)"save") then
3788 IF(associated(id%PTRAR)) THEN
3789 write(unit,iostat=err) size(id%PTRAR,1)
3792 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3795 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3796 & id%COMM, id%MYID )
3797.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3798 write(unit,iostat=err) id%PTRAR
3800 write(unit,iostat=err) -999
3803 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3806 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3807 & id%COMM, id%MYID )
3808.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3809 write(unit,iostat=err) -999
3813 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3816 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3817 & id%COMM, id%MYID )
3818.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3820.EQ.
elseif(trim(mode)"restore
") then
3822 read(unit,iostat=err) size_array1
3825 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3828 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3829 & id%COMM, id%MYID )
3830.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3831.EQ.
if(size_array1-999) then
3832 SIZE_GEST(i1)=SIZE_INT*2
3833 SIZE_VARIABLES(i1)=0_8
3834 read(unit,iostat=err) dummy
3836 SIZE_GEST(i1)=SIZE_INT
3837 SIZE_VARIABLES(i1)=size_array1*SIZE_INT8
3838 allocate(id%PTRAR(size_array1), stat=allocok)
3839.GT.
if (allocok 0) THEN
3841 CALL MUMPS_SETI8TOI4(
3842 & TOTAL_STRUC_SIZE-size_allocated
3845 read(unit,iostat=err) id%PTRAR
3847 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3848 & id%COMM, id%MYID )
3849.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3852 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3855 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3856 & id%COMM, id%MYID )
3857.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3861.EQ.
if(trim(mode)"memory_save
") then
3862 IF(associated(id%FRTPTR)) THEN
3863 SIZE_GEST(i1)=SIZE_INT
3864 SIZE_VARIABLES(i1)=size(id%FRTPTR,1)*SIZE_INT
3866 SIZE_GEST(i1)=SIZE_INT*2
3867 SIZE_VARIABLES(i1)=0_8
3869.EQ.
elseif(trim(mode)"save") then
3870 IF(associated(id%FRTPTR)) THEN
3871 write(unit,iostat=err) size(id%FRTPTR,1)
3874 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3877 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3878 & id%COMM, id%MYID )
3879.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3880 write(unit,iostat=err) id%FRTPTR
3882 write(unit,iostat=err) -999
3885 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3888 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3889 & id%COMM, id%MYID )
3890.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3891 write(unit,iostat=err) -999
3895 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3898 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3899 & id%COMM, id%MYID )
3900.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3901.EQ.
elseif(trim(mode)"restore
") then
3903 read(unit,iostat=err) size_array1
3906 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3909 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3910 & id%COMM, id%MYID )
3911.EQ.
if(size_array1-999) then
3912 SIZE_GEST(i1)=SIZE_INT*2
3913 SIZE_VARIABLES(i1)=0_8
3914 read(unit,iostat=err) dummy
3916 SIZE_GEST(i1)=SIZE_INT
3917 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
3918 allocate(id%FRTPTR(size_array1), stat=allocok)
3919.GT.
if (allocok 0) THEN
3921 CALL MUMPS_SETI8TOI4(
3922 & TOTAL_STRUC_SIZE-size_allocated
3925 read(unit,iostat=err) id%FRTPTR
3927 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3928 & id%COMM, id%MYID )
3929.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3932 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3935 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3936 & id%COMM, id%MYID )
3937.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3941.EQ.
if(trim(mode)"memory_save
") then
3942 IF(associated(id%FRTELT)) THEN
3943 SIZE_GEST(i1)=SIZE_INT
3944 SIZE_VARIABLES(i1)=size(id%FRTELT,1)*SIZE_INT
3946 SIZE_GEST(i1)=SIZE_INT*2
3947 SIZE_VARIABLES(i1)=0_8
3949.EQ.
elseif(trim(mode)"save") then
3950 IF(associated(id%FRTELT)) THEN
3951 write(unit,iostat=err) size(id%FRTELT,1)
3954 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3957 write(unit,iostat=err) id%FRTELT
3959 write(unit,iostat=err) -999
3962 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3965 write(unit,iostat=err) -999
3969 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
3972 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3973 & id%COMM, id%MYID )
3974.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3975.EQ.
elseif(trim(mode)"restore
") then
3977 read(unit,iostat=err) size_array1
3980 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
3983 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
3984 & id%COMM, id%MYID )
3985.LT.
IF ( id%INFO(1) 0 ) GOTO 100
3986.EQ.
if(size_array1-999) then
3987 SIZE_GEST(i1)=SIZE_INT*2
3988 SIZE_VARIABLES(i1)=0_8
3989 read(unit,iostat=err) dummy
3991 SIZE_GEST(i1)=SIZE_INT
3992 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
3993 allocate(id%FRTELT(size_array1), stat=allocok)
3994.GT.
if (allocok 0) THEN
3996 CALL MUMPS_SETI8TOI4(
3997 & TOTAL_STRUC_SIZE-size_allocated
4000 read(unit,iostat=err) id%FRTELT
4002 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4003 & id%COMM, id%MYID )
4004.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4007 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4010 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4011 & id%COMM, id%MYID )
4012.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4016.EQ.
if(trim(mode)"memory_save
") then
4017 IF(associated(id%NA)) THEN
4018 SIZE_GEST(i1)=SIZE_INT
4019 SIZE_VARIABLES(i1)=size(id%NA,1)*SIZE_INT
4021 SIZE_GEST(i1)=SIZE_INT*2
4022 SIZE_VARIABLES(i1)=0_8
4024.EQ.
elseif(trim(mode)"save") then
4025 IF(associated(id%NA)) THEN
4026 write(unit,iostat=err) size(id%NA,1)
4029 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4032 write(unit,iostat=err) id%NA
4034 write(unit,iostat=err) -999
4037 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4040 write(unit,iostat=err) -999
4044 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4047 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4048 & id%COMM, id%MYID )
4049.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4050.EQ.
elseif(trim(mode)"restore
") then
4052 read(unit,iostat=err) size_array1
4055 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4058 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4059 & id%COMM, id%MYID )
4060.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4061.EQ.
if(size_array1-999) then
4062 SIZE_GEST(i1)=SIZE_INT*2
4063 SIZE_VARIABLES(i1)=0_8
4064 read(unit,iostat=err) dummy
4066 SIZE_GEST(i1)=SIZE_INT
4067 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
4068 allocate(id%NA(size_array1), stat=allocok)
4069.GT.
if (allocok 0) THEN
4071 CALL MUMPS_SETI8TOI4(
4072 & TOTAL_STRUC_SIZE-size_allocated
4075 read(unit,iostat=err) id%NA
4077 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4078 & id%COMM, id%MYID )
4079.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4082 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4085 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4086 & id%COMM, id%MYID )
4087.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4089 CASE("procnode_steps
")
4091.EQ.
if(trim(mode)"memory_save
") then
4093 IF(associated(id%PROCNODE_STEPS)) THEN
4094 SIZE_GEST(i1)=SIZE_INT
4095 SIZE_VARIABLES(i1)=size(id%PROCNODE_STEPS,1)*SIZE_INT
4097 SIZE_GEST(i1)=SIZE_INT*2
4098 SIZE_VARIABLES(i1)=0_8
4100.EQ.
elseif(trim(mode)"save") then
4101 IF(associated(id%PROCNODE_STEPS)) THEN
4102 write(unit,iostat=err) size(id%PROCNODE_STEPS,1)
4105 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4108 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4109 & id%COMM, id%MYID )
4110.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4111 write(unit,iostat=err) id%PROCNODE_STEPS
4113 write(unit,iostat=err) -999
4116 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4119 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4120 & id%COMM, id%MYID )
4121.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4122 write(unit,iostat=err) -999
4126 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4129 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4130 & id%COMM, id%MYID )
4131.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4132.EQ.
elseif(trim(mode)"restore
") then
4133 nullify(id%PROCNODE_STEPS)
4134 read(unit,iostat=err) size_array1
4137 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4140 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4141 & id%COMM, id%MYID )
4142.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4143.EQ.
if(size_array1-999) then
4144 SIZE_GEST(i1)=SIZE_INT*2
4145 SIZE_VARIABLES(i1)=0_8
4146 read(unit,iostat=err) dummy
4148 SIZE_GEST(i1)=SIZE_INT
4149 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
4150 allocate(id%PROCNODE_STEPS(size_array1), stat=allocok)
4151.GT.
if (allocok 0) THEN
4153 CALL MUMPS_SETI8TOI4(
4154 & TOTAL_STRUC_SIZE-size_allocated
4157 read(unit,iostat=err) id%PROCNODE_STEPS
4159 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4160 & id%COMM, id%MYID )
4161.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4164 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4167 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4168 & id%COMM, id%MYID )
4169.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4173.EQ.
if(trim(mode)"memory_save
") then
4174 IF(associated(id%PTLUST_S)) THEN
4175 SIZE_GEST(i1)=SIZE_INT
4176 SIZE_VARIABLES(i1)=size(id%PTLUST_S,1)*SIZE_INT
4178 SIZE_GEST(i1)=SIZE_INT*2
4179 SIZE_VARIABLES(i1)=0_8
4181.EQ.
elseif(trim(mode)"save") then
4182 IF(associated(id%PTLUST_S)) THEN
4183 write(unit,iostat=err) size(id%PTLUST_S,1)
4186 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4189 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4190 & id%COMM, id%MYID )
4191.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4192 write(unit,iostat=err) id%PTLUST_S
4194 write(unit,iostat=err) -999
4197 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4200 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4201 & id%COMM, id%MYID )
4202.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4203 write(unit,iostat=err) -999
4207 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4210 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4211 & id%COMM, id%MYID )
4212.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4213.EQ.
elseif(trim(mode)"restore
") then
4214 nullify(id%PTLUST_S)
4215 read(unit,iostat=err) size_array1
4218 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4221 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4222 & id%COMM, id%MYID )
4223.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4224.EQ.
if(size_array1-999) then
4225 SIZE_GEST(i1)=SIZE_INT*2
4226 SIZE_VARIABLES(i1)=0_8
4227 read(unit,iostat=err) dummy
4229 SIZE_GEST(i1)=SIZE_INT
4230 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
4231 allocate(id%PTLUST_S(size_array1), stat=allocok)
4232.GT.
if (allocok 0) THEN
4234 CALL MUMPS_SETI8TOI4(
4235 & TOTAL_STRUC_SIZE-size_allocated
4238 read(unit,iostat=err) id%PTLUST_S
4240 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4241 & id%COMM, id%MYID )
4242.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4245 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4248 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4249 & id%COMM, id%MYID )
4250.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4254.EQ.
if(trim(mode)"memory_save
") then
4255 IF(associated(id%PTRFAC)) THEN
4256 SIZE_GEST(i1)=SIZE_INT
4257 SIZE_VARIABLES(i1)=size(id%PTRFAC,1)*SIZE_INT8
4259 SIZE_GEST(i1)=SIZE_INT*2
4260 SIZE_VARIABLES(i1)=0_8
4262.EQ.
elseif(trim(mode)"save") then
4263 IF(associated(id%PTRFAC)) THEN
4264 write(unit,iostat=err) size(id%PTRFAC,1)
4267 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4270 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4271 & id%COMM, id%MYID )
4272 write(unit,iostat=err) id%PTRFAC
4274 write(unit,iostat=err) -999
4277 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4280 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4281 & id%COMM, id%MYID )
4282.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4283 write(unit,iostat=err) -999
4287 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4290 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4291 & id%COMM, id%MYID )
4292.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4293.EQ.
elseif(trim(mode)"restore
") then
4295 read(unit,iostat=err) size_array1
4298 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4301 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4302 & id%COMM, id%MYID )
4303.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4304.EQ.
if(size_array1-999) then
4305 SIZE_GEST(i1)=SIZE_INT*2
4306 SIZE_VARIABLES(i1)=0_8
4307 read(unit,iostat=err) dummy
4309 SIZE_GEST(i1)=SIZE_INT
4310 SIZE_VARIABLES(i1)=size_array1*SIZE_INT8
4311 allocate(id%PTRFAC(size_array1), stat=allocok)
4312.GT.
if (allocok 0) THEN
4314 CALL MUMPS_SETI8TOI4(
4315 & TOTAL_STRUC_SIZE-size_allocated
4318 read(unit,iostat=err) id%PTRFAC
4320 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4321 & id%COMM, id%MYID )
4322.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4325 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4328 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4329 & id%COMM, id%MYID )
4330.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4334.EQ.
if(trim(mode)"memory_save
") then
4335 IF(associated(id%S)) THEN
4336 SIZE_GEST(i1)=SIZE_INT8*2
4337 SIZE_VARIABLES(i1)=id%KEEP8(31)*SIZE_ARITH_DEP
4338 DIFF_SIZE_ALLOC_READ(i1)=
4339 & SIZE_ARITH_DEP*(id%KEEP8(23)-id%KEEP8(31))
4341 SIZE_GEST(i1)=SIZE_INT8*2+SIZE_INT
4342 SIZE_VARIABLES(i1)=0_8
4344.EQ.
elseif(trim(mode)"save") then
4345 IF(associated(id%S)) THEN
4346 write(unit,iostat=err) id%KEEP8(23),id%KEEP8(31)
4349 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4352 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4353 & id%COMM, id%MYID )
4354.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4355 write(unit,iostat=err) id%S(1:id%KEEP8(31))
4356 DIFF_SIZE_ALLOC_READ(i1)=
4357 & SIZE_ARITH_DEP*(id%KEEP8(23)-id%KEEP8(31))
4359 write(unit,iostat=err) int(-999,kind=8)
4363 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4366 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4367 & id%COMM, id%MYID )
4368.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4369 write(unit,iostat=err) -999
4373 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4376 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4377 & id%COMM, id%MYID )
4378.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4379.EQ.
elseif(trim(mode)"restore
") then
4381 read(unit,iostat=err) size_array_INT8_1,size_array_INT8_2
4384 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4387 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4388 & id%COMM, id%MYID )
4389.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4390.EQ.
if(size_array_INT8_1int(-999,kind=8)) then
4391 SIZE_GEST(i1)=SIZE_INT8*2+SIZE_INT
4392 SIZE_VARIABLES(i1)=0_8
4393 read(unit,iostat=err) dummy
4395 SIZE_GEST(i1)=SIZE_INT8*2
4396 SIZE_VARIABLES(i1)=size_array_INT8_2*SIZE_ARITH_DEP
4397 DIFF_SIZE_ALLOC_READ(i1)=
4399 & (size_array_INT8_1-size_array_INT8_2)
4400 allocate(id%S(1:size_array_INT8_1), stat=allocok)
4401.GT.
if (allocok 0) THEN
4403 CALL MUMPS_SETI8TOI4(
4404 & TOTAL_STRUC_SIZE-size_allocated
4407 read(unit,iostat=err) id%S(1:size_array_INT8_2)
4409 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4410 & id%COMM, id%MYID )
4411.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4414 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4417 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4418 & id%COMM, id%MYID )
4419.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4424.EQ.
if(trim(mode)"memory_save
") then
4425 IF(associated(id%INTARR)) THEN
4426 SIZE_GEST(i1)=SIZE_INT8
4427 SIZE_VARIABLES(i1)=id%KEEP8(27)*SIZE_INT
4429 SIZE_GEST(i1)=SIZE_INT8+SIZE_INT
4430 SIZE_VARIABLES(i1)=0_8
4432.EQ.
elseif(trim(mode)"save") then
4433 IF(associated(id%INTARR)) THEN
4434 write(unit,iostat=err) id%KEEP8(27)
4437 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4440 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4441 & id%COMM, id%MYID )
4442.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4443 write(unit,iostat=err) id%INTARR
4445 write(unit,iostat=err) int(-999,8)
4448 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4451 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4452 & id%COMM, id%MYID )
4453.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4454 write(unit,iostat=err) -999
4458 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4461 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4462 & id%COMM, id%MYID )
4463.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4464.EQ.
elseif(trim(mode)"restore
") then
4466 read(unit,iostat=err) size_array_INT8_1
4469 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4472 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4473 & id%COMM, id%MYID )
4474.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4475.EQ.
if(size_array_INT8_1int(-999,8)) then
4476 SIZE_GEST(i1)=SIZE_INT8+SIZE_INT
4477 SIZE_VARIABLES(i1)=0_8
4478 read(unit,iostat=err) dummy
4480 SIZE_GEST(i1)=SIZE_INT8
4481 SIZE_VARIABLES(i1)=size_array_INT8_1*SIZE_INT
4482 allocate(id%INTARR(size_array_INT8_1), stat=allocok)
4483.GT.
if (allocok 0) THEN
4485 CALL MUMPS_SETI8TOI4(
4486 & TOTAL_STRUC_SIZE-size_allocated
4489 read(unit,iostat=err) id%INTARR
4491 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4492 & id%COMM, id%MYID )
4493.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4496 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4499 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4500 & id%COMM, id%MYID )
4501.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4506.EQ.
if(trim(mode)"memory_save
") then
4507 SIZE_VARIABLES(i1)=SIZE_INT
4508.EQ.
elseif(trim(mode)"save") then
4509 write(unit,iostat=err) id%NELT_loc
4512 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4515 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4516 & id%COMM, id%MYID )
4517.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4518.EQ.
elseif(trim(mode)"restore
") then
4519 SIZE_VARIABLES(i1)=SIZE_INT
4520 read(unit,iostat=err) id%NELT_loc
4523 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4526 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4527 & id%COMM, id%MYID )
4528.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4532.EQ.
if(trim(mode)"memory_save
") then
4533 SIZE_VARIABLES(i1)=SIZE_INT
4534.EQ.
elseif(trim(mode)"save") then
4535 write(unit,iostat=err) id%LELTVAR
4538 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4541 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4542 & id%COMM, id%MYID )
4543.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4544.EQ.
elseif(trim(mode)"restore
") then
4545 SIZE_VARIABLES(i1)=SIZE_INT
4546 read(unit,iostat=err) id%LELTVAR
4549 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4552 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4553 & id%COMM, id%MYID )
4554.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4558.EQ.
if(trim(mode)"memory_save
") then
4559 IF(associated(id%ELTPROC)) THEN
4560 SIZE_GEST(i1)=SIZE_INT
4561 SIZE_VARIABLES(i1)=size(id%ELTPROC,1)*SIZE_INT
4563 SIZE_GEST(i1)=SIZE_INT*2
4564 SIZE_VARIABLES(i1)=0_8
4566.EQ.
elseif(trim(mode)"save") then
4567 IF(associated(id%ELTPROC)) THEN
4568 write(unit,iostat=err) size(id%ELTPROC,1)
4571 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4574 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4575 & id%COMM, id%MYID )
4576.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4577 write(unit,iostat=err) id%ELTPROC
4579 write(unit,iostat=err) -999
4582 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4585 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4586 & id%COMM, id%MYID )
4587.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4588 write(unit,iostat=err) -999
4592 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4595 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4596 & id%COMM, id%MYID )
4597.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4598.EQ.
elseif(trim(mode)"restore
") then
4600 read(unit,iostat=err) size_array1
4603 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4606 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4607 & id%COMM, id%MYID )
4608.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4609.EQ.
if(size_array1-999) then
4610 SIZE_GEST(i1)=SIZE_INT*2
4611 SIZE_VARIABLES(i1)=0_8
4612 read(unit,iostat=err) dummy
4614 SIZE_GEST(i1)=SIZE_INT
4615 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
4616 allocate(id%ELTPROC(size_array1), stat=allocok)
4617.GT.
if (allocok 0) THEN
4619 CALL MUMPS_SETI8TOI4(
4620 & TOTAL_STRUC_SIZE-size_allocated
4623 read(unit,iostat=err) id%ELTPROC
4625 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4626 & id%COMM, id%MYID )
4627.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4630 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4633 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4634 & id%COMM, id%MYID )
4635.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4639.EQ.
if(trim(mode)"memory_save
") then
4640 IF(associated(id%I4_L0_OMP)) THEN
4641 SIZE_GEST(i1)=SIZE_INT*2
4642 SIZE_VARIABLES(i1)=size(id%I4_L0_OMP,1)
4643 & *size(id%I4_L0_OMP,2)*SIZE_INT
4645 SIZE_GEST(i1)=SIZE_INT*3
4646 SIZE_VARIABLES(i1)=0_8
4648.EQ.
elseif(trim(mode)"save") then
4649 IF(associated(id%I4_L0_OMP)) THEN
4650 write(unit,iostat=err) size(id%I4_L0_OMP,1)
4651 & ,size(id%I4_L0_OMP,2)
4654 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4657 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4658 & id%COMM, id%MYID )
4659.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4660 write(unit,iostat=err) id%I4_L0_OMP
4662 write(unit,iostat=err) -999,-998
4665 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4668 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4669 & id%COMM, id%MYID )
4670.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4671 write(unit,iostat=err) -999
4675 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4678 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4679 & id%COMM, id%MYID )
4680.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4681.EQ.
elseif(trim(mode)"restore
") then
4682 nullify(id%I4_L0_OMP)
4683 read(unit,iostat=err) size_array1,size_array2
4686 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4689 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4690 & id%COMM, id%MYID )
4691.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4692.EQ.
if(size_array1-999) then
4693 SIZE_GEST(i1)=SIZE_INT*3
4694 SIZE_VARIABLES(i1)=0_8
4695 read(unit,iostat=err) dummy
4697 SIZE_GEST(i1)=SIZE_INT*2
4698 SIZE_VARIABLES(i1)=size_array1*size_array2*SIZE_INT
4699 allocate(id%I4_L0_OMP(size_array1,size_array2)
4701.GT.
if (allocok 0) THEN
4703 CALL MUMPS_SETI8TOI4(
4704 & TOTAL_STRUC_SIZE-size_allocated
4707 read(unit,iostat=err) id%I4_L0_OMP
4709 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4710 & id%COMM, id%MYID )
4711.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4714 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4717 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4718 & id%COMM, id%MYID )
4719.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4723.EQ.
if(trim(mode)"memory_save
") then
4724 IF(associated(id%I8_L0_OMP)) THEN
4725 SIZE_GEST(i1)=SIZE_INT*2
4726 SIZE_VARIABLES(i1)=size(id%I8_L0_OMP,1)
4727 & *size(id%I8_L0_OMP,2)*SIZE_INT8
4729 SIZE_GEST(i1)=SIZE_INT*3
4730 SIZE_VARIABLES(i1)=0_8
4732.EQ.
elseif(trim(mode)"save") then
4733 IF(associated(id%I8_L0_OMP)) THEN
4734 write(unit,iostat=err) size(id%I8_L0_OMP,1)
4735 & ,size(id%I8_L0_OMP,2)
4738 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4741 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4742 & id%COMM, id%MYID )
4743.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4744 write(unit,iostat=err) id%I8_L0_OMP
4746 write(unit,iostat=err) -999,-998
4749 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4752 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4753 & id%COMM, id%MYID )
4754.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4755 write(unit,iostat=err) -999
4759 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4762 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4763 & id%COMM, id%MYID )
4764.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4765.EQ.
elseif(trim(mode)"restore
") then
4766 nullify(id%I8_L0_OMP)
4767 read(unit,iostat=err) size_array1,size_array2
4770 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4773 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4774 & id%COMM, id%MYID )
4775.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4776.EQ.
if(size_array1-999) then
4777 SIZE_GEST(i1)=SIZE_INT*3
4778 SIZE_VARIABLES(i1)=0_8
4779 read(unit,iostat=err) dummy
4781 SIZE_GEST(i1)=SIZE_INT*2
4782 SIZE_VARIABLES(i1)=size_array1*size_array2*SIZE_INT8
4783 allocate(id%I8_L0_OMP(size_array1,size_array2)
4785.GT.
if (allocok 0) THEN
4787 CALL MUMPS_SETI8TOI4(
4788 & TOTAL_STRUC_SIZE-size_allocated
4791 read(unit,iostat=err) id%I8_L0_OMP
4793 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4794 & id%COMM, id%MYID )
4795.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4798 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4801 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4802 & id%COMM, id%MYID )
4803.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4807.EQ.
if(trim(mode)"memory_save")
then
4808 IF(
associated(id%CANDIDATES))
THEN
4809 size_gest(i1)=size_int*2
4810 size_variables(i1)=
size(id%CANDIDATES,1)
4811 & *
size(id%CANDIDATES,2)*size_int
4813 size_gest(i1)=size_int*3
4814 size_variables(i1)=0_8
4816 elseif(trim(mode).EQ.
"save")
then
4817 IF(
associated(id%CANDIDATES))
THEN
4818 write(unit,iostat=err)
size(id%CANDIDATES,1)
4819 & ,
size(id%CANDIDATES,2)
4826 & id%COMM, id%MYID )
4827 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4828 write(unit,iostat=err) id%CANDIDATES
4830 write(unit,iostat=err) -999,-998
4837 & id%COMM, id%MYID )
4838 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4839 write(unit,iostat=err) -999
4847 & id%COMM, id%MYID )
4848 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4849 elseif(trim(mode).EQ.
"restore")
then
4850 nullify(id%CANDIDATES)
4851 read(unit,iostat=err) size_array1,size_array2
4858 & id%COMM, id%MYID )
4859 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4860 if(size_array1.EQ.-999)
then
4861 size_gest(i1)=size_int*3
4862 size_variables(i1)=0_8
4863 read(unit,iostat=err) dummy
4865 size_gest(i1)=size_int*2
4866 size_variables(i1)=size_array1*size_array2*size_int
4867 allocate(id%CANDIDATES(size_array1
4869 if (allocok .GT. 0)
THEN
4872 & total_struc_size-size_allocated
4875 read(unit,iostat=err) id%CANDIDATES
4878 & id%COMM, id%MYID )
4879 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4886 & id%COMM, id%MYID )
4887 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4889 CASE(
"ISTEP_TO_INIV2")
4891 if(trim(mode).EQ.
"memory_save")
then
4892 IF(
associated(id%ISTEP_TO_INIV2))
THEN
4894 size_variables(i1)=
size(id%ISTEP_TO_INIV2,1)*size_int
4896 size_gest(i1)=size_int*2
4897 size_variables(i1)=0_8
4899 elseif(trim(mode).EQ.
"save")
then
4900 IF(
associated(id%ISTEP_TO_INIV2))
THEN
4901 write(unit,iostat=err)
size(id%ISTEP_TO_INIV2,1)
4908 & id%COMM, id%MYID )
4909 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4910 write(unit,iostat=err) id%ISTEP_TO_INIV2
4912 write(unit,iostat=err) -999
4919 & id%COMM, id%MYID )
4920 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4921 write(unit,iostat=err) -999
4929 & id%COMM, id%MYID )
4930 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4931 elseif(trim(mode).EQ.
"restore")
then
4932 nullify(id%ISTEP_TO_INIV2)
4933 read(unit,iostat=err) size_array1
4940 & id%COMM, id%MYID )
4941 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4942 if(size_array1.EQ.-999)
then
4943 size_gest(i1)=size_int*2
4944 size_variables(i1)=0_8
4945 read(unit,iostat=err) dummy
4947 size_gest(i1)=size_int
4948 size_variables(i1)=size_array1*size_int
4949 allocate(id%ISTEP_TO_INIV2(size_array1), stat=allocok)
4950 if (allocok .GT. 0)
THEN
4953 & total_struc_size-size_allocated
4956 read(unit,iostat=err) id%ISTEP_TO_INIV2
4959 & id%COMM, id%MYID )
4960 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4967 & id%COMM, id%MYID )
4968 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4972 if(trim(mode).EQ.
"memory_save")
then
4973 IF(
associated(id%FUTURE_NIV2))
THEN
4974 size_gest(i1)=size_int
4975 size_variables(i1)=
size(id%FUTURE_NIV2,1)*size_int
4977 size_gest(i1)=size_int*2
4978 size_variables(i1)=0_8
4980 elseif(trim(mode).EQ.
"save")
then
4981 IF(
associated(id%FUTURE_NIV2))
THEN
4982 write(unit,iostat=err)
size(id%FUTURE_NIV2,1)
4989 & id%COMM, id%MYID )
4990 IF ( id%INFO(1) .LT. 0 )
GOTO 100
4991 write(unit,iostat=err) id%FUTURE_NIV2
4993 write(unit,iostat=err) -999
5000 & id%COMM, id%MYID )
5001 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5002 write(unit,iostat=err) -999
5010 & id%COMM, id%MYID )
5011 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5012 elseif(trim(mode).EQ.
"restore")
then
5013 nullify(id%FUTURE_NIV2)
5014 read(unit,iostat=err) size_array1
5021 & id%COMM, id%MYID )
5022 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5023 if(size_array1.EQ.-999)
then
5024 size_gest(i1)=size_int*2
5025 size_variables(i1)=0_8
5026 read(unit,iostat=err) dummy
5028 size_gest(i1)=size_int
5029 size_variables(i1)=size_array1*size_int
5030 allocate(id%FUTURE_NIV2(size_array1), stat=allocok)
5031 if (allocok .GT. 0)
THEN
5034 & total_struc_size-size_allocated
5037 read(unit,iostat=err) id%FUTURE_NIV2
5040 & id%COMM, id%MYID )
5041 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5048 & id%COMM, id%MYID )
5049 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5051 CASE(
"TAB_POS_IN_PERE")
5053 if(trim(mode).EQ.
"memory_save")
then
5054 IF(
associated(id%TAB_POS_IN_PERE))
THEN
5055 size_gest(i1)=size_int*2
5056 size_variables(i1)=
size(id%TAB_POS_IN_PERE,1)
5057 & *
size(id%TAB_POS_IN_PERE,2)*size_int
5059 size_gest(i1)=size_int*3
5060 size_variables(i1)=0_8
5062 elseif(trim(mode).EQ.
"save")
then
5063 IF(
associated(id%TAB_POS_IN_PERE))
THEN
5064 write(unit,iostat=err)
size(id%TAB_POS_IN_PERE,1)
5065 & ,
size(id%TAB_POS_IN_PERE,2)
5072 & id%COMM, id%MYID )
5073 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5074 write(unit,iostat=err) id%TAB_POS_IN_PERE
5076 write(unit,iostat=err) -999,-998
5083 & id%COMM, id%MYID )
5084 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5085 write(unit,iostat=err) -999
5093 & id%COMM, id%MYID )
5094 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5095 elseif(trim(mode).EQ.
"restore")
then
5096 nullify(id%TAB_POS_IN_PERE)
5097 read(unit,iostat=err) size_array1,size_array2
5104 & id%COMM, id%MYID )
5105 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5106 if(size_array1.EQ.-999)
then
5107 size_gest(i1)=size_int*3
5108 size_variables(i1)=0_8
5109 read(unit,iostat=err) dummy
5111 size_gest(i1)=size_int*2
5112 size_variables(i1)=size_array1*size_array2*size_int
5113 allocate(id%TAB_POS_IN_PERE(size_array1,size_array2)
5115 if (allocok .GT. 0)
THEN
5118 & total_struc_size-size_allocated
5121 read(unit,iostat=err) id%TAB_POS_IN_PERE
5124 & id%COMM, id%MYID )
5125 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5132 & id%COMM, id%MYID )
5133 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5137 if(trim(mode).EQ.
"memory_save")
then
5138 IF(
associated(id%I_AM_CAND))
THEN
5139 size_gest(i1)=size_int
5140 size_variables(i1)=
size(id%I_AM_CAND,1)*size_logical
5142 size_gest(i1)=size_int*2
5143 size_variables(i1)=0_8
5145 elseif(trim(mode).EQ.
"save")
then
5146 IF(
associated(id%I_AM_CAND))
THEN
5147 write(unit,iostat=err)
size(id%I_AM_CAND,1)
5154 & id%COMM, id%MYID )
5155 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5156 write(unit,iostat=err) id%I_AM_CAND
5158 write(unit,iostat=err) -999
5165 & id%COMM, id%MYID )
5166 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5167 write(unit,iostat=err) -999
5175 & id%COMM, id%MYID )
5176 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5177 elseif(trim(mode).EQ.
"restore")
then
5178 nullify(id%I_AM_CAND)
5179 read(unit,iostat=err) size_array1
5186 & id%COMM, id%MYID )
5187 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5188 if(size_array1.EQ.-999)
then
5189 size_gest(i1)=size_int*2
5190 size_variables(i1)=0_8
5191 read(unit,iostat=err) dummy
5193 size_gest(i1)=size_int
5194 size_variables(i1)=size_array1*size_logical
5195 allocate(id%I_AM_CAND(size_array1), stat=allocok)
5196 if (allocok .GT. 0)
THEN
5199 & total_struc_size-size_allocated
5202 read(unit,iostat=err) id%I_AM_CAND
5205 & id%COMM, id%MYID )
5206 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5213 & id%COMM, id%MYID )
5214 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5218 if(trim(mode).EQ.
"memory_save")
then
5219 IF(
associated(id%MEM_DIST))
THEN
5220 size_gest(i1)=size_int
5221 size_variables(i1)=
size(id%MEM_DIST,1)*size_int
5223 size_gest(i1)=size_int*2
5224 size_variables(i1)=0_8
5226 elseif(trim(mode).EQ.
"save")
then
5227 IF(
associated(id%MEM_DIST))
THEN
5228 write(unit,iostat=err)
size(id%MEM_DIST,1)
5235 & id%COMM, id%MYID )
5236 write(unit,iostat=err) id%MEM_DIST
5238 write(unit,iostat=err) -999
5245 & id%COMM, id%MYID )
5246 write(unit,iostat=err) -999
5254 & id%COMM, id%MYID )
5255 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5256 elseif(trim(mode).EQ.
"restore")
then
5257 nullify(id%MEM_DIST)
5258 read(unit,iostat=err) size_array1
5265 & id%COMM, id%MYID )
5266 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5267 if(size_array1.EQ.-999)
then
5268 size_gest(i1)=size_int*2
5269 size_variables(i1)=0_8
5270 read(unit,iostat=err) dummy
5272 size_gest(i1)=size_int
5273 size_variables(i1)=size_array1*size_int
5274 allocate(id%MEM_DIST(0:size_array1-1), stat=allocok)
5275 if (allocok .GT. 0)
THEN
5278 & total_struc_size-size_allocated
5281 read(unit,iostat=err) id%MEM_DIST
5284 & id%COMM, id%MYID )
5285 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5292 & id%COMM, id%MYID )
5293 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5295 CASE(
"POSINRHSCOMP_ROW")
5297 if(trim(mode).EQ.
"memory_save")
then
5298 IF(
associated(id%POSINRHSCOMP_ROW))
THEN
5299 size_gest(i1)=size_int
5301 &
size(id%POSINRHSCOMP_ROW,1)*size_int
5303 size_gest(i1)=size_int*2
5304 size_variables(i1)=0_8
5306 elseif(trim(mode).EQ.
"save")
then
5307 IF(
associated(id%POSINRHSCOMP_ROW))
THEN
5308 write(unit,iostat=err)
size(id%POSINRHSCOMP_ROW,1)
5315 & id%COMM, id%MYID )
5316 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5317 write(unit,iostat=err) id%POSINRHSCOMP_ROW
5319 write(unit,iostat=err) -999
5326 & id%COMM, id%MYID )
5327 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5328 write(unit,iostat=err) -999
5336 & id%COMM, id%MYID )
5338 elseif(trim(mode).EQ.
"restore")
then
5339 nullify(id%POSINRHSCOMP_ROW)
5340 read(unit,iostat=err) size_array1
5347 & id%COMM, id%MYID )
5348 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5349 if(size_array1.EQ.-999)
then
5350 size_gest(i1)=size_int*2
5351 size_variables(i1)=0_8
5352 read(unit,iostat=err) dummy
5354 size_gest(i1)=size_int
5355 size_variables(i1)=size_array1*size_int
5356 allocate(id%POSINRHSCOMP_ROW(size_array1),
5358 if (allocok .GT. 0)
THEN
5361 & total_struc_size-size_allocated
5364 read(unit,iostat=err) id%POSINRHSCOMP_ROW
5367 & id%COMM, id%MYID )
5368 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5375 & id%COMM, id%MYID )
5376 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5378 CASE(
"POSINRHSCOMP_COL_ALLOC")
5380 if(trim(mode).EQ.
"memory_save")
then
5381 size_variables(i1)=size_logical
5382 elseif(trim(mode).EQ.
"save")
then
5383 write(unit,iostat=err) id%POSINRHSCOMP_COL_ALLOC
5390 & id%COMM, id%MYID )
5391 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5392 elseif(trim(mode).EQ.
"restore")
then
5393 size_variables(i1)=size_logical
5394 read(unit,iostat=err) id%POSINRHSCOMP_COL_ALLOC
5401 & id%COMM, id%MYID )
5402 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5404 CASE(
"POSINRHSCOMP_COL")
5406 if(trim(mode).EQ.
"memory_save")
then
5407 IF(
associated(id%POSINRHSCOMP_COL))
THEN
5408 IF(id%POSINRHSCOMP_COL_ALLOC)
THEN
5409 size_gest(i1)=size_int
5411 &
size(id%POSINRHSCOMP_COL,1)*size_int
5413 size_gest(i1)=size_int*2
5414 size_variables(i1)=0_8
5417 size_gest(i1)=size_int*2
5418 size_variables(i1)=0_8
5420 elseif(trim(mode).EQ.
"save")
then
5421 IF(
associated(id%POSINRHSCOMP_COL))
THEN
5422 IF(id%POSINRHSCOMP_COL_ALLOC)
THEN
5423 write(unit,iostat=err)
size(id%POSINRHSCOMP_COL,1)
5427 & total_file_size-size_written,
5431 & id%COMM, id%MYID )
5432 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5433 write(unit,iostat=err) id%POSINRHSCOMP_COL
5435 write(unit,iostat=err)
size(id%POSINRHSCOMP_COL,1)
5439 & total_file_size-size_written,
5443 & id%COMM, id%MYID )
5444 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5445 write(unit,iostat=err) -999
5448 write(unit,iostat=err) -999
5455 & id%COMM, id%MYID )
5456 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5457 write(unit,iostat=err) -999
5465 & id%COMM, id%MYID )
5466 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5467 elseif(trim(mode).EQ.
"restore")
then
5468 nullify(id%POSINRHSCOMP_COL)
5469 read(unit,iostat=err) size_array1
5476 & id%COMM, id%MYID )
5477 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5478 if(size_array1.EQ.-999)
then
5479 size_gest(i1)=size_int*2
5480 size_variables(i1)=0_8
5481 read(unit,iostat=err) dummy
5483 if(id%POSINRHSCOMP_COL_ALLOC)
then
5484 size_gest(i1)=size_int
5485 size_variables(i1)=size_array1*size_int
5486 allocate(id%POSINRHSCOMP_COL(size_array1),
5488 if (allocok .GT. 0)
THEN
5491 & total_struc_size-size_allocated
5494 read(unit,iostat=err) id%POSINRHSCOMP_COL
5496 size_gest(i1)=size_int*2
5497 size_variables(i1)=0_8
5498 read(unit,iostat=err) dummy
5499 id%POSINRHSCOMP_COL=>id%POSINRHSCOMP_ROW
5503 & id%COMM, id%MYID )
5504 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5511 & id%COMM, id%MYID )
5512 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5516 if(trim(mode).EQ.
"memory_save")
then
5517 IF(
associated(id%RHSCOMP))
THEN
5518 size_gest(i1)=size_int8
5519 size_variables(i1)=id%KEEP8(25)*size_arith_dep
5521 size_gest(i1)=size_int8+size_int
5522 size_variables(i1)=0_8
5524 elseif(trim(mode).EQ.
"save")
then
5525 IF(
associated(id%RHSCOMP))
THEN
5526 write(unit,iostat=err) id%KEEP8(25)
5533 & id%COMM, id%MYID )
5534 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5535 write(unit,iostat=err) id%RHSCOMP
5537 write(unit,iostat=err) int(-999,8)
5544 & id%COMM, id%MYID )
5545 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5546 write(unit,iostat=err) -999
5554 & id%COMM, id%MYID )
5555 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5556 elseif(trim(mode).EQ.
"restore")
then
5558 read(unit,iostat=err) size_array_int8_1
5565 & id%COMM, id%MYID )
5566 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5567 if(size_array_int8_1.EQ.int(-999,8))
then
5568 size_gest(i1)=size_int8+size_int
5569 size_variables(i1)=0_8
5570 read(unit,iostat=err) dummy
5572 size_gest(i1)=size_int8
5573 size_variables(i1)=size_array_int8_1*size_arith_dep
5574 allocate(id%RHSCOMP(size_array_int8_1), stat=allocok)
5575 if (allocok .GT. 0)
THEN
5578 & total_struc_size-size_allocated
5581 read(unit,iostat=err) id%RHSCOMP
5584 & id%COMM, id%MYID )
5585 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5592 & id%COMM, id%MYID )
5593 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5597 if(trim(mode).EQ.
"memory_save")
then
5598 IF(
associated(id%MEM_SUBTREE))
THEN
5599 size_gest(i1)=size_int
5601 &
size(id%MEM_SUBTREE,1)*size_double_precision
5603 size_gest(i1)=size_int*2
5604 size_variables(i1)=0_8
5606 elseif(trim(mode).EQ.
"save")
then
5607 IF(
associated(id%MEM_SUBTREE))
THEN
5608 write(unit,iostat=err)
size(id%MEM_SUBTREE,1)
5615 & id%COMM, id%MYID )
5616 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5617 write(unit,iostat=err) id%MEM_SUBTREE
5619 write(unit,iostat=err) -999
5626 & id%COMM, id%MYID )
5627 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5628 write(unit,iostat=err) -999
5636 & id%COMM, id%MYID )
5637 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5638 elseif(trim(mode).EQ.
"restore")
then
5639 nullify(id%MEM_SUBTREE)
5640 read(unit,iostat=err) size_array1
5647 & id%COMM, id%MYID )
5648 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5649 if(size_array1.EQ.-999)
then
5650 size_gest(i1)=size_int*2
5651 size_variables(i1)=0_8
5652 read(unit,iostat=err) dummy
5654 size_gest(i1)=size_int
5655 size_variables(i1)=size_array1*size_double_precision
5656 allocate(id%MEM_SUBTREE(size_array1), stat=allocok)
5657 if (allocok .GT. 0)
THEN
5660 & total_struc_size-size_allocated
5663 read(unit,iostat=err) id%MEM_SUBTREE
5666 & id%COMM, id%MYID )
5667 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5674 & id%COMM, id%MYID )
5675 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5679 if(trim(mode).EQ.
"memory_save")
then
5680 IF(
associated(id%COST_TRAV))
THEN
5681 size_gest(i1)=size_int
5683 &
size(id%COST_TRAV,1)*size_double_precision
5685 size_gest(i1)=size_int*2
5686 size_variables(i1)=0_8
5688 elseif(trim(mode).EQ.
"save")
then
5689 IF(
associated(id%COST_TRAV))
THEN
5690 write(unit,iostat=err)
size(id%COST_TRAV,1)
5697 & id%COMM, id%MYID )
5698 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5699 write(unit,iostat=err) id%COST_TRAV
5701 write(unit,iostat=err) -999
5708 & id%COMM, id%MYID )
5709 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5710 write(unit,iostat=err) -999
5718 & id%COMM, id%MYID )
5719 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5720 elseif(trim(mode).EQ.
"restore")
then
5721 nullify(id%COST_TRAV)
5722 read(unit,iostat=err) size_array1
5729 & id%COMM, id%MYID )
5730 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5731 if(size_array1.EQ.-999)
then
5732 size_gest(i1)=size_int*2
5733 size_variables(i1)=0_8
5734 read(unit,iostat=err) dummy
5736 size_gest(i1)=size_int
5737 size_variables(i1)=size_array1*size_double_precision
5738 allocate(id%COST_TRAV(size_array1), stat=allocok)
5739 if (allocok .GT. 0)
THEN
5742 & total_struc_size-size_allocated
5745 read(unit,iostat=err) id%COST_TRAV
5748 & id%COMM, id%MYID )
5749 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5756 & id%COMM, id%MYID )
5757 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5759 CASE(
"MY_ROOT_SBTR")
5761 if(trim(mode).EQ.
"memory_save")
then
5762 IF(
associated(id%MY_ROOT_SBTR))
THEN
5763 size_gest(i1)=size_int
5764 size_variables(i1)=
size(id%MY_ROOT_SBTR,1)*size_int
5766 size_gest(i1)=size_int*2
5767 size_variables(i1)=0_8
5769 elseif(trim(mode).EQ.
"save")
then
5770 IF(
associated(id%MY_ROOT_SBTR))
THEN
5771 write(unit,iostat=err)
size(id%MY_ROOT_SBTR,1)
5778 & id%COMM, id%MYID )
5779 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5780 write(unit,iostat=err) id%MY_ROOT_SBTR
5782 write(unit,iostat=err) -999
5789 & id%COMM, id%MYID )
5790 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5791 write(unit,iostat=err) -999
5799 & id%COMM, id%MYID )
5800 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5801 elseif(trim(mode).EQ."restore
") then
5802 nullify(id%MY_ROOT_SBTR)
5803 read(unit,iostat=err) size_array1
5806 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5809 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5810 & id%COMM, id%MYID )
5811.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5812.EQ.
if(size_array1-999) then
5813 SIZE_GEST(i1)=SIZE_INT*2
5814 SIZE_VARIABLES(i1)=0_8
5815 read(unit,iostat=err) dummy
5817 SIZE_GEST(i1)=SIZE_INT
5818 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
5819 allocate(id%MY_ROOT_SBTR(size_array1), stat=allocok)
5820.GT.
if (allocok 0) THEN
5822 CALL MUMPS_SETI8TOI4(
5823 & TOTAL_STRUC_SIZE-size_allocated
5826 read(unit,iostat=err) id%MY_ROOT_SBTR
5828 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5829 & id%COMM, id%MYID )
5830.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5833 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5836 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5837 & id%COMM, id%MYID )
5838.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5840 CASE("my_first_leaf")
5842 if(trim(mode).EQ.
"memory_save")
then
5843 IF(
associated(id%MY_FIRST_LEAF))
THEN
5844 size_gest(i1)=size_int
5845 size_variables(i1)=
size(id%MY_FIRST_LEAF,1)*size_int
5847 size_gest(i1)=size_int*2
5848 size_variables(i1)=0_8
5850 elseif(trim(mode).EQ.
"save")
then
5851 IF(
associated(id%MY_FIRST_LEAF))
THEN
5852 write(unit,iostat=err)
size(id%MY_FIRST_LEAF,1)
5859 & id%COMM, id%MYID )
5860 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5861 write(unit,iostat=err) id%MY_FIRST_LEAF
5863 write(unit,iostat=err) -999
5870 & id%COMM, id%MYID )
5871 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5872 write(unit,iostat=err) -999
5880 & id%COMM, id%MYID )
5881 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5882 elseif(trim(mode).EQ.
"restore")
then
5883 nullify(id%MY_FIRST_LEAF)
5884 read(unit,iostat=err) size_array1
5891 & id%COMM, id%MYID )
5892 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5893 if(size_array1.EQ.-999)
then
5894 size_gest(i1)=size_int*2
5895 size_variables(i1)=0_8
5896 read(unit,iostat=err) dummy
5898 size_gest(i1)=size_int
5899 size_variables(i1)=size_array1*size_int
5900 allocate(id%MY_FIRST_LEAF(size_array1), stat=allocok)
5901 if (allocok .GT.
THEN
5904 & total_struc_size-size_allocated
5907 read(unit,iostat=err) id%MY_FIRST_LEAF
5910 & id%COMM, id%MYID )
5911 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5918 & id%COMM, id%MYID )
5919 IF ( id%INFO(1) .LT.
GOTO 100
5923 if(trim(mode).EQ.
"memory_save")
then
5924 IF(
associated(id%MY_NB_LEAF))
THEN
5925 size_gest(i1)=size_int
5926 size_variables(i1)=
size(id%MY_NB_LEAF,1)*size_int
5928 size_gest(i1)=size_int*2
5929 size_variables(i1)=0_8
5931 elseif(trim(mode).EQ.
"save")
then
5932 IF(
associated(id%MY_NB_LEAF))
THEN
5933 write(unit,iostat=err)
size(id%MY_NB_LEAF,1)
5940 & id%COMM, id%MYID )
5941 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5942 write(unit,iostat=err) id%MY_NB_LEAF
5944 write(unit,iostat=err) -999
5951 & id%COMM, id%MYID )
5952 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5953 write(unit,iostat=err) -999
5961 & id%COMM, id%MYID )
5962 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5963 elseif(trim(mode).EQ.
"restore")
then
5964 nullify(id%MY_NB_LEAF)
5965 read(unit,iostat=err) size_array1
5972 & id%COMM, id%MYID )
5973 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5974 if(size_array1.EQ.-999)
then
5975 size_gest(i1)=size_int*2
5976 size_variables(i1)=0_8
5977 read(unit,iostat=err) dummy
5979 size_gest(i1)=size_int
5980 size_variables(i1)=size_array1*size_int
5981 allocate(id%MY_NB_LEAF(size_array1), stat=allocok)
5982 if (allocok .GT. 0)
THEN
5985 & total_struc_size-size_allocated
5988 read(unit,iostat=err) id%MY_NB_LEAF
5991 & id%COMM, id%MYID )
5992 IF ( id%INFO(1) .LT. 0 )
GOTO 100
5999 & id%COMM, id%MYID )
6000 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6004 if(trim(mode).EQ.
"memory_save")
then
6005 IF(
associated(id%DEPTH_FIRST))
THEN
6006 size_gest(i1)=size_int
6007 size_variables(i1)=
size(id%DEPTH_FIRST,1)*size_int
6009 size_gest(i1)=size_int*2
6010 size_variables(i1)=0_8
6012 elseif(trim(mode).EQ.
"save")
then
6013 IF(
associated(id%DEPTH_FIRST))
THEN
6014 write(unit,iostat=err)
size(id%DEPTH_FIRST,1)
6021 & id%COMM, id%MYID )
6022 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6023 write(unit,iostat=err) id%DEPTH_FIRST
6025 write(unit,iostat=err) -999
6032 & id%COMM, id%MYID )
6033 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6034 write(unit,iostat=err) -999
6042 & id%COMM, id%MYID )
6043 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6044 elseif(trim(mode).EQ.
"restore")
then
6045 nullify(id%DEPTH_FIRST)
6046 read(unit,iostat=err) size_array1
6053 & id%COMM, id%MYID )
6054 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6055 if(size_array1.EQ.-999)
then
6056 size_gest(i1)=size_int*2
6057 size_variables(i1)=0_8
6058 read(unit,iostat=err) dummy
6060 size_gest(i1)=size_int
6061 size_variables(i1)=size_array1*size_int
6062 allocate(id%DEPTH_FIRST(size_array1), stat=allocok)
6063 if (allocok .GT. 0)
THEN
6066 & total_struc_size-size_allocated
6069 read(unit,iostat=err) id%DEPTH_FIRST
6072 & id%COMM, id%MYID )
6073 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6080 & id%COMM, id%MYID )
6081 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6083 CASE(
"DEPTH_FIRST_SEQ")
6085 if(trim(mode).EQ.
"memory_save")
then
6086 IF(
associated(id%DEPTH_FIRST_SEQ))
THEN
6087 size_gest(i1)=size_int
6088 size_variables(i1)=
size(id%DEPTH_FIRST_SEQ,1)*size_int
6090 size_gest(i1)=size_int*2
6091 size_variables(i1)=0_8
6093 elseif(trim(mode).EQ.
"save")
then
6094 IF(
associated(id%DEPTH_FIRST_SEQ))
THEN
6095 write(unit,iostat=err)
size(id%DEPTH_FIRST_SEQ,1)
6102 & id%COMM, id%MYID )
6103 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6104 write(unit,iostat=err) id%DEPTH_FIRST_SEQ
6106 write(unit,iostat=err) -999
6113 & id%COMM, id%MYID )
6114 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6115 write(unit,iostat=err) -999
6123 & id%COMM, id%MYID )
6124 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6125 elseif(trim(mode).EQ.
"restore")
then
6126 nullify(id%DEPTH_FIRST_SEQ)
6127 read(unit,iostat=err) size_array1
6134 & id%COMM, id%MYID )
6135 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6136 if(size_array1.EQ.-999)
then
6137 size_gest(i1)=size_int*2
6138 size_variables(i1)=0_8
6139 read(unit,iostat=err) dummy
6141 size_gest(i1)=size_int
6142 size_variables(i1)=size_array1*size_int
6143 allocate(id%DEPTH_FIRST_SEQ(size_array1),
6145 if (allocok .GT. 0)
THEN
6148 & total_struc_size-size_allocated
6151 read(unit,iostat=err) id%DEPTH_FIRST_SEQ
6154 & id%COMM, id%MYID )
6155 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6162 & id%COMM, id%MYID )
6163 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6167 if(trim(mode).EQ.
"memory_save")
then
6168 IF(
associated(id%SBTR_ID))
THEN
6169 size_gest(i1)=size_int
6170 size_variables(i1)=
size(id%SBTR_ID,1)*size_int
6172 size_gest(i1)=size_int*2
6173 size_variables(i1)=0_8
6175 elseif(trim(mode).EQ.
"save")
then
6176 IF(
associated(id%SBTR_ID))
THEN
6177 write(unit,iostat=err)
size(id%SBTR_ID,1)
6184 & id%COMM, id%MYID )
6185 IF ( id%INFO(1) .LT. 0 )
GOTO
6186 write(unit,iostat=err) id%SBTR_ID
6188 write(unit,iostat=err) -999
6195 & id%COMM, id%MYID )
6196 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6197 write(unit,iostat=err) -999
6205 & id%COMM, id%MYID )
6206 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6207 elseif(trim(mode).EQ.
"restore")
then
6209 read(unit,iostat=err) size_array1
6216 & id%COMM, id%MYID )
6217 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6218 if(size_array1.EQ.-999)
then
6219 size_gest(i1)=size_int*2
6220 size_variables(i1)=0_8
6221 read(unit,iostat=err) dummy
6223 size_gest(i1)=size_int
6224 size_variables(i1)=size_array1*size_int
6225 allocate(id%SBTR_ID(size_array1), stat=allocok)
6226 if (allocok .GT. 0)
THEN
6229 & total_struc_size-size_allocated
6232 read(unit,iostat=err) id%SBTR_ID
6235 & id%COMM, id%MYID )
6236 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6243 & id%COMM, id%MYID )
6244 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6252 if(trim(mode).EQ.
"memory_save")
then
6254 elseif(trim(mode).EQ.
"save")
then
6255 write(unit,iostat=err) id%NBSA_LOCAL
6262 & id%COMM, id%MYID )
6263 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6264 elseif(trim(mode).EQ.
"restore")
then
6265 size_variables(i1)=size_int
6266 read(unit,iostat=err) id%NBSA_LOCAL
6273 & id%COMM, id%MYID )
6274 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6277 if(trim(mode).EQ.
"memory_save")
then
6278 diff_size_alloc_read(i1)=size_int
6279 elseif(trim(mode).EQ.
"save")
then
6280 diff_size_alloc_read(i1)=size_int
6281 elseif(trim(mode).EQ.
"restore")
then
6282 diff_size_alloc_read(i1)=size_int
6285 CASE(
"INSTANCE_NUMBER")
6287 if(trim(mode).EQ.
"memory_save")
then
6288 size_variables(i1)=size_int
6289 elseif(trim(mode).EQ.
"save")
then
6290 write(unit,iostat=err) id%INSTANCE_NUMBER
6297 & id%COMM, id%MYID )
6298 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6299 elseif(trim(mode).EQ.
"restore")
then
6300 size_variables(i1)=size_int
6301 read(unit,iostat=err) id%INSTANCE_NUMBER
6308 & id%COMM, id%MYID )
6309 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6311 CASE(
"OOC_MAX_NB_NODES_FOR_ZONE")
6313 if(trim(mode).EQ.
"memory_save")
then
6314 size_variables(i1)=size_int
6315 elseif(trim(mode).EQ.
"save")
then
6316 write(unit,iostat=err) id%OOC_MAX_NB_NODES_FOR_ZONE
6323 & id%COMM, id%MYID )
6324 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6325 elseif(trim(mode).EQ.
"restore")
then
6326 size_variables(i1)=size_int
6327 read(unit,iostat=err) id%OOC_MAX_NB_NODES_FOR_ZONE
6334 & id%COMM, id%MYID )
6335 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6337 CASE(
"OOC_INODE_SEQUENCE")
6339 if(trim(mode).EQ.
"memory_save")
then
6340 IF(
associated(id%OOC_INODE_SEQUENCE))
THEN
6341 size_gest(i1)=size_int*2
6342 size_variables(i1)=
size(id%OOC_INODE_SEQUENCE,1)
6343 & *
size(id%OOC_INODE_SEQUENCE,2)*size_int
6345 size_gest(i1)=size_int*3
6346 size_variables(i1)=0_8
6348 elseif(trim(mode).EQ."
save") then
6349 IF(associated(id%OOC_INODE_SEQUENCE)) THEN
6350 write(unit,iostat=err) size(id%OOC_INODE_SEQUENCE,1)
6351 & ,size(id%OOC_INODE_SEQUENCE,2)
6354 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6357 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6358 & id%COMM, id%MYID )
6359.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6360 write(unit,iostat=err) id%OOC_INODE_SEQUENCE
6362 write(unit,iostat=err) -999,-998
6365 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6368 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6369 & id%COMM, id%MYID )
6370.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6371 write(unit,iostat=err) -999
6375 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6378 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6379 & id%COMM, id%MYID )
6380.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6381.EQ.
elseif(trim(mode)"restore
") then
6382 nullify(id%OOC_INODE_SEQUENCE)
6383 read(unit,iostat=err) size_array1,size_array2
6386 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6389 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6390 & id%COMM, id%MYID )
6391.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6392.EQ.
if(size_array1-999) then
6393 SIZE_GEST(i1)=SIZE_INT*3
6394 SIZE_VARIABLES(i1)=0_8
6395 read(unit,iostat=err) dummy
6397 SIZE_GEST(i1)=SIZE_INT*2
6398 SIZE_VARIABLES(i1)=size_array1*size_array2*SIZE_INT
6399 allocate(id%OOC_INODE_SEQUENCE(size_array1
6400 & ,size_array2), stat=allocok)
6401.GT.
if (allocok 0) THEN
6403 CALL MUMPS_SETI8TOI4(
6404 & TOTAL_STRUC_SIZE-size_allocated
6407 read(unit,iostat=err) id%OOC_INODE_SEQUENCE
6409 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6410 & id%COMM, id%MYID )
6411.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6414 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6417 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6418 & id%COMM, id%MYID )
6419.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6421 CASE("ooc_size_of_block
")
6423.EQ.
if(trim(mode)"memory_save
") then
6424 IF(associated(id%OOC_SIZE_OF_BLOCK)) THEN
6425 SIZE_GEST(i1)=SIZE_INT*2
6426 SIZE_VARIABLES(i1)=size(id%OOC_SIZE_OF_BLOCK,1)
6427 & *size(id%OOC_SIZE_OF_BLOCK,2)*SIZE_INT8
6429 SIZE_GEST(i1)=SIZE_INT*3
6430 SIZE_VARIABLES(i1)=0_8
6432.EQ.
elseif(trim(mode)"save") then
6433 IF(associated(id%OOC_SIZE_OF_BLOCK)) THEN
6434 write(unit,iostat=err) size(id%OOC_SIZE_OF_BLOCK,1)
6435 & ,size(id%OOC_SIZE_OF_BLOCK,2)
6438 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6441 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6442 & id%COMM, id%MYID )
6443.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6444 write(unit,iostat=err) id%OOC_SIZE_OF_BLOCK
6446 write(unit,iostat=err) -999,-998
6449 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6452 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6453 & id%COMM, id%MYID )
6454.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6455 write(unit,iostat=err) -999
6459 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6462 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6463 & id%COMM, id%MYID )
6464.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6465.EQ.
elseif(trim(mode)"restore
") then
6466 nullify(id%OOC_SIZE_OF_BLOCK)
6467 read(unit,iostat=err) size_array1,size_array2
6470 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6473 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6474 & id%COMM, id%MYID )
6475.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6476.EQ.
if(size_array1-999) then
6477 SIZE_GEST(i1)=SIZE_INT*3
6478 SIZE_VARIABLES(i1)=0_8
6479 read(unit,iostat=err) dummy
6481 SIZE_GEST(i1)=SIZE_INT*2
6482 SIZE_VARIABLES(i1)=size_array1*size_array2*SIZE_INT8
6483 allocate(id%OOC_SIZE_OF_BLOCK(size_array1
6484 & ,size_array2), stat=allocok)
6485.GT.
if (allocok 0) THEN
6487 CALL MUMPS_SETI8TOI4(
6488 & TOTAL_STRUC_SIZE-size_allocated
6491 read(unit,iostat=err) id%OOC_SIZE_OF_BLOCK
6493 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6494 & id%COMM, id%MYID )
6495.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6498 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6501 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6502 & id%COMM, id%MYID )
6503.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6507.EQ.
if(trim(mode)"memory_save
") then
6508 IF(associated(id%OOC_VADDR)) THEN
6509 SIZE_GEST(i1)=SIZE_INT*2
6510 SIZE_VARIABLES(i1)=size(id%OOC_VADDR,1)
6511 & *size(id%OOC_VADDR,2)*SIZE_INT8
6513 SIZE_GEST(i1)=SIZE_INT*3
6514 SIZE_VARIABLES(i1)=0_8
6516.EQ.
elseif(trim(mode)"save") then
6517 IF(associated(id%OOC_VADDR)) THEN
6518 write(unit,iostat=err) size(id%OOC_VADDR,1)
6519 & ,size(id%OOC_VADDR,2)
6522 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6525 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6526 & id%COMM, id%MYID )
6527.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6528 write(unit,iostat=err) id%OOC_VADDR
6530 write(unit,iostat=err) -999,-998
6533 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6536 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6537 & id%COMM, id%MYID )
6538.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6539 write(unit,iostat=err) -999
6543 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6546 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6547 & id%COMM, id%MYID )
6548.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6549.EQ.
elseif(trim(mode)"restore
") then
6550 nullify(id%OOC_VADDR)
6551 read(unit,iostat=err) size_array1,size_array2
6554 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6557 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6558 & id%COMM, id%MYID )
6559.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6560.EQ.
if(size_array1-999) then
6561 SIZE_GEST(i1)=SIZE_INT*3
6562 SIZE_VARIABLES(i1)=0_8
6563 read(unit,iostat=err) dummy
6565 SIZE_GEST(i1)=SIZE_INT*2
6566 SIZE_VARIABLES(i1)=size_array1*size_array2*SIZE_INT8
6567 allocate(id%OOC_VADDR(size_array1,size_array2),
6569.GT.
if (allocok 0) THEN
6571 CALL MUMPS_SETI8TOI4(
6572 & TOTAL_STRUC_SIZE-size_allocated
6575 read(unit,iostat=err) id%OOC_VADDR
6577 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6578 & id%COMM, id%MYID )
6579.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6582 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6585 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6586 & id%COMM, id%MYID )
6587.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6589 CASE("ooc_total_nb_nodes
")
6591.EQ.
if(trim(mode)"memory_save
") then
6592 IF(associated(id%OOC_TOTAL_NB_NODES)) THEN
6593 SIZE_GEST(i1)=SIZE_INT
6595 & size(id%OOC_TOTAL_NB_NODES,1)*SIZE_INT
6597 SIZE_GEST(i1)=SIZE_INT*2
6598 SIZE_VARIABLES(i1)=0_8
6600.EQ.
elseif(trim(mode)"save") then
6601 IF(associated(id%OOC_TOTAL_NB_NODES)) THEN
6602 write(unit,iostat=err) size(id%OOC_TOTAL_NB_NODES,1)
6605 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6608 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6609 & id%COMM, id%MYID )
6610.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6611 write(unit,iostat=err) id%OOC_TOTAL_NB_NODES
6613 write(unit,iostat=err) -999
6616 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6619 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6620 & id%COMM, id%MYID )
6621.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6622 write(unit,iostat=err) -999
6626 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6629 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6630 & id%COMM, id%MYID )
6631.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6632.EQ.
elseif(trim(mode)"restore
") then
6633 nullify(id%OOC_TOTAL_NB_NODES)
6634 read(unit,iostat=err) size_array1
6637 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6640 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6641 & id%COMM, id%MYID )
6642.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6643.EQ.
if(size_array1-999) then
6644 SIZE_GEST(i1)=SIZE_INT*2
6645 SIZE_VARIABLES(i1)=0_8
6646 read(unit,iostat=err) dummy
6648 SIZE_GEST(i1)=SIZE_INT
6649 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
6650 allocate(id%OOC_TOTAL_NB_NODES(size_array1),
6652.GT.
if (allocok 0) THEN
6654 CALL MUMPS_SETI8TOI4(
6655 & TOTAL_STRUC_SIZE-size_allocated
6658 read(unit,iostat=err) id%OOC_TOTAL_NB_NODES
6660 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6661 & id%COMM, id%MYID )
6662.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6665 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6668 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6669 & id%COMM, id%MYID )
6670.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6672 CASE("ooc_nb_files
")
6673 CASE("ooc_nb_file_type
")
6674 CASE("ooc_file_names
")
6675 CASE("ooc_file_name_length
")
6678.EQ.
if(trim(mode)"memory_save
") then
6679 IF(associated(id%PIVNUL_LIST)) THEN
6680 SIZE_GEST(i1)=SIZE_INT
6681 SIZE_VARIABLES(i1)=size(id%PIVNUL_LIST,1)*SIZE_INT
6683 SIZE_GEST(i1)=SIZE_INT*2
6684 SIZE_VARIABLES(i1)=0_8
6686.EQ.
elseif(trim(mode)"save") then
6687 IF(associated(id%PIVNUL_LIST)) THEN
6688 write(unit,iostat=err) size(id%PIVNUL_LIST,1)
6691 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6694 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6695 & id%COMM, id%MYID )
6696.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6697 write(unit,iostat=err) id%PIVNUL_LIST
6699 write(unit,iostat=err) -999
6702 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6705 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6706 & id%COMM, id%MYID )
6707.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6708 write(unit,iostat=err) -999
6712 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6715 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6716 & id%COMM, id%MYID )
6717.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6718.EQ.
elseif(trim(mode)"restore
") then
6719 nullify(id%PIVNUL_LIST)
6720 read(unit,iostat=err) size_array1
6723 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6726 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6727 & id%COMM, id%MYID )
6728.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6729.EQ.
if(size_array1-999) then
6730 SIZE_GEST(i1)=SIZE_INT*2
6731 SIZE_VARIABLES(i1)=0_8
6732 read(unit,iostat=err) dummy
6734 SIZE_GEST(i1)=SIZE_INT
6735 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
6736 allocate(id%PIVNUL_LIST(size_array1), stat=allocok)
6737.GT.
if (allocok 0) THEN
6739 CALL MUMPS_SETI8TOI4(
6740 & TOTAL_STRUC_SIZE-size_allocated
6743 read(unit,iostat=err) id%PIVNUL_LIST
6745 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6746 & id%COMM, id%MYID )
6747.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6750 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6753 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6754 & id%COMM, id%MYID )
6755.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6758 CASE("iptr_working
")
6760.EQ.
if(trim(mode)"memory_save
") then
6761 IF(associated(id%IPTR_WORKING)) THEN
6762 SIZE_GEST(i1)=SIZE_INT
6763 SIZE_VARIABLES(i1)=size(id%IPTR_WORKING,1)*SIZE_INT
6765 SIZE_GEST(i1)=SIZE_INT*2
6766 SIZE_VARIABLES(i1)=0_8
6768.EQ.
elseif(trim(mode)"save") then
6769 IF(associated(id%IPTR_WORKING)) THEN
6770 write(unit,iostat=err) size(id%IPTR_WORKING,1)
6773 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6776 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6777 & id%COMM, id%MYID )
6778.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6779 write(unit,iostat=err) id%IPTR_WORKING
6781 write(unit,iostat=err) -999
6784 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6787 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6788 & id%COMM, id%MYID )
6789.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6790 write(unit,iostat=err) -999
6794 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6797 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6798 & id%COMM, id%MYID )
6799.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6800.EQ.
elseif(trim(mode)"restore")
then
6801 nullify(id%IPTR_WORKING)
6802 read(unit,iostat=err) size_array1
6809 & id%COMM, id%MYID )
6810 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6811 if(size_array1.EQ.-999)
then
6812 size_gest(i1)=size_int*2
6813 size_variables(i1)=0_8
6814 read(unit,iostat=err) dummy
6816 size_gest(i1)=size_int
6817 size_variables(i1)=size_array1*size_int
6818 allocate(id%IPTR_WORKING(size_array1), stat=allocok)
6819 if (allocok .GT. 0)
THEN
6822 & total_struc_size-size_allocated
6825 read(unit,iostat=err) id%IPTR_WORKING
6828 & id%COMM, id%MYID )
6829 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6836 & id%COMM, id%MYID )
6837 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6841 if(trim(mode).EQ.
"memory_save")
then
6842 IF(
associated(id%WORKING))
THEN
6843 size_gest(i1)=size_int
6844 size_variables(i1)=
size(id%WORKING,1)*size_int
6846 size_gest(i1)=size_int*2
6847 size_variables(i1)=0_8
6849 elseif(trim(mode).EQ.
"save")
then
6850 IF(
associated(id%WORKING))
THEN
6851 write(unit,iostat=err)
size(id%WORKING,1)
6858 & id%COMM, id%MYID )
6859 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6860 write(unit,iostat=err) id%WORKING
6862 write(unit,iostat=err) -999
6869 & id%COMM, id%MYID )
6870 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6871 write(unit,iostat=err) -999
6879 & id%COMM, id%MYID )
6880 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6881 elseif(trim(mode).EQ.
"restore")
then
6883 read(unit,iostat=err) size_array1
6890 & id%COMM, id%MYID )
6891 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6892 if(size_array1.EQ.-999)
then
6893 size_gest(i1)=size_int*2
6894 size_variables(i1)=0_8
6895 read(unit,iostat=err) dummy
6897 size_gest(i1)=size_int
6898 size_variables(i1)=size_array1*size_int
6899 allocate(id%WORKING(size_array1), stat=allocok)
6900 if (allocok .GT. 0)
THEN
6903 & total_struc_size-size_allocated
6906 read(unit,iostat=err) id%WORKING
6909 & id%COMM, id%MYID )
6910 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6917 & id%COMM, id%MYID )
6918 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6921 DO i2=1,nbvariables_root
6922 tmp_string2 = variables_root(i2)
6923 SELECT CASE(tmp_string2)
6925 nbrecords_root(i2)=1
6926 if(trim(mode).EQ.
"memory_save")
then
6927 size_variables_root(i2)=size_int
6928 elseif(trim(mode).EQ.
"save")
then
6929 write(unit,iostat=err) id%root%MBLOCK
6936 & id%COMM, id%MYID )
6937 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6938 elseif(trim(mode).EQ.
"restore")
then
6939 size_variables_root(i2)=size_int
6940 read(unit,iostat=err) id%root%MBLOCK
6947 & id%COMM, id%MYID )
6948 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6951 nbrecords_root(i2)=1
6952 if(trim(mode).EQ.
"memory_save")
then
6953 size_variables_root(i2)=size_int
6954 elseif(trim(mode).EQ.
"save")
then
6955 write(unit,iostat=err) id%root%NBLOCK
6962 & id%COMM, id%MYID )
6963 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6964 elseif(trim(mode).EQ.
"restore")
then
6965 size_variables_root(i2)=size_int
6966 read(unit,iostat=err) id%root%NBLOCK
6973 & id%COMM, id%MYID )
6974 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6977 nbrecords_root(i2)=1
6978 if(trim(mode).EQ.
"memory_save")
then
6979 size_variables_root(i2)=size_int
6980 elseif(trim(mode).EQ.
"save")
then
6981 write(unit,iostat=err) id%root%NPROW
6988 & id%COMM, id%MYID )
6989 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6990 elseif(trim(mode).EQ.
"restore")
then
6991 size_variables_root(i2)=size_int
6992 read(unit,iostat=err) id%root%NPROW
6999 & id%COMM, id%MYID )
7000 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7003 nbrecords_root(i2)=1
7004 if(trim(mode).EQ.
"memory_save")
then
7005 size_variables_root(i2)=size_int
7006 elseif(trim(mode).EQ.
"save")
then
7007 write(unit,iostat=err) id%root%NPCOL
7014 & id%COMM, id%MYID )
7015 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7016 elseif(trim(mode).EQ.
"restore")
then
7017 size_variables_root(i2)=size_int
7018 read(unit,iostat=err) id%root%NPCOL
7025 & id%COMM, id%MYID )
7026 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7029 nbrecords_root(i2)=1
7030 if(trim(mode).EQ.
"memory_save")
then
7031 nbrecords_root(i2)=1
7032 size_variables_root(i2)=size_int
7033 elseif(trim(mode).EQ.
"save")
then
7034 write(unit,iostat=err) id%root%MYROW
7041 & id%COMM, id%MYID )
7042 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7043 elseif(trim(mode).EQ.
"restore")
then
7044 size_variables_root(i2)=size_int
7045 read(unit,iostat=err) id%root%MYROW
7052 & id%COMM, id%MYID )
7053 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7056 nbrecords_root(i2)=1
7057 if(trim(mode).EQ.
"memory_save")
then
7058 size_variables_root(i2)=size_int
7059 elseif(trim(mode).EQ.
"save")
then
7060 write(unit,iostat=err) id%root%MYCOL
7067 & id%COMM, id%MYID )
7068 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7069 elseif(trim(mode).EQ.
"restore")
then
7070 size_variables_root(i2)=size_int
7071 read(unit,iostat=err) id%root%MYCOL
7078 & id%COMM, id%MYID )
7079 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7082 nbrecords_root(i2)=1
7083 if(trim(mode).EQ.
"memory_save")
then
7084 size_variables_root(i2)=size_int
7085 elseif(trim(mode).EQ.
"save")
then
7086 write(unit,iostat=err) id%root%SCHUR_MLOC
7093 & id%COMM, id%MYID )
7094 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7095 elseif(trim(mode).EQ.
"restore")
then
7096 size_variables_root(i2)=size_int
7104 & id%COMM, id%MYID )
7105 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7108 nbrecords_root(i2)=1
7109 if(trim(mode).EQ.
"memory_save")
then
7110 size_variables_root(i2)=size_int
7111 elseif(trim(mode).EQ.
"save")
then
7119 & id%COMM, id%MYID )
7120 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7121 elseif(trim(mode).EQ.
"restore")
then
7122 size_variables_root(i2)=size_int
7123 read(unit,iostat=err) id%root%SCHUR_NLOC
7130 & id%COMM, id%MYID )
7131 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7134 nbrecords_root(i2)=1
7135 if(trim(mode).EQ.
"memory_save")
then
7136 size_variables_root(i2)=size_int
7137 elseif(trim(mode).EQ.
"save")
then
7138 write(unit,iostat=err) id%root%SCHUR_LLD
7145 & id%COMM, id%MYID )
7146 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7147 elseif(trim(mode).EQ.
"restore")
then
7148 size_variables_root(i2)=size_int
7149 read(unit,iostat=err) id%root%SCHUR_LLD
7156 & id%COMM, id%MYID )
7157 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7160 nbrecords_root(i2)=1
7161 if(trim(mode).EQ.
"memory_save")
then
7162 size_variables_root(i2)=size_int
7163 elseif(trim(mode).EQ.
"save")
then
7164 write(unit,iostat=err) id%root%RHS_NLOC
7171 & id%COMM, id%MYID )
7172 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7173 elseif(trim(mode).EQ.
"restore")
then
7174 size_variables_root(i2)=size_int
7175 read(unit,iostat=err) id%root%RHS_NLOC
7182 & id%COMM, id%MYID )
7183 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7186 nbrecords_root(i2)=1
7187 if(trim(mode).EQ."memory_save
") then
7188 SIZE_VARIABLES_ROOT(i2)=SIZE_INT
7189.EQ.
elseif(trim(mode)"save") then
7190 write(unit,iostat=err) id%root%ROOT_SIZE
7193 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written
7196 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7197 & id%COMM, id%MYID )
7198.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7199.EQ.
elseif(trim(mode)"restore
") then
7200 SIZE_VARIABLES_ROOT(i2)=SIZE_INT
7201 read(unit,iostat=err) id%root%ROOT_SIZE
7204 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2),
7207 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7208 & id%COMM, id%MYID )
7209.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7211 CASE("tot_root_size
")
7212 NbRecords_ROOT(i2)=1
7213.EQ.
if(trim(mode)"memory_save
") then
7214 SIZE_VARIABLES_ROOT(i2)=SIZE_INT
7215.EQ.
elseif(trim(mode)"save") then
7216 write(unit,iostat=err) id%root%TOT_ROOT_SIZE
7219 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written
7222 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7223 & id%COMM, id%MYID )
7224.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7225.EQ.
elseif(trim(mode)"restore
") then
7226 SIZE_VARIABLES_ROOT(i2)=SIZE_INT
7227 read(unit,iostat=err) id%root%TOT_ROOT_SIZE
7230 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2),
7233 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7234 & id%COMM, id%MYID )
7235.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7238 NbRecords_ROOT(i2)=1
7239.EQ.
if(trim(mode)"memory_save
") then
7240 SIZE_VARIABLES_ROOT(i2)=size(id%root%DESCRIPTOR,1)
7242.EQ.
elseif(trim(mode)"save")
then
7243 write(unit,iostat=err) id%root%DESCRIPTOR
7250 & id%COMM, id%MYID )
7251 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7252 elseif(trim(mode).EQ.
"restore")
then
7253 size_variables_root(i2)=size_int*
7254 &
size(id%root%DESCRIPTOR,1)
7255 read(unit,iostat=err) id%root%DESCRIPTOR
7262 & id%COMM, id%MYID )
7263 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7266 nbrecords_root(i2)=1
7267 if(trim(mode).EQ.
"memory_save")
then
7268 size_variables_root(i2)=size_int
7269 elseif(trim(mode).EQ.
"save")
then
7270 write(unit,iostat=err) id%root%CNTXT_BLACS
7277 & id%COMM, id%MYID )
7278 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7279 elseif(trim(mode).EQ.
"restore")
then
7280 size_variables_root(i2)=size_int
7281 read(unit,iostat=err) id%root%CNTXT_BLACS
7288 & id%COMM, id%MYID )
7289 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7292 nbrecords_root(i2)=1
7293 if(trim(mode).EQ.
"memory_save")
then
7294 size_variables_root(i2)=size_int
7295 elseif(trim(mode).EQ.
"save")
then
7296 write(unit,iostat=err) id%root%LPIV
7303 & id%COMM, id%MYID )
7304 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7305 elseif(trim(mode).EQ.
"restore")
then
7306 size_variables_root(i2)=size_int
7307 read(unit,iostat=err) id%root%LPIV
7314 & id%COMM, id%MYID )
7315 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7320 NbRecords_ROOT(i2)=2
7321.EQ.
if(trim(mode)"memory_save
") then
7322 IF(associated(id%root%IPIV)) THEN
7323 SIZE_GEST_ROOT(i2)=SIZE_INT
7324 SIZE_VARIABLES_ROOT(i2)=
7325 & size(id%root%IPIV,1)*SIZE_INT
7327 SIZE_GEST_ROOT(i2)=SIZE_INT*2
7328 SIZE_VARIABLES_ROOT(i2)=0_8
7330.EQ.
elseif(trim(mode)"save") then
7331 IF(associated(id%root%IPIV)) THEN
7332 write(unit,iostat=err) size(id%root%IPIV,1)
7335 CALL MUMPS_SETI8TOI4(
7336 & TOTAL_FILE_SIZE-size_written
7339 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7340 & id%COMM, id%MYID )
7341.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7342 write(unit,iostat=err) id%root%IPIV
7344 write(unit,iostat=err) -999
7347 CALL MUMPS_SETI8TOI4(
7348 & TOTAL_FILE_SIZE-size_written
7351 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7352 & id%COMM, id%MYID )
7353.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7354 write(unit,iostat=err) -999
7358 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written
7361 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7362 & id%COMM, id%MYID )
7363.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7364.EQ.
elseif(trim(mode)"restore
") then
7365 nullify(id%root%IPIV)
7366 read(unit,iostat=err) size_array1
7369 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2),
7372 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7373 & id%COMM, id%MYID )
7374.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7375.EQ.
if(size_array1-999) then
7376 SIZE_GEST_ROOT(i2)=SIZE_INT*2
7377 SIZE_VARIABLES_ROOT(i2)=0_8
7378 read(unit,iostat=err) dummy
7380 SIZE_GEST_ROOT(i2)=SIZE_INT
7381 SIZE_VARIABLES_ROOT(i2)=size_array1*SIZE_INT
7382 allocate(id%root%IPIV(size_array1), stat=allocok)
7383.GT.
if (allocok 0) THEN
7385 CALL MUMPS_SETI8TOI4(
7386 & TOTAL_STRUC_SIZE-size_allocated
7389 read(unit,iostat=err) id%root%IPIV
7391 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7392 & id%COMM, id%MYID )
7393.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7396 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2),
7399 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7400 & id%COMM, id%MYID )
7401.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7403 CASE("rhs_cntr_master_root
")
7404 NbRecords_ROOT(i2)=2
7405.EQ.
if(trim(mode)"memory_save
") then
7406 IF(associated(id%root%RHS_CNTR_MASTER_ROOT)) THEN
7407 SIZE_GEST_ROOT(i2)=SIZE_INT
7408 SIZE_VARIABLES_ROOT(i2)=
7409 & size(id%root%RHS_CNTR_MASTER_ROOT,1)
7412 SIZE_GEST_ROOT(i2)=SIZE_INT*2
7413 SIZE_VARIABLES_ROOT(i2)=0_8
7415.EQ.
elseif(trim(mode)"save") then
7416 IF(associated(id%root%RHS_CNTR_MASTER_ROOT)) THEN
7417 write(unit,iostat=err)
7418 & size(id%root%RHS_CNTR_MASTER_ROOT,1)
7421 CALL MUMPS_SETI8TOI4(
7422 & TOTAL_FILE_SIZE-size_written
7425 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7426 & id%COMM, id%MYID )
7427.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7428 write(unit,iostat=err) id%root%RHS_CNTR_MASTER_ROOT
7430 write(unit,iostat=err) -999
7433 CALL MUMPS_SETI8TOI4(
7434 & TOTAL_FILE_SIZE-size_written
7437 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7438 & id%COMM, id%MYID )
7439.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7440 write(unit,iostat=err) -999
7444 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written
7447 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7448 & id%COMM, id%MYID )
7449.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7450.EQ.
elseif(trim(mode)"restore
") then
7451 nullify(id%root%RHS_CNTR_MASTER_ROOT)
7452 read(unit,iostat=err) size_array1
7455 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2),
7458 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7459 & id%COMM, id%MYID )
7460.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7461.EQ.
if(size_array1-999) then
7462 SIZE_GEST_ROOT(i2)=SIZE_INT*2
7463 SIZE_VARIABLES_ROOT(i2)=0_8
7464 read(unit,iostat=err) dummy
7466 SIZE_GEST_ROOT(i2)=SIZE_INT
7467 SIZE_VARIABLES_ROOT(i2)=size_array1*SIZE_ARITH_DEP
7468 allocate(id%root%RHS_CNTR_MASTER_ROOT(size_array1),
7470.GT.
if (allocok 0) THEN
7472 CALL MUMPS_SETI8TOI4(
7473 & TOTAL_STRUC_SIZE-size_allocated
7476 read(unit,iostat=err) id%root%RHS_CNTR_MASTER_ROOT
7478 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7479 & id%COMM, id%MYID )
7480.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7483 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2),
7486 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7487 & id%COMM, id%MYID )
7488.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7490 CASE("schur_pointer
")
7493 NbRecords_ROOT(i2)=2
7494.EQ.
if(trim(mode)"memory_save
") then
7495 IF(associated(id%root%RHS_ROOT)) THEN
7496 SIZE_GEST_ROOT(i2)=SIZE_INT*2
7497 SIZE_VARIABLES_ROOT(i2)=size(id%root%RHS_ROOT,1)
7498 & *size(id%root%RHS_ROOT,2)*SIZE_ARITH_DEP
7500 SIZE_GEST_ROOT(i2)=SIZE_INT*3
7501 SIZE_VARIABLES_ROOT(i2)=0_8
7503.EQ.
elseif(trim(mode)"save") then
7504 IF(associated(id%root%RHS_ROOT)) THEN
7505 write(unit,iostat=err) size(id%root%RHS_ROOT,1)
7506 & ,size(id%root%RHS_ROOT,2)
7509 CALL MUMPS_SETI8TOI4(
7510 & TOTAL_FILE_SIZE-size_written
7513 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7514 & id%COMM, id%MYID )
7515.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7516 write(unit,iostat=err) id%root%RHS_ROOT
7518 write(unit,iostat=err) -999,-998
7521 CALL MUMPS_SETI8TOI4(
7522 & TOTAL_FILE_SIZE-size_written
7525 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7526 & id%COMM, id%MYID )
7527.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7528 write(unit,iostat=err) -999
7532 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written
7535 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7536 & id%COMM, id%MYID )
7537.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7538.EQ.
elseif(trim(mode)"restore
") then
7539 nullify(id%root%RHS_ROOT)
7540 read(unit,iostat=err) size_array1,size_array2
7543 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2),
7546 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7547 & id%COMM, id%MYID )
7548.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7549.EQ.
if(size_array1-999) then
7550 SIZE_GEST_ROOT(i2)=SIZE_INT*3
7551 SIZE_VARIABLES_ROOT(i2)=0_8
7552 read(unit,iostat=err) dummy
7554 SIZE_GEST_ROOT(i2)=SIZE_INT*2
7555 SIZE_VARIABLES_ROOT(i2)=size_array1*size_array2
7557 allocate(id%root%RHS_ROOT(size_array1,size_array2),
7559.GT.
if (allocok 0) THEN
7561 CALL MUMPS_SETI8TOI4(
7562 & TOTAL_STRUC_SIZE-size_allocated
7565 read(unit,iostat=err) id%root%RHS_ROOT
7567 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7568 & id%COMM, id%MYID )
7569.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7572 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2),
7575 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7576 & id%COMM, id%MYID )
7577.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7580 NbRecords_ROOT(i2)=1
7581.EQ.
if(trim(mode)"memory_save
") then
7582 SIZE_VARIABLES_ROOT(i2)=SIZE_RL_OR_DBL
7583.EQ.
elseif(trim(mode)"save") then
7584 write(unit,iostat=err) id%root%QR_RCOND
7587 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written
7590 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7591 & id%COMM, id%MYID )
7592.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7593.EQ.
elseif(trim(mode)"restore
") then
7594 SIZE_VARIABLES_ROOT(i2)=SIZE_RL_OR_DBL
7595 read(unit,iostat=err) id%root%QR_RCOND
7598 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2),
7601 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7602 & id%COMM, id%MYID )
7603.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7606 NbRecords_ROOT(i2)=1
7607.EQ.
if(trim(mode)"memory_save
") then
7608 SIZE_VARIABLES_ROOT(i2)=SIZE_LOGICAL
7609.EQ.
elseif(trim(mode)"save") then
7610 write(unit,iostat=err) id%root%yes
7613 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written
7616 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7617 & id%COMM, id%MYID )
7618.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7619.EQ.
elseif(trim(mode)"restore
") then
7620 SIZE_VARIABLES_ROOT(i2)=SIZE_LOGICAL
7621 read(unit,iostat=err) id%root%yes
7624 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2),
7627 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7628 & id%COMM, id%MYID )
7629.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7631 CASE("gridinit_done
")
7632 NbRecords_ROOT(i2)=1
7633.EQ.
if(trim(mode)"memory_save
") then
7634 SIZE_VARIABLES_ROOT(i2)=SIZE_LOGICAL
7635.EQ.
elseif(trim(mode)"save") then
7636 write(unit,iostat=err) id%root%gridinit_done
7639 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written
7642 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7643 & id%COMM, id%MYID )
7644.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7645.EQ.
elseif(trim(mode)"restore
") then
7646 SIZE_VARIABLES_ROOT(i2)=SIZE_LOGICAL
7647 read(unit,iostat=err) id%root%gridinit_done
7650 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2),
7653 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7654 & id%COMM, id%MYID )
7655.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7659 CASE("singular_values
")
7660 CASE("nb_singular_values
")
7661 NbRecords_ROOT(i2)=1
7662.EQ.
if(trim(mode)"memory_save
") then
7663 SIZE_VARIABLES_ROOT(i2)=SIZE_INT
7664.EQ.
elseif(trim(mode)"save") then
7665 write(unit,iostat=err) id%root%NB_SINGULAR_VALUES
7668 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written
7671 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7672 & id%COMM, id%MYID )
7673.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7674.EQ.
elseif(trim(mode)"restore
") then
7675 SIZE_VARIABLES_ROOT(i2)=SIZE_INT
7676 read(unit,iostat=err) id%root%NB_SINGULAR_VALUES
7679 CALL MUMPS_SETI8TOI4(SIZE_VARIABLES_ROOT(i2)
7682 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7683 & id%COMM, id%MYID )
7684.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7686 CASE("rootpad0
","rootpad1
","rootpad2
","rootpad
",
7687 & "rootpad3
","rootpad4
")
7690.EQ.
if(trim(mode)"memory_save
") then
7691 NbSubRecords=int(SIZE_VARIABLES_ROOT(i2)/huge(I4))
7692.GT.
IF(NbSubRecords0) then
7693 NbRecords_ROOT(i2)=NbRecords_ROOT(i2)+NbSubRecords
7695.EQ.
elseif(trim(mode)"save") then
7696 size_written=size_written+SIZE_VARIABLES_ROOT(i2)
7697 & +SIZE_GEST_ROOT(i2)
7698#if !defined(MUMPS_F2003)
7699 size_written=size_written
7700 & +int(2*id%KEEP(34)*NbRecords_ROOT(i2),kind=8)
7702.EQ.
elseif(trim(mode)"restore
") then
7703 size_allocated=size_allocated+SIZE_VARIABLES_ROOT(i2)+
7704 & DIFF_SIZE_ALLOC_READ_ROOT(i2)
7705 size_read=size_read+SIZE_VARIABLES_ROOT(i2)
7706 & +int(SIZE_GEST_ROOT(i2),kind=8)
7707#if !defined(MUMPS_F2003)
7709 & +int(2*id%KEEP(34)*NbRecords_ROOT(i2),kind=8)
7711.EQ.
elseif(trim(mode)"fake_restore
") then
7716.EQ.
if(trim(mode)"memory_save
") then
7717 SIZE_VARIABLES(i1)=SIZE_INT
7718.EQ.
elseif(trim(mode)"save") then
7719 write(unit,iostat=err) id%NBGRP
7722 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
7725 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7726 & id%COMM, id%MYID )
7727.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7728.EQ.
elseif(trim(mode)"restore
") then
7729 SIZE_VARIABLES(i1)=SIZE_INT
7730 read(unit,iostat=err) id%NBGRP
7733 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
7736 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7737 & id%COMM, id%MYID )
7738.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7742.EQ.
if(trim(mode)"memory_save
") then
7743 IF(associated(id%LRGROUPS)) THEN
7744 SIZE_GEST(i1)=SIZE_INT
7745 SIZE_VARIABLES(i1)=size(id%LRGROUPS,1)*SIZE_INT
7747 SIZE_GEST(i1)=SIZE_INT*2
7748 SIZE_VARIABLES(i1)=0_8
7750.EQ.
elseif(trim(mode)"save") then
7751 IF(associated(id%LRGROUPS)) THEN
7752 write(unit,iostat=err) size(id%LRGROUPS,1)
7755 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
7758 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7759 & id%COMM, id%MYID )
7760.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7761 write(unit,iostat=err) id%LRGROUPS
7763 write(unit,iostat=err) -999
7766 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
7769 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7770 & id%COMM, id%MYID )
7771.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7772 write(unit,iostat=err) -999
7776 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
7779 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7780 & id%COMM, id%MYID )
7781.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7782.EQ.
elseif(trim(mode)"restore
") then
7783 nullify(id%LRGROUPS)
7784 read(unit,iostat=err) size_array1
7787 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
7790 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7791 & id%COMM, id%MYID )
7792.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7793.EQ.
if(size_array1-999) then
7794 SIZE_GEST(i1)=SIZE_INT*2
7795 SIZE_VARIABLES(i1)=0_8
7796 read(unit,iostat=err) dummy
7798 SIZE_GEST(i1)=SIZE_INT
7799 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
7800 allocate(id%LRGROUPS(size_array1), stat=allocok)
7801.GT.
if (allocok 0) THEN
7803 CALL MUMPS_SETI8TOI4(
7804 & TOTAL_STRUC_SIZE-size_allocated
7807 read(unit,iostat=err) id%LRGROUPS
7809 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7810 & id%COMM, id%MYID )
7811.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7814 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
7817 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7818 & id%COMM, id%MYID )
7819.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7821 CASE("fdm_f_encoding
")
7823 SIZE_GEST(i1)=SIZE_INT
7824 SIZE_VARIABLES(i1)=0_8
7825.EQ.
if(trim(mode)"memory_save
") then
7826 IF(associated(id%FDM_F_ENCODING)) THEN
7827 CALL MUMPS_SAVE_RESTORE_FRONT_DATA(id%FDM_F_ENCODING
7828 & ,unit,id%MYID,"memory_save
"
7829 & ,SIZE_GEST_FRONT_DATA,SIZE_VARIABLES_FRONT_DATA
7830 & ,SIZE_INT,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
7831 & ,size_read,size_allocated,size_written
7834.EQ.
elseif(trim(mode)"save") then
7835 IF(associated(id%FDM_F_ENCODING)) THEN
7836 write(unit,iostat=err) size(id%FDM_F_ENCODING,1)
7839 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
7842 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7843 & id%COMM, id%MYID )
7844.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7845 CALL MUMPS_SAVE_RESTORE_FRONT_DATA(id%FDM_F_ENCODING
7846 & ,unit,id%MYID,"save"
7847 & ,SIZE_GEST_FRONT_DATA,SIZE_VARIABLES_FRONT_DATA
7848 & ,SIZE_INT,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
7849 & ,size_read,size_allocated,size_written
7852 write(unit,iostat=err) -999
7855 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
7858 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7859 & id%COMM, id%MYID )
7860.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7864 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
7867 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7868 & id%COMM, id%MYID )
7869.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7870.EQ.
elseif(trim(mode)"restore
") then
7871 nullify(id%FDM_F_ENCODING)
7872 read(unit,iostat=err) size_array1
7875 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
7878 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7879 & id%COMM, id%MYID )
7880.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7881.NE.
if(size_array1-999) then
7882 CALL MUMPS_SAVE_RESTORE_FRONT_DATA(id%FDM_F_ENCODING
7883 & ,unit,id%MYID,"restore
"
7884 & ,SIZE_GEST_FRONT_DATA,SIZE_VARIABLES_FRONT_DATA
7885 & ,SIZE_INT,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
7886 & ,size_read,size_allocated,size_written
7889 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7890 & id%COMM, id%MYID )
7891.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7894 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
7897 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7898 & id%COMM, id%MYID )
7899.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7901 CASE("blrarray_encoding
")
7903 SIZE_GEST(i1)=SIZE_INT
7904 SIZE_VARIABLES(i1)=0_8
7905.EQ.
if(trim(mode)"memory_save
") then
7906 IF(associated(id%BLRARRAY_ENCODING)) THEN
7907 CALL DMUMPS_SAVE_RESTORE_BLR(id%BLRARRAY_ENCODING
7908 & ,unit,id%MYID,"memory_save
"
7909 & ,SIZE_GEST_BLR,SIZE_VARIABLES_BLR
7910 & ,SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
7911 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
7912 & ,size_read,size_allocated,size_written
7915.EQ.
elseif(trim(mode)"save") then
7916 IF(associated(id%BLRARRAY_ENCODING)) THEN
7917 write(unit,iostat=err) size(id%BLRARRAY_ENCODING,1)
7920 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
7923 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7924 & id%COMM, id%MYID )
7925.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7926 CALL DMUMPS_SAVE_RESTORE_BLR(id%BLRARRAY_ENCODING
7927 & ,unit,id%MYID,"save"
7928 & ,SIZE_GEST_BLR,SIZE_VARIABLES_BLR
7929 & ,SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
7930 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
7931 & ,size_read,size_allocated,size_written
7934 write(unit,iostat=err) -999
7937 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
7940 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7941 & id%COMM, id%MYID )
7942.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7946 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
7949 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7950 & id%COMM, id%MYID )
7951.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7952.EQ.
elseif(trim(mode)"restore
") then
7953 nullify(id%BLRARRAY_ENCODING)
7954 read(unit,iostat=err) size_array1
7957 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
7960 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7961 & id%COMM, id%MYID )
7962.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7963.NE.
if(size_array1-999) then
7964 CALL DMUMPS_SAVE_RESTORE_BLR(id%BLRARRAY_ENCODING
7965 & ,unit,id%MYID,"restore
"
7966 & ,SIZE_GEST_BLR,SIZE_VARIABLES_BLR
7967 & ,SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
7968 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
7969 & ,size_read,size_allocated,size_written
7972 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7973 & id%COMM, id%MYID )
7974.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7977 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
7980 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
7981 & id%COMM, id%MYID )
7982.LT.
IF ( id%INFO(1) 0 ) GOTO 100
7984 CASE("l0_omp_factors
")
7987 SIZE_VARIABLES(i1)=0_8
7988 CALL DMUMPS_SAVE_RESTORE_L0FACARRAY(id%L0_OMP_FACTORS
7989 & ,unit,id%MYID,trim(mode)
7990 & ,SIZE_GEST_L0FAC,SIZE_VARIABLES_L0FAC
7991 & ,SIZE_INT, SIZE_INT8, SIZE_ARITH_DEP
7992 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
7993 & ,size_read,size_allocated,size_written
7996 CASE("lpool_a_l0_omp
")
7998.EQ.
if(trim(mode)"memory_save
") then
7999 SIZE_VARIABLES(i1)=SIZE_INT
8000.EQ.
elseif(trim(mode)"save") then
8001 write(unit,iostat=err) id%LPOOL_A_L0_OMP
8004 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8007 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8008 & id%COMM, id%MYID )
8009.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8010.EQ.
elseif(trim(mode)"restore
") then
8011 SIZE_VARIABLES(i1)=SIZE_INT
8012 read(unit,iostat=err) id%LPOOL_A_L0_OMP
8015 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8018 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8019 & id%COMM, id%MYID )
8020.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8022 CASE("lpool_b_l0_omp
")
8024.EQ.
if(trim(mode)"memory_save
") then
8025 SIZE_VARIABLES(i1)=SIZE_INT
8026.EQ.
elseif(trim(mode)"save") then
8027 write(unit,iostat=err) id%LPOOL_B_L0_OMP
8030 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8033 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8034 & id%COMM, id%MYID )
8035.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8036.EQ.
elseif(trim(mode)"restore
") then
8037 SIZE_VARIABLES(i1)=SIZE_INT
8038 read(unit,iostat=err) id%LPOOL_B_L0_OMP
8041 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8044 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8045 & id%COMM, id%MYID )
8046.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8048 CASE("l_phys_l0_omp
")
8050.EQ.
if(trim(mode)"memory_save
") then
8051 SIZE_VARIABLES(i1)=SIZE_INT
8052.EQ.
elseif(trim(mode)"save") then
8053 write(unit,iostat=err) id%L_PHYS_L0_OMP
8056 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8059 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8060 & id%COMM, id%MYID )
8061.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8062.EQ.
elseif(trim(mode)"restore
") then
8063 SIZE_VARIABLES(i1)=SIZE_INT
8064 read(unit,iostat=err) id%L_PHYS_L0_OMP
8067 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8070 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8071 & id%COMM, id%MYID )
8072.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8074 CASE("l_virt_l0_omp
")
8076.EQ.
if(trim(mode)"memory_save
") then
8077 SIZE_VARIABLES(i1)=SIZE_INT
8078.EQ.
elseif(trim(mode)"save") then
8079 write(unit,iostat=err) id%L_VIRT_L0_OMP
8082 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8085 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8086 & id%COMM, id%MYID )
8087.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8088.EQ.
elseif(trim(mode)"restore
") then
8089 SIZE_VARIABLES(i1)=SIZE_INT
8090 read(unit,iostat=err) id%L_VIRT_L0_OMP
8093 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8096 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8097 & id%COMM, id%MYID )
8098.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8100 CASE("ll0_omp_mapping
")
8102.EQ.
if(trim(mode)"memory_save
") then
8103 SIZE_VARIABLES(i1)=SIZE_INT
8104.EQ.
elseif(trim(mode)"save") then
8105 write(unit,iostat=err) id%LL0_OMP_MAPPING
8108 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8111 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8112 & id%COMM, id%MYID )
8113.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8114.EQ.
elseif(trim(mode)"restore
") then
8115 SIZE_VARIABLES(i1)=SIZE_INT
8116 read(unit,iostat=err) id%LL0_OMP_MAPPING
8119 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8122 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8123 & id%COMM, id%MYID )
8124.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8126 CASE("ll0_omp_factors
")
8128.EQ.
if(trim(mode)"memory_save
") then
8129 SIZE_VARIABLES(i1)=SIZE_INT
8130.EQ.
elseif(trim(mode)"save") then
8131 write(unit,iostat=err) id%LL0_OMP_FACTORS
8134 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8137 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8138 & id%COMM, id%MYID )
8139.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8140.EQ.
elseif(trim(mode)"restore
") then
8141 SIZE_VARIABLES(i1)=SIZE_INT
8142 read(unit,iostat=err) id%LL0_OMP_FACTORS
8145 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8148 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8149 & id%COMM, id%MYID )
8150.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8154.EQ.
if(trim(mode)"memory_save
") then
8155 SIZE_VARIABLES(i1)=SIZE_INT8
8156.EQ.
elseif(trim(mode)"save") then
8157 write(unit,iostat=err) id%THREAD_LA
8160 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8163 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8164 & id%COMM, id%MYID )
8165.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8166.EQ.
elseif(trim(mode)"restore
") then
8167 SIZE_VARIABLES(i1)=SIZE_INT8
8168 read(unit,iostat=err) id%THREAD_LA
8171 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8174 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8175 & id%COMM, id%MYID )
8176.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8178 CASE("ipool_a_l0_omp
")
8180.EQ.
if(trim(mode)"memory_save
") then
8181 IF(associated(id%IPOOL_A_L0_OMP)) THEN
8182 SIZE_GEST(i1)=SIZE_INT
8184 & size(id%IPOOL_A_L0_OMP,1)*SIZE_INT
8186 SIZE_GEST(i1)=SIZE_INT*2
8187 SIZE_VARIABLES(i1)=0_8
8189.EQ.
elseif(trim(mode)"save") then
8190 IF(associated(id%IPOOL_A_L0_OMP)) THEN
8191 write(unit,iostat=err) size(id%IPOOL_A_L0_OMP,1)
8194 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8197 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8198 & id%COMM, id%MYID )
8199.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8200 write(unit,iostat=err) id%IPOOL_A_L0_OMP
8202 write(unit,iostat=err) -999
8205 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8208 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8209 & id%COMM, id%MYID )
8210.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8211 write(unit,iostat=err) -999
8215 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8218 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8219 & id%COMM, id%MYID )
8220.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8221.EQ.
elseif(trim(mode)"restore
") then
8222 nullify(id%IPOOL_A_L0_OMP)
8223 read(unit,iostat=err) size_array1
8226 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8229 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8230 & id%COMM, id%MYID )
8231.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8232.EQ.
if(size_array1-999) then
8233 SIZE_GEST(i1)=SIZE_INT*2
8234 SIZE_VARIABLES(i1)=0_8
8235 read(unit,iostat=err) dummy
8237 SIZE_GEST(i1)=SIZE_INT
8238 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
8239 allocate(id%IPOOL_A_L0_OMP(size_array1),
8241.GT.
if (allocok 0) THEN
8243 CALL MUMPS_SETI8TOI4(
8244 & TOTAL_STRUC_SIZE-size_allocated
8247 read(unit,iostat=err) id%IPOOL_A_L0_OMP
8249 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8250 & id%COMM, id%MYID )
8251.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8254 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8257 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8258 & id%COMM, id%MYID )
8259.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8261 CASE("ipool_b_l0_omp
")
8263.EQ.
if(trim(mode)"memory_save
") then
8264 IF(associated(id%IPOOL_B_L0_OMP)) THEN
8265 SIZE_GEST(i1)=SIZE_INT
8267 & size(id%IPOOL_B_L0_OMP,1)*SIZE_INT
8269 SIZE_GEST(i1)=SIZE_INT*2
8270 SIZE_VARIABLES(i1)=0_8
8272.EQ.
elseif(trim(mode)"save") then
8273 IF(associated(id%IPOOL_B_L0_OMP)) THEN
8274 write(unit,iostat=err) size(id%IPOOL_B_L0_OMP,1)
8277 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8280 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8281 & id%COMM, id%MYID )
8282.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8283 write(unit,iostat=err) id%IPOOL_B_L0_OMP
8285 write(unit,iostat=err) -999
8288 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8291 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8292 & id%COMM, id%MYID )
8293.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8294 write(unit,iostat=err) -999
8298 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8301 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8302 & id%COMM, id%MYID )
8303.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8304.EQ.
elseif(trim(mode)"restore
") then
8305 nullify(id%IPOOL_B_L0_OMP)
8306 read(unit,iostat=err) size_array1
8309 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8312 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8313 & id%COMM, id%MYID )
8314.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8315.EQ.
if(size_array1-999) then
8316 SIZE_GEST(i1)=SIZE_INT*2
8317 SIZE_VARIABLES(i1)=0_8
8318 read(unit,iostat=err) dummy
8320 SIZE_GEST(i1)=SIZE_INT
8321 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
8322 allocate(id%IPOOL_B_L0_OMP(size_array1),
8324.GT.
if (allocok 0) THEN
8326 CALL MUMPS_SETI8TOI4(
8327 & TOTAL_STRUC_SIZE-size_allocated
8330 read(unit,iostat=err) id%IPOOL_B_L0_OMP
8332 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8333 & id%COMM, id%MYID )
8334.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8337 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8340 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8341 & id%COMM, id%MYID )
8342.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8346.EQ.
if(trim(mode)"memory_save
") then
8347 IF(associated(id%PHYS_L0_OMP)) THEN
8348 SIZE_GEST(i1)=SIZE_INT
8350 & size(id%PHYS_L0_OMP,1)*SIZE_INT
8352 SIZE_GEST(i1)=SIZE_INT*2
8353 SIZE_VARIABLES(i1)=0_8
8355.EQ.
elseif(trim(mode)"save") then
8356 IF(associated(id%PHYS_L0_OMP)) THEN
8357 write(unit,iostat=err) size(id%PHYS_L0_OMP,1)
8360 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8363 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8364 & id%COMM, id%MYID )
8365.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8366 write(unit,iostat=err) id%PHYS_L0_OMP
8368 write(unit,iostat=err) -999
8371 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8374 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8375 & id%COMM, id%MYID )
8376.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8377 write(unit,iostat=err) -999
8381 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8384 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8385 & id%COMM, id%MYID )
8386.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8387.EQ.
elseif(trim(mode)"restore
") then
8388 nullify(id%PHYS_L0_OMP)
8389 read(unit,iostat=err) size_array1
8392 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8395 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8396 & id%COMM, id%MYID )
8397.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8398.EQ.
if(size_array1-999) then
8399 SIZE_GEST(i1)=SIZE_INT*2
8400 SIZE_VARIABLES(i1)=0_8
8401 read(unit,iostat=err) dummy
8403 SIZE_GEST(i1)=SIZE_INT
8404 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
8405 allocate(id%PHYS_L0_OMP(size_array1), stat=allocok)
8406.GT.
if (allocok 0) THEN
8408 CALL MUMPS_SETI8TOI4(
8409 & TOTAL_STRUC_SIZE-size_allocated
8412 read(unit,iostat=err) id%PHYS_L0_OMP
8414 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8415 & id%COMM, id%MYID )
8416.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8419 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8422 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8423 & id%COMM, id%MYID )
8424.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8428.EQ.
if(trim(mode)"memory_save
") then
8429 IF(associated(id%VIRT_L0_OMP)) THEN
8430 SIZE_GEST(i1)=SIZE_INT
8431 SIZE_VARIABLES(i1)=size(id%VIRT_L0_OMP,1)*SIZE_INT
8433 SIZE_GEST(i1)=SIZE_INT*2
8434 SIZE_VARIABLES(i1)=0_8
8436.EQ.
elseif(trim(mode)"save") then
8437 IF(associated(id%VIRT_L0_OMP)) THEN
8438 write(unit,iostat=err) size(id%VIRT_L0_OMP,1)
8441 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8444 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8445 & id%COMM, id%MYID )
8446.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8447 write(unit,iostat=err) id%VIRT_L0_OMP
8449 write(unit,iostat=err) -999
8452 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8455 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8456 & id%COMM, id%MYID )
8457.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8458 write(unit,iostat=err) -999
8462 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8465 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8466 & id%COMM, id%MYID )
8467.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8468.EQ.
elseif(trim(mode)"restore
") then
8469 nullify(id%VIRT_L0_OMP)
8470 read(unit,iostat=err) size_array1
8473 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8476 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8477 & id%COMM, id%MYID )
8478.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8479.EQ.
if(size_array1-999) then
8480 SIZE_GEST(i1)=SIZE_INT*2
8481 SIZE_VARIABLES(i1)=0_8
8482 read(unit,iostat=err) dummy
8484 SIZE_GEST(i1)=SIZE_INT
8485 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
8486 allocate(id%VIRT_L0_OMP(size_array1), stat=allocok)
8487.GT.
if (allocok 0) THEN
8489 CALL MUMPS_SETI8TOI4(
8490 & TOTAL_STRUC_SIZE-size_allocated
8493 read(unit,iostat=err) id%VIRT_L0_OMP
8495 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8496 & id%COMM, id%MYID )
8497.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8500 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8503 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8504 & id%COMM, id%MYID )
8505.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8507 CASE("virt_l0_omp_mapping
")
8509.EQ.
if(trim(mode)"memory_save
") then
8510 IF(associated(id%VIRT_L0_OMP_MAPPING)) THEN
8511 SIZE_GEST(i1)=SIZE_INT
8512 SIZE_VARIABLES(i1)=size(id%VIRT_L0_OMP_MAPPING,1)
8515 SIZE_GEST(i1)=SIZE_INT*2
8516 SIZE_VARIABLES(i1)=0_8
8518.EQ.
elseif(trim(mode)"save") then
8519 IF(associated(id%VIRT_L0_OMP_MAPPING)) THEN
8520 write(unit,iostat=err) size(id%VIRT_L0_OMP_MAPPING,1)
8523 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8526 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8527 & id%COMM, id%MYID )
8528.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8529 write(unit,iostat=err) id%VIRT_L0_OMP_MAPPING
8531 write(unit,iostat=err) -999
8534 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8537 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8538 & id%COMM, id%MYID )
8539.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8540 write(unit,iostat=err) -999
8544 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8547 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8548 & id%COMM, id%MYID )
8549.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8550.EQ.
elseif(trim(mode)"restore
") then
8551 nullify(id%VIRT_L0_OMP_MAPPING)
8552 read(unit,iostat=err) size_array1
8555 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8558 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8559 & id%COMM, id%MYID )
8560.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8561.EQ.
if(size_array1-999) then
8562 SIZE_GEST(i1)=SIZE_INT*2
8563 SIZE_VARIABLES(i1)=0_8
8564 read(unit,iostat=err) dummy
8566 SIZE_GEST(i1)=SIZE_INT
8567 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
8568 allocate(id%VIRT_L0_OMP_MAPPING(size_array1),
8570.GT.
if (allocok 0) THEN
8572 CALL MUMPS_SETI8TOI4(
8573 & TOTAL_STRUC_SIZE-size_allocated
8576 read(unit,iostat=err) id%VIRT_L0_OMP_MAPPING
8578 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8579 & id%COMM, id%MYID )
8580.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8583 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8586 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8587 & id%COMM, id%MYID )
8588.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8592.EQ.
if(trim(mode)"memory_save
") then
8593 IF(associated(id%PERM_L0_OMP)) THEN
8594 SIZE_GEST(i1)=SIZE_INT
8595 SIZE_VARIABLES(i1)=size(id%PERM_L0_OMP,1)*SIZE_INT
8597 SIZE_GEST(i1)=SIZE_INT*2
8598 SIZE_VARIABLES(i1)=0_8
8600.EQ.
elseif(trim(mode)"save") then
8601 IF(associated(id%PERM_L0_OMP)) THEN
8602 write(unit,iostat=err) size(id%PERM_L0_OMP,1)
8605 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8608 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8609 & id%COMM, id%MYID )
8610.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8611 write(unit,iostat=err) id%PERM_L0_OMP
8613 write(unit,iostat=err) -999
8616 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8619 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8620 & id%COMM, id%MYID )
8621.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8622 write(unit,iostat=err) -999
8626 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8629 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8630 & id%COMM, id%MYID )
8631.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8632.EQ.
elseif(trim(mode)"restore
") then
8633 nullify(id%PERM_L0_OMP)
8634 read(unit,iostat=err) size_array1
8637 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8640 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8641 & id%COMM, id%MYID )
8642.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8643.EQ.
if(size_array1-999) then
8644 SIZE_GEST(i1)=SIZE_INT*2
8645 SIZE_VARIABLES(i1)=0_8
8646 read(unit,iostat=err) dummy
8648 SIZE_GEST(i1)=SIZE_INT
8649 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
8650 allocate(id%PERM_L0_OMP(size_array1), stat=allocok)
8651.GT.
if (allocok 0) THEN
8653 CALL MUMPS_SETI8TOI4(
8654 & TOTAL_STRUC_SIZE-size_allocated
8657 read(unit,iostat=err) id%PERM_L0_OMP
8659 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8660 & id%COMM, id%MYID )
8661.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8664 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8667 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8668 & id%COMM, id%MYID )
8669.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8671 CASE("ptr_leafs_l0_omp
")
8673.EQ.
if(trim(mode)"memory_save
") then
8674 IF(associated(id%PTR_LEAFS_L0_OMP)) THEN
8675 SIZE_GEST(i1)=SIZE_INT
8677 & size(id%PTR_LEAFS_L0_OMP,1)*SIZE_INT
8679 SIZE_GEST(i1)=SIZE_INT*2
8680 SIZE_VARIABLES(i1)=0_8
8682.EQ.
elseif(trim(mode)"save") then
8683 IF(associated(id%PTR_LEAFS_L0_OMP)) THEN
8684 write(unit,iostat=err) size(id%PTR_LEAFS_L0_OMP,1)
8687 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8690 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8691 & id%COMM, id%MYID )
8692.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8693 write(unit,iostat=err) id%PTR_LEAFS_L0_OMP
8695 write(unit,iostat=err) -999
8698 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8701 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8702 & id%COMM, id%MYID )
8703.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8704 write(unit,iostat=err) -999
8708 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8711 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8712 & id%COMM, id%MYID )
8713.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8714.EQ.
elseif(trim(mode)"restore
") then
8715 nullify(id%PTR_LEAFS_L0_OMP)
8716 read(unit,iostat=err) size_array1
8719 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8722 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8723 & id%COMM, id%MYID )
8724.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8725.EQ.
if(size_array1-999) then
8726 SIZE_GEST(i1)=SIZE_INT*2
8727 SIZE_VARIABLES(i1)=0_8
8728 read(unit,iostat=err) dummy
8730 SIZE_GEST(i1)=SIZE_INT
8731 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
8732 allocate(id%PTR_LEAFS_L0_OMP(size_array1),
8734.GT.
if (allocok 0) THEN
8736 CALL MUMPS_SETI8TOI4(
8737 & TOTAL_STRUC_SIZE-size_allocated
8740 read(unit,iostat=err) id%PTR_LEAFS_L0_OMP
8742 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8743 & id%COMM, id%MYID )
8744.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8747 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8750 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8751 & id%COMM, id%MYID )
8752.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8754 CASE("l0_omp_mapping
")
8756.EQ.
if(trim(mode)"memory_save
") then
8757 IF(associated(id%L0_OMP_MAPPING)) THEN
8758 SIZE_GEST(i1)=SIZE_INT
8760 & size(id%L0_OMP_MAPPING,1)*SIZE_INT
8762 SIZE_GEST(i1)=SIZE_INT*2
8763 SIZE_VARIABLES(i1)=0_8
8765.EQ.
elseif(trim(mode)"save") then
8766 IF(associated(id%L0_OMP_MAPPING)) THEN
8767 write(unit,iostat=err) size(id%L0_OMP_MAPPING,1)
8770 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8773 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8774 & id%COMM, id%MYID )
8775.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8776 write(unit,iostat=err) id%L0_OMP_MAPPING
8778 write(unit,iostat=err) -999
8781 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8784 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8785 & id%COMM, id%MYID )
8786.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8787 write(unit,iostat=err) -999
8791 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8794 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8795 & id%COMM, id%MYID )
8796.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8797.EQ.
elseif(trim(mode)"restore
") then
8798 nullify(id%L0_OMP_MAPPING)
8799 read(unit,iostat=err) size_array1
8802 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8805 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8806 & id%COMM, id%MYID )
8807.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8808.EQ.
if(size_array1-999) then
8809 SIZE_GEST(i1)=SIZE_INT*2
8810 SIZE_VARIABLES(i1)=0_8
8811 read(unit,iostat=err) dummy
8813 SIZE_GEST(i1)=SIZE_INT
8814 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
8815 allocate(id%L0_OMP_MAPPING(size_array1), stat=allocok)
8816.GT.
if (allocok 0) THEN
8818 CALL MUMPS_SETI8TOI4(
8819 & TOTAL_STRUC_SIZE-size_allocated
8822 read(unit,iostat=err) id%L0_OMP_MAPPING
8824 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8825 & id%COMM, id%MYID )
8826.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8829 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8832 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8833 & id%COMM, id%MYID )
8834.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8836 CASE("singular_values
")
8837 CASE("nb_singular_values
")
8839.EQ.
if(trim(mode)"memory_save
") then
8840 SIZE_VARIABLES(i1)=SIZE_INT
8841.EQ.
elseif(trim(mode)"save") then
8842 write(unit,iostat=err) id%NB_SINGULAR_VALUES
8845 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8848 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8849 & id%COMM, id%MYID )
8850.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8851.EQ.
elseif(trim(mode)"restore
") then
8852 SIZE_VARIABLES(i1)=SIZE_INT
8853 read(unit,iostat=err) id%NB_SINGULAR_VALUES
8856 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8859 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8860 & id%COMM, id%MYID )
8861.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8863 CASE("associated_ooc_files
")
8864.EQ.
if(trim(mode)"memory_save
") then
8865 DIFF_SIZE_ALLOC_READ(i1)=SIZE_LOGICAL
8866.EQ.
elseif(trim(mode)"save") then
8867 DIFF_SIZE_ALLOC_READ(i1)=SIZE_LOGICAL
8868.EQ.
elseif(trim(mode)"restore
") then
8869 DIFF_SIZE_ALLOC_READ(i1)=SIZE_LOGICAL
8873.EQ.
if(trim(mode)"memory_save
") then
8874 SIZE_VARIABLES(i1)=len(id%SAVE_DIR)*SIZE_CHARACTER
8875.EQ.
elseif(trim(mode)"save") then
8876 write(unit,iostat=err) id%SAVE_DIR
8879 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8882 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8883 & id%COMM, id%MYID )
8884.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8885.EQ.
elseif(trim(mode)"restore
") then
8886 SIZE_VARIABLES(i1)=len(id%SAVE_DIR)*SIZE_CHARACTER
8887 read(unit,iostat=err) id%SAVE_DIR
8890 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8893 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8894 & id%COMM, id%MYID )
8895.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8899.EQ.
if(trim(mode)"memory_save
") then
8900 SIZE_VARIABLES(i1)=len(id%SAVE_PREFIX)*SIZE_CHARACTER
8901.EQ.
elseif(trim(mode)"save") then
8902 write(unit,iostat=err) id%SAVE_PREFIX
8905 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8908 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8909 & id%COMM, id%MYID )
8910.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8911.EQ.
elseif(trim(mode)"restore
") then
8912 SIZE_VARIABLES(i1)=len(id%SAVE_PREFIX)*SIZE_CHARACTER
8913 read(unit,iostat=err) id%SAVE_PREFIX
8916 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8919 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8920 & id%COMM, id%MYID )
8921.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8923 CASE("mpitoomp_procs_map
")
8925.EQ.
if(trim(mode)"memory_save
") then
8926 IF(associated(id%MPITOOMP_PROCS_MAP)) THEN
8927 SIZE_GEST(i1)=SIZE_INT
8929 & size(id%MPITOOMP_PROCS_MAP,1)*SIZE_INT
8931 SIZE_GEST(i1)=SIZE_INT*2
8932 SIZE_VARIABLES(i1)=0_8
8934.EQ.
elseif(trim(mode)"save") then
8935 IF(associated(id%MPITOOMP_PROCS_MAP)) THEN
8936 write(unit,iostat=err) size(id%MPITOOMP_PROCS_MAP,1)
8939 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8942 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8943 & id%COMM, id%MYID )
8944.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8945 write(unit,iostat=err) id%MPITOOMP_PROCS_MAP
8947 write(unit,iostat=err) -999
8950 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8953 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8954 & id%COMM, id%MYID )
8955.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8956 write(unit,iostat=err) -999
8960 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
8963 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8964 & id%COMM, id%MYID )
8965.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8966.EQ.
elseif(trim(mode)"restore
") then
8967 nullify(id%MPITOOMP_PROCS_MAP)
8968 read(unit,iostat=err) size_array1
8971 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
8974 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8975 & id%COMM, id%MYID )
8976.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8977.EQ.
if(size_array1-999) then
8978 SIZE_GEST(i1)=SIZE_INT*2
8979 SIZE_VARIABLES(i1)=0_8
8980 read(unit,iostat=err) dummy
8982 SIZE_GEST(i1)=SIZE_INT
8983 SIZE_VARIABLES(i1)=size_array1*SIZE_INT
8984 allocate(id%MPITOOMP_PROCS_MAP(size_array1),
8986.GT.
if (allocok 0) THEN
8988 CALL MUMPS_SETI8TOI4(
8989 & TOTAL_STRUC_SIZE-size_allocated
8992 read(unit,iostat=err) id%MPITOOMP_PROCS_MAP
8994 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
8995 & id%COMM, id%MYID )
8996.LT.
IF ( id%INFO(1) 0 ) GOTO 100
8999 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
9002 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
9003 & id%COMM, id%MYID )
9004.LT.
IF ( id%INFO(1) 0 ) GOTO 100
9006 CASE("metis_options
")
9008.EQ.
if(trim(mode)"memory_save
") then
9009 SIZE_VARIABLES(i1)=SIZE_INT*size(id%METIS_OPTIONS,1)
9010.EQ.
elseif(trim(mode)"save") then
9011 write(unit,iostat=err) id%METIS_OPTIONS
9014 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
9017 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
9018 & id%COMM, id%MYID )
9019.LT.
IF ( id%INFO(1) 0 ) GOTO 100
9020.EQ.
elseif(trim(mode)"restore
") then
9021 SIZE_VARIABLES(i1)=SIZE_INT*size(id%METIS_OPTIONS,1)
9022 read(unit,iostat=err) id%METIS_OPTIONS
9025 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
9028 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
9029 & id%COMM, id%MYID )
9030.LT.
IF ( id%INFO(1) 0 ) GOTO 100
9032 CASE("pad0
","pad1
","pad2
","pad3
","pad4
","pad5
","pad6",
"pad7",
9033 &
"pad11",
"pad111",
"pad12",
"pad13",
"pad14",
"pad15",
"pad16")
9036 if(trim(mode).EQ.
"memory_save")
then
9037 nbsubrecords=int(size_variables(i1)/huge(i4))
9038 IF(nbsubrecords.GT.0)
then
9039 nbrecords(i1)=nbrecords(i1)+nbsubrecords
9041 elseif(trim(mode).EQ.
"save")
then
9042 size_written=size_written+size_variables(i1)
9043 & +int(size_gest(i1),kind=8)
9044#if !defined(MUMPS_F2003)
9045 size_written=size_written
9046 & +int(2*id%KEEP(34)*nbrecords(i1),kind=8)
9048 elseif(trim(mode).EQ.
"restore")
then
9049 size_allocated=size_allocated+size_variables(i1)+
9050 & diff_size_alloc_read(i1)
9051 size_read=size_read+size_variables(i1)
9052 & +int(size_gest(i1),kind=8)
9053#if !defined(MUMPS_F2003)
9055 & +int(2*id%KEEP(34)*nbrecords(i1),kind=8)
9057 elseif(trim(mode).EQ.
"fake_restore")
then
9061 if(trim(mode).EQ.
"memory_save")
then
9062 written_struc_size=sum(size_variables)+sum(size_variables_root)
9063 & +size_variables_blr+size_variables_front_data+
9064 & size_variables_l0fac
9065 total_struc_size=written_struc_size
9066 & +sum(diff_size_alloc_read)
9067 & +sum(diff_size_alloc_read_root)
9068 gest_size=sum(size_gest)+sum(size_gest_root)
9069 & +size_gest_blr+size_gest_front_data
9071 & +int(5*size_character,kind=8)
9072 & +int(23*size_character,kind=8)
9073 & +int(2*size_int8,kind=8)+int(1,kind=8)
9074 & +int(3*size_int,kind=8)
9075 & +int(size_logical,kind=8)
9076 IF(
associated(id%OOC_FILE_NAME_LENGTH).AND.
9077 &
associated(id%OOC_FILE_NAMES))
THEN
9078 gest_size=gest_size+int(size_int,kind=8)
9079 & +int(id%OOC_FILE_NAME_LENGTH(1)*size_character,kind=8)
9081 gest_size=gest_size+int(2*size_int,kind=8)
9083#if !defined(MUMPS_F2003)
9084 tot_nbrecords=sum(nbrecords)+sum(nbrecords_root)+8
9085 gest_size=gest_size+int(2*id%KEEP(34)*tot_nbrecords
9087 total_file_size=written_struc_size+gest_size
9088 elseif(trim(mode).EQ.
"save")
then
9089 elseif(trim(mode).EQ.
"restore")
then
9090 if(id%root%gridinit_done)
then
9091 id%root%CNTXT_BLACS = id%COMM_NODES
9093 & id%root%NPROW, id%root%NPCOL )
9094 id%root%gridinit_done = .true.
9096 elseif(trim(mode).EQ.
"fake_restore")
then
9097 elseif(trim(mode).EQ.
"restore_ooc")
then
9100 deallocate(variables, variables_root)