648 SUBROUTINE ZMUMPS_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 ZMUMPS_FACSOL_L0OMP_M, ONLY : ZMUMPS_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 (ZMUMPS_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(8)="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)
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
957 size_gest_front_data=0
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)
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)
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(id%OOC_NB_FILES,1)
1180 & id%COMM, id%MYID )
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
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*2
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
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
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
1465 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1468 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1469 & id%COMM, id%MYID )
1470.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1471.EQ.
elseif(trim(mode)"restore
") then
1472 SIZE_VARIABLES(i1)=SIZE_INT
1473 read(unit,iostat=err) id%SYM
1476 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read,
1479 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1480 & id%COMM, id%MYID )
1481.LT.
IF ( id%INFO(1) 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
1696 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1699 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1700 & id%COMM, id%MYID )
1701.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1705.EQ.
if(trim(mode)"memory_save
") then
1706 SIZE_VARIABLES(i1)=SIZE_RL_OR_DBL*size(id%RINFOG,1)
1707.EQ.
elseif(trim(mode)"save") then
1708 write(unit,iostat=err) id%RINFOG
1711 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1714 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1715 & id%COMM, id%MYID )
1716.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1717.EQ.
elseif(trim(mode)"restore
") then
1718 SIZE_VARIABLES(i1)=SIZE_RL_OR_DBL*size(id%RINFOG,1)
1719 read(unit,iostat=err) id%RINFOG
1722 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1725 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1726 & id%COMM, id%MYID )
1727.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1731.EQ.
if(trim(mode)"memory_save
") then
1732 SIZE_VARIABLES(i1)=SIZE_INT8*size(id%KEEP8,1)
1733.EQ.
elseif(trim(mode)"save") then
1734 write(unit,iostat=err) id%KEEP8
1737 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1740 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1741 & id%COMM, id%MYID )
1742.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1743.EQ.
elseif(trim(mode)"restore
") then
1744 SIZE_VARIABLES(i1)=SIZE_INT8*size(id%KEEP8,1)
1745 read(unit,iostat=err) id%KEEP8
1748 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1751 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1752 & id%COMM, id%MYID )
1753.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1757.EQ.
if(trim(mode)"memory_save
") then
1758 SIZE_VARIABLES(i1)=SIZE_INT*size(id%KEEP,1)
1759.EQ.
elseif(trim(mode)"save") then
1760 write(unit,iostat=err) id%KEEP
1763 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1766 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1767 & id%COMM, id%MYID )
1768.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1769.EQ.
elseif(trim(mode)"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
1776 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1779 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1780 & id%COMM, id%MYID )
1781.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1785.EQ.
if(trim(mode)"memory_save
") then
1786 SIZE_VARIABLES(i1)=SIZE_RL_OR_DBL*size(id%DKEEP,1)
1787.EQ.
elseif(trim(mode)"save") then
1788 write(unit,iostat=err) id%DKEEP
1791 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1794 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1795 & id%COMM, id%MYID )
1796.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1797.EQ.
elseif(trim(mode)"restore
") then
1798 SIZE_VARIABLES(i1)=SIZE_RL_OR_DBL*size(id%DKEEP,1)
1799 read(unit,iostat=err) id%DKEEP
1802 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1805 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1806 & id%COMM, id%MYID )
1807.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1811.EQ.
if(trim(mode)"memory_save
") then
1812 SIZE_VARIABLES(i1)=SIZE_INT
1813.EQ.
elseif(trim(mode)"save") then
1814 write(unit,iostat=err) id%NZ
1817 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1820 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1821 & id%COMM, id%MYID )
1822.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1823.EQ.
elseif(trim(mode)"restore
") then
1824 SIZE_VARIABLES(i1)=SIZE_INT
1825 read(unit,iostat=err) id%NZ
1828 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1831 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1832 & id%COMM, id%MYID )
1833.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1837.EQ.
if(trim(mode)"memory_save
") then
1838 SIZE_VARIABLES(i1)=SIZE_INT8
1839.EQ.
elseif(trim(mode)"save") then
1840 write(unit,iostat=err) id%NNZ
1843 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1846 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1847 & id%COMM, id%MYID )
1848.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1849.EQ.
elseif(trim(mode)"restore
") then
1850 SIZE_VARIABLES(i1)=SIZE_INT8
1851 read(unit,iostat=err) id%NNZ
1854 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1857 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1858 & id%COMM, id%MYID )
1859.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1865.NE.
IF(id%KEEP(52)-1) THEN
1867.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
1876 IF(associated(id%COLSCA)) THEN
1877 write(unit,iostat=err) size(id%COLSCA,1)
1880 CALL MUMPS_SETI8TOI4(
1881 & TOTAL_FILE_SIZE-size_written,
1884 write(unit,iostat=err) id%COLSCA
1886 write(unit,iostat=err) -999
1889 CALL MUMPS_SETI8TOI4(
1890 & TOTAL_FILE_SIZE-size_written,
1893 write(unit,iostat=err) -999
1897 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1900 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1901 & id%COMM, id%MYID )
1902.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1903.EQ.
elseif(trim(mode)"restore
") then
1905 read(unit,iostat=err) size_array1
1908 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1911 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1912 & id%COMM, id%MYID )
1913.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1914.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
1924 CALL MUMPS_SETI8TOI4(
1925 & TOTAL_STRUC_SIZE-size_allocated
1928 read(unit,iostat=err) id%COLSCA
1930 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1931 & id%COMM, id%MYID )
1932.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1935 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1938 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1939 & id%COMM, id%MYID )
1940.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1945.NE.
IF(id%KEEP(52)-1) THEN
1947.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
1956 IF(associated(id%ROWSCA)) THEN
1957 write(unit,iostat=err) size(id%ROWSCA,1)
1960 CALL MUMPS_SETI8TOI4(
1961 & TOTAL_FILE_SIZE-size_written,
1964 write(unit,iostat=err) id%ROWSCA
1966 write(unit,iostat=err) -999
1969 CALL MUMPS_SETI8TOI4(
1970 & TOTAL_FILE_SIZE-size_written,
1973 write(unit,iostat=err) -999
1977 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1980 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1981 & id%COMM, id%MYID )
1982.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1983.EQ.
elseif(trim(mode)"restore
") then
1985 read(unit,iostat=err) size_array1
1988 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1991 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
1992 & id%COMM, id%MYID )
1993.LT.
IF ( id%INFO(1) 0 ) GOTO 100
1994.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
2004 CALL MUMPS_SETI8TOI4(
2005 & TOTAL_STRUC_SIZE-size_allocated
2008 read(unit,iostat=err) id%ROWSCA
2010 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2011 & id%COMM, id%MYID )
2012.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2015 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2018 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2019 & id%COMM, id%MYID )
2020.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2026.EQ.
if(trim(mode)"memory_save
") then
2027 SIZE_VARIABLES(i1)=SIZE_INT
2028.EQ.
elseif(trim(mode)"save") then
2029 write(unit,iostat=err) id%NZ_loc
2032 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2035 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2036 & id%COMM, id%MYID )
2037.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2038.EQ.
elseif(trim(mode)"restore
") then
2039 SIZE_VARIABLES(i1)=SIZE_INT
2040 read(unit,iostat=err) id%NZ_loc
2043 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2046 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2047 & id%COMM, id%MYID )
2048.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2052.EQ.
if(trim(mode)"memory_save
") then
2053 SIZE_VARIABLES(i1)=SIZE_INT8
2054.EQ.
elseif(trim(mode)"save") then
2055 write(unit,iostat=err) id%NNZ_loc
2058 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2061 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2062 & id%COMM, id%MYID )
2063.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2064.EQ.
elseif(trim(mode)"restore
") then
2065 SIZE_VARIABLES(i1)=SIZE_INT8
2066 read(unit,iostat=err) id%NNZ_loc
2069 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2072 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2073 & id%COMM, id%MYID )
2074.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2081.EQ.
if(trim(mode)"memory_save
") then
2082 SIZE_VARIABLES(i1)=SIZE_INT
2083.EQ.
elseif(trim(mode)"save") then
2084 write(unit,iostat=err) id%NELT
2087 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2090 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2091 & id%COMM, id%MYID )
2092.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2093.EQ.
elseif(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
2177 write(unit,iostat=err) id%NRHS
2180 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2183 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2184 & id%COMM, id%MYID )
2185.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2186.EQ.
elseif(trim(mode)"restore
") then
2187 SIZE_VARIABLES(i1)=SIZE_INT
2188 read(unit,iostat=err) id%NRHS
2191 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2194 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2195 & id%COMM, id%MYID )
2196.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2200.EQ.
if(trim(mode)"memory_save
") then
2201 SIZE_VARIABLES(i1)=SIZE_INT
2202.EQ.
elseif(trim(mode)"save") then
2203 write(unit,iostat=err) id%NZ_RHS
2206 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2209 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2210 & id%COMM, id%MYID )
2211.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2212.EQ.
elseif(trim(mode)"restore
") then
2213 SIZE_VARIABLES(i1)=SIZE_INT
2214 read(unit,iostat=err) id%NZ_RHS
2217 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2220 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2221 & id%COMM, id%MYID )
2222.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2228.EQ.
if(trim(mode)"memory_save
") then
2229 SIZE_VARIABLES(i1)=SIZE_INT
2230.EQ.
elseif(trim(mode)"save") then
2231 write(unit,iostat=err) id%LSOL_loc
2234 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2237 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2238 & id%COMM, id%MYID )
2239.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2240.EQ.
elseif(trim(mode)"restore
") then
2241 SIZE_VARIABLES(i1)=SIZE_INT
2242 read(unit,iostat=err) id%LSOL_loc
2245 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2248 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2249 & id%COMM, id%MYID )
2250.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2254.EQ.
if(trim(mode)"memory_save
") then
2255 SIZE_VARIABLES(i1)=SIZE_INT
2256.EQ.
elseif(trim(mode)"save") then
2257 write(unit,iostat=err) id%LREDRHS
2260 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2263 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2264 & id%COMM, id%MYID )
2265.LT.
IF ( id%INFO(1) 0 ) GOTO 100
2266.EQ.
elseif(trim(mode)"restore
") then
2267 SIZE_VARIABLES(i1)=SIZE_INT
2268 read(unit,iostat=err) id%LREDRHS
2271 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2274 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
2275 & id%COMM, id%MYID )
2276.LT.
IF ( id%INFO(1) 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
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 elseif(trim(mode).EQ.
"save")
then
2525 write(unit,iostat=err) id%NBLOCK
2532 & id%COMM, id%MYID )
2533 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2534 elseif(trim(mode).EQ."restore")
then
2535 size_variables(i1)=size_int
2536 read(unit,iostat=err) id%NBLOCK
2543 & id%COMM, id%MYID )
2544 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2548 if(trim(mode).EQ.
"memory_save")
then
2549 size_variables(i1)=size_int
2550 elseif(trim(mode).EQ.
"save")
then
2551 write(unit,iostat=err) id%SCHUR_MLOC
2558 & id%COMM, id%MYID )
2559 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2560 elseif(trim(mode).EQ.
"restore")
then
2561 size_variables(i1)=size_int
2562 read(unit,iostat=err) id%SCHUR_MLOC
2569 & id%COMM, id%MYID )
2570 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2574 if(trim(mode).EQ.
"memory_save")
then
2575 size_variables(i1)=size_int
2576 elseif(trim(mode).EQ.
"save")
then
2577 write(unit,iostat=err) id%SCHUR_NLOC
2584 & id%COMM, id%MYID )
2585 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2586 elseif(trim(mode).EQ.
"restore")
then
2587 size_variables(i1)=size_int
2588 read(unit,iostat=err) id%SCHUR_NLOC
2595 & id%COMM, id%MYID )
2596 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2600 if(trim(mode).EQ.
"memory_save")
then
2601 size_variables(i1)=size_int
2602 elseif(trim(mode).EQ.
"save")
then
2603 write(unit,iostat=err) id%SCHUR_LLD
2610 & id%COMM, id%MYID )
2611 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2612 elseif(trim(mode).EQ.
"restore")
then
2613 size_variables(i1)=size_int
2614 read(unit,iostat=err) id%SCHUR_LLD
2621 & id%COMM, id%MYID )
2622 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2626 if(trim(mode).EQ.
"memory_save")
then
2627 size_variables(i1)=size_int
2628 elseif(trim(mode).EQ.
"save")
then
2629 write(unit,iostat=err) id%SIZE_SCHUR
2636 & id%COMM, id%MYID )
2637 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2639 elseif(trim(mode).EQ.
"restore")
then
2640 size_variables(i1)=size_int
2641 read(unit,iostat=err) id%SIZE_SCHUR
2648 & id%COMM, id%MYID )
2649 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2652 CASE(
"SCHUR_CINTERFACE")
2653 CASE(
"LISTVAR_SCHUR")
2656 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
2665 IF(
associated(id%MAPPING))
THEN
2666 write(unit,iostat=err) id%KEEP8(28)
2673 & id%COMM, id%MYID )
2674 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2675 write(unit,iostat=err) id%MAPPING
2677 write(unit,iostat=err) int(-999,8)
2684 & id%COMM, id%MYID )
2685 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2686 write(unit,iostat=err) -999
2694 & id%COMM, id%MYID )
2695 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2696 elseif(trim(mode).EQ.
"restore")
then
2705 & id%COMM, id%MYID )
2707 if(size_array_int8_1.EQ.int(-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 if (allocok .GT. 0)
THEN
2718 & total_struc_size-size_allocated
2721 read(unit,iostat=err) id%MAPPING
2724 & id%COMM, id%MYID )
2725 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2732 & id%COMM, id%MYID )
2733 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2735 CASE(
"VERSION_NUMBER")
2737 if(trim(mode).EQ.
"memory_save")
then
2738 size_variables(i1)=len(id%VERSION_NUMBER)
2740 elseif(trim(mode).EQ.
"save")
then
2741 write(unit,iostat=err) id%VERSION_NUMBER
2748 & id%COMM, id%MYID )
2749 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2750 elseif(trim(mode).EQ.
"restore")
then
2751 size_variables(i1)=len(id%VERSION_NUMBER)
2753 read(unit,iostat=err) id%VERSION_NUMBER
2760 & id%COMM, id%MYID )
2761 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2765 if(trim(mode).EQ.
"memory_save")
then
2766 size_variables(i1)=len(id%OOC_TMPDIR)
2768 elseif(trim(mode).EQ.
"save")
then
2769 write(unit,iostat=err) id%OOC_TMPDIR
2776 & id%COMM, id%MYID )
2777 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2778 elseif(trim(mode).EQ.
"restore")
then
2779 size_variables(i1)=len(id%OOC_TMPDIR)
2781 read(unit,iostat=err) id%OOC_TMPDIR
2788 & id%COMM, id%MYID )
2789 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2793 if(trim(mode).EQ.
"memory_save")
then
2794 size_variables(i1)=len(id%OOC_PREFIX)
2796 elseif(trim(mode).EQ.
"save")
then
2797 write(unit,iostat=err) id%OOC_PREFIX
2804 & id%COMM, id%MYID )
2805 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2807 elseif(trim(mode).EQ.
"restore")
then
2808 size_variables(i1)=len(id%OOC_PREFIX)
2810 read(unit,iostat=err) id%OOC_PREFIX
2817 & id%COMM, id%MYID )
2818 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2820 CASE(
"WRITE_PROBLEM")
2822 if(trim(mode).EQ.
"memory_save")
then
2823 size_variables(i1)=len(id%WRITE_PROBLEM)
2825 elseif(trim(mode).EQ.
"save"then
2826 write(unit,iostat=err) id%WRITE_PROBLEM
2833 & id%COMM, id%MYID )
2834 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2835 elseif(trim(mode).EQ.
"restore")
then
2836 size_variables(i1)=len(id%WRITE_PROBLEM)
2838 read(unit,iostat=err) id%WRITE_PROBLEM
2845 & id%COMM, id%MYID )
2846 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2848 CASE(
"MAX_SURF_MASTER")
2850 if(trim(mode).EQ.
"memory_save")
then
2851 size_variables(i1)=size_int8
2852 elseif(trim(mode).EQ.
"save")
then
2853 write(unit,iostat=err) id%MAX_SURF_MASTER
2860 & id%COMM, id%MYID )
2861 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2862 elseif(trim(mode).EQ.
"restore")
then
2863 size_variables(i1)=size_int8
2864 read(unit,iostat=err) id%MAX_SURF_MASTER
2871 & id%COMM, id%MYID )
2872 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2876 if(trim(mode).EQ.
"memory_save")
then
2877 size_variables(i1)=size_int
2878 elseif(trim(mode).EQ.
"save")
then
2879 write(unit,iostat=err) id%INST_Number
2886 & id%COMM, id%MYID )
2887 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2888 elseif(trim(mode).EQ.
"restore")
then
2889 size_variables(i1)=size_int
2890 read(unit,iostat=err) id%INST_Number
2897 & id%COMM, id%MYID )
2898 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2901 if(trim(mode).EQ.
"memory_save")
then
2902 diff_size_alloc_read(i1)=size_int
2903 elseif(trim(mode).EQ.
"save")
then
2904 diff_size_alloc_read(i1)=size_int
2905 elseif(trim(mode).EQ.
"restore")
then
2906 diff_size_alloc_read(i1)=size_int
2910 if(trim(mode).EQ.
"memory_save")
then
2911 size_variables(i1)=size_int
2912 elseif(trim(mode).EQ.
"save")
then
2913 write(unit,iostat=err) id%MYID_NODES
2920 & id%COMM, id%MYID )
2921 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2922 elseif(trim(mode).EQ.
"restore")
then
2923 size_variables(i1)=size_int
2924 read(unit,iostat=err) id%MYID_NODES
2931 & id%COMM, id%MYID )
2932 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2935 if(trim(mode).EQ.
"memory_save")
then
2936 diff_size_alloc_read(i1)=size_int
2937 elseif(trim(mode).EQ.
"save")
then
2938 diff_size_alloc_read(i1)=size_int
2939 elseif(trim(mode).EQ.
"restore")
then
2940 diff_size_alloc_read(i1)=size_int
2944 if(trim(mode).EQ.
"memory_save")
then
2945 size_variables(i1)=size_int
2946 elseif(trim(mode).EQ.
"save")
then
2947 write(unit,iostat=err) id%MYID
2954 & id%COMM, id%MYID )
2955 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2956 elseif(trim(mode).EQ.
"restore")
then
2957 size_variables(i1)=size_int
2958 read(unit,iostat=err) id%MYID
2965 & id%COMM, id%MYID )
2966 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2970 if(trim(mode).EQ.
"memory_save")
then
2971 size_variables(i1)=size_int
2972 elseif(trim(mode).EQ.
"save")
then
2973 write(unit,iostat=err) id%NPROCS
2980 & id%COMM, id%MYID )
2981 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2982 elseif(trim(mode).EQ.
"restore")
then
2983 size_variables(i1)=size_int
2984 read(unit,iostat=err) id%NPROCS
2991 & id%COMM, id%MYID )
2992 IF ( id%INFO(1) .LT. 0 )
GOTO 100
2996 if(trim(mode).EQ.
"memory_save")
then
2997 size_variables(i1)=size_int
2998 elseif(trim(mode).EQ.
"save")
then
2999 write(unit,iostat=err) id%NSLAVES
3006 & id%COMM, id%MYID )
3007 IF ( id%INFO(1) .LT. 0 )
GOTO 100
3008 elseif(trim(mode).EQ.
"restore")
then
3009 size_variables(i1)=size_int
3010 read(unit,iostat=err) id%NSLAVES
3017 & id%COMM, id%MYID )
3018 IF ( id%INFO(1) .LT. 0 )
GOTO 100
3022 if(trim(mode).EQ.
"memory_save")
then
3023 size_variables(i1)=size_int
3024 elseif(trim(mode).EQ."
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.EQ.
elseif(trim(mode)"save") then
4817 IF(associated(id%CANDIDATES)) THEN
4818 write(unit,iostat=err) size(id%CANDIDATES,1)
4819 & ,size(id%CANDIDATES,2)
4822 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4825 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4826 & id%COMM, id%MYID )
4827.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4828 write(unit,iostat=err) id%CANDIDATES
4830 write(unit,iostat=err) -999,-998
4833 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4836 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4837 & id%COMM, id%MYID )
4838.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4839 write(unit,iostat=err) -999
4843 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4846 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4847 & id%COMM, id%MYID )
4848.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4849.EQ.
elseif(trim(mode)"restore
") then
4850 nullify(id%CANDIDATES)
4851 read(unit,iostat=err) size_array1,size_array2
4854 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4857 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4858 & id%COMM, id%MYID )
4859.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4860.EQ.
if(size_array1-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,size_array2)
4869.GT.
if (allocok 0) THEN
4871 CALL MUMPS_SETI8TOI4(
4872 & TOTAL_STRUC_SIZE-size_allocated
4875 read(unit,iostat=err) id%CANDIDATES
4877 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4878 & id%COMM, id%MYID )
4879.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4882 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4885 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4886 & id%COMM, id%MYID )
4887.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4889 CASE("istep_to_iniv2
")
4891.EQ.
if(trim(mode)"memory_save
") then
4892 IF(associated(id%ISTEP_TO_INIV2)) THEN
4893 SIZE_GEST(i1)=SIZE_INT
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.EQ.
elseif(trim(mode)"save") then
4900 IF(associated(id%ISTEP_TO_INIV2)) THEN
4901 write(unit,iostat=err) size(id%ISTEP_TO_INIV2,1)
4904 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4907 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4908 & id%COMM, id%MYID )
4909.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4910 write(unit,iostat=err) id%ISTEP_TO_INIV2
4912 write(unit,iostat=err) -999
4915 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4918 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4919 & id%COMM, id%MYID )
4920.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4921 write(unit,iostat=err) -999
4925 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4928 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4929 & id%COMM, id%MYID )
4930.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4931.EQ.
elseif(trim(mode)"restore
") then
4932 nullify(id%ISTEP_TO_INIV2)
4933 read(unit,iostat=err) size_array1
4936 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4939 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4940 & id%COMM, id%MYID )
4941.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4942.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
4952 CALL MUMPS_SETI8TOI4(
4953 & TOTAL_STRUC_SIZE-size_allocated
4956 read(unit,iostat=err) id%ISTEP_TO_INIV2
4958 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4959 & id%COMM, id%MYID )
4960.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4963 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
4966 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4967 & id%COMM, id%MYID )
4968.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4972.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
4981 IF(associated(id%FUTURE_NIV2)) THEN
4982 write(unit,iostat=err) size(id%FUTURE_NIV2,1)
4985 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4988 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
4989 & id%COMM, id%MYID )
4990.LT.
IF ( id%INFO(1) 0 ) GOTO 100
4991 write(unit,iostat=err) id%FUTURE_NIV2
4993 write(unit,iostat=err) -999
4996 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
4999 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5000 & id%COMM, id%MYID )
5001.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5002 write(unit,iostat=err) -999
5006 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5009 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5010 & id%COMM, id%MYID )
5011.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5012.EQ.
elseif(trim(mode)"restore
") then
5013 nullify(id%FUTURE_NIV2)
5014 read(unit,iostat=err) size_array1
5017 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5020 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5021 & id%COMM, id%MYID )
5022.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5023.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
5033 CALL MUMPS_SETI8TOI4(
5034 & TOTAL_STRUC_SIZE-size_allocated
5037 read(unit,iostat=err) id%FUTURE_NIV2
5039 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5040 & id%COMM, id%MYID )
5041.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5044 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5047 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5048 & id%COMM, id%MYID )
5049.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5051 CASE("tab_pos_in_pere
")
5053.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"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)
5068 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5071 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5072 & id%COMM, id%MYID )
5073.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5074 write(unit,iostat=err) id%TAB_POS_IN_PERE
5076 write(unit,iostat=err) -999,-998
5079 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5082 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5083 & id%COMM, id%MYID )
5084.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5085 write(unit,iostat=err) -999
5089 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5092 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5093 & id%COMM, id%MYID )
5094.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5095.EQ.
elseif(trim(mode)"restore
") then
5096 nullify(id%TAB_POS_IN_PERE)
5097 read(unit,iostat=err) size_array1,size_array2
5100 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5103 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5104 & id%COMM, id%MYID )
5105.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5106.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
5117 CALL MUMPS_SETI8TOI4(
5118 & TOTAL_STRUC_SIZE-size_allocated
5121 read(unit,iostat=err) id%TAB_POS_IN_PERE
5123 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5124 & id%COMM, id%MYID )
5125.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5128 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5131 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5132 & id%COMM, id%MYID )
5133.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5137.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
5146 IF(associated(id%I_AM_CAND)) THEN
5147 write(unit,iostat=err) size(id%I_AM_CAND,1)
5150 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5153 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5154 & id%COMM, id%MYID )
5155.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5156 write(unit,iostat=err) id%I_AM_CAND
5158 write(unit,iostat=err) -999
5161 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5164 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5165 & id%COMM, id%MYID )
5166.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5167 write(unit,iostat=err) -999
5171 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5174 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5175 & id%COMM, id%MYID )
5176.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5177.EQ.
elseif(trim(mode)"restore
") then
5178 nullify(id%I_AM_CAND)
5179 read(unit,iostat=err) size_array1
5182 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5185 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5186 & id%COMM, id%MYID )
5187.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5188.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
5198 CALL MUMPS_SETI8TOI4(
5199 & TOTAL_STRUC_SIZE-size_allocated
5202 read(unit,iostat=err) id%I_AM_CAND
5204 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5205 & id%COMM, id%MYID )
5206.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5209 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5212 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5213 & id%COMM, id%MYID )
5214.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5218.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
5227 IF(associated(id%MEM_DIST)) THEN
5228 write(unit,iostat=err) size(id%MEM_DIST,1)
5231 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5234 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5235 & id%COMM, id%MYID )
5236 write(unit,iostat=err) id%MEM_DIST
5238 write(unit,iostat=err) -999
5241 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5244 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5245 & id%COMM, id%MYID )
5246 write(unit,iostat=err) -999
5250 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5253 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5254 & id%COMM, id%MYID )
5255.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5256.EQ.
elseif(trim(mode)"restore
") then
5257 nullify(id%MEM_DIST)
5258 read(unit,iostat=err) size_array1
5261 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5264 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5265 & id%COMM, id%MYID )
5266.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5267.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
5277 CALL MUMPS_SETI8TOI4(
5278 & TOTAL_STRUC_SIZE-size_allocated
5281 read(unit,iostat=err) id%MEM_DIST
5283 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5284 & id%COMM, id%MYID )
5285.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5288 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5291 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5292 & id%COMM, id%MYID )
5293.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5295 CASE("posinrhscomp_row
")
5297.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
5307 IF(associated(id%POSINRHSCOMP_ROW)) THEN
5308 write(unit,iostat=err) size(id%POSINRHSCOMP_ROW,1)
5311 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5314 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5315 & id%COMM, id%MYID )
5316.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5317 write(unit,iostat=err) id%POSINRHSCOMP_ROW
5319 write(unit,iostat=err) -999
5322 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5325 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5326 & id%COMM, id%MYID )
5327.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5328 write(unit,iostat=err) -999
5332 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5335 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5336 & id%COMM, id%MYID )
5337.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5338.EQ.
elseif(trim(mode)"restore
") then
5339 nullify(id%POSINRHSCOMP_ROW)
5340 read(unit,iostat=err) size_array1
5343 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5346 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5347 & id%COMM, id%MYID )
5348.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5349.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
5360 CALL MUMPS_SETI8TOI4(
5361 & TOTAL_STRUC_SIZE-size_allocated
5364 read(unit,iostat=err) id%POSINRHSCOMP_ROW
5366 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5367 & id%COMM, id%MYID )
5368.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5371 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5374 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5375 & id%COMM, id%MYID )
5376.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5378 CASE("posinrhscomp_col_alloc
")
5380.EQ.
if(trim(mode)"memory_save
") then
5381 SIZE_VARIABLES(i1)=SIZE_LOGICAL
5382.EQ.
elseif(trim(mode)"save") then
5383 write(unit,iostat=err) id%POSINRHSCOMP_COL_ALLOC
5386 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5389 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5390 & id%COMM, id%MYID )
5391.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5392.EQ.
elseif(trim(mode)"restore
") then
5393 SIZE_VARIABLES(i1)=SIZE_LOGICAL
5394 read(unit,iostat=err) id%POSINRHSCOMP_COL_ALLOC
5397 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5400 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5401 & id%COMM, id%MYID )
5402.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5404 CASE("posinrhscomp_col
")
5406.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"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)
5426 CALL MUMPS_SETI8TOI4(
5427 & TOTAL_FILE_SIZE-size_written,
5430 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5431 & id%COMM, id%MYID )
5432.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5433 write(unit,iostat=err) id%POSINRHSCOMP_COL
5435 write(unit,iostat=err) size(id%POSINRHSCOMP_COL,1)
5438 CALL MUMPS_SETI8TOI4(
5439 & TOTAL_FILE_SIZE-size_written,
5442 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5443 & id%COMM, id%MYID )
5444.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5445 write(unit,iostat=err) -999
5448 write(unit,iostat=err) -999
5451 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5454 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5455 & id%COMM, id%MYID )
5456.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5457 write(unit,iostat=err) -999
5461 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5464 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5465 & id%COMM, id%MYID )
5466.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5467.EQ.
elseif(trim(mode)"restore
") then
5468 nullify(id%POSINRHSCOMP_COL)
5469 read(unit,iostat=err) size_array1
5472 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5475 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5476 & id%COMM, id%MYID )
5477.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5478.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
5490 CALL MUMPS_SETI8TOI4(
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
5502 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5503 & id%COMM, id%MYID )
5504.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5507 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5510 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5511 & id%COMM, id%MYID )
5512.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5516.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
5525 IF(associated(id%RHSCOMP)) THEN
5526 write(unit,iostat=err) id%KEEP8(25)
5529 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5532 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5533 & id%COMM, id%MYID )
5534.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5535 write(unit,iostat=err) id%RHSCOMP
5537 write(unit,iostat=err) int(-999,8)
5540 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5543 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5544 & id%COMM, id%MYID )
5545.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5546 write(unit,iostat=err) -999
5550 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5553 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5554 & id%COMM, id%MYID )
5555.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5556.EQ.
elseif(trim(mode)"restore
") then
5558 read(unit,iostat=err) size_array_INT8_1
5561 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5564 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5565 & id%COMM, id%MYID )
5566.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5567.EQ.
if(size_array_INT8_1int(-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.GT.
if (allocok 0) THEN
5577 CALL MUMPS_SETI8TOI4(
5578 & TOTAL_STRUC_SIZE-size_allocated
5581 read(unit,iostat=err) id%RHSCOMP
5583 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5584 & id%COMM, id%MYID )
5585.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5588 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5591 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5592 & id%COMM, id%MYID )
5593.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5597.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
5607 IF(associated(id%MEM_SUBTREE)) THEN
5608 write(unit,iostat=err) size(id%MEM_SUBTREE,1)
5611 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5614 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5615 & id%COMM, id%MYID )
5616.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5617 write(unit,iostat=err) id%MEM_SUBTREE
5619 write(unit,iostat=err) -999
5622 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5625 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5626 & id%COMM, id%MYID )
5627.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5628 write(unit,iostat=err) -999
5632 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5635 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5636 & id%COMM, id%MYID )
5637.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5638.EQ.
elseif(trim(mode)"restore
") then
5639 nullify(id%MEM_SUBTREE)
5640 read(unit,iostat=err) size_array1
5643 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5646 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5647 & id%COMM, id%MYID )
5648.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5649.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
5659 CALL MUMPS_SETI8TOI4(
5660 & TOTAL_STRUC_SIZE-size_allocated
5663 read(unit,iostat=err) id%MEM_SUBTREE
5665 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5666 & id%COMM, id%MYID )
5667.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5670 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5673 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5674 & id%COMM, id%MYID )
5675.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5679.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
5689 IF(associated(id%COST_TRAV)) THEN
5690 write(unit,iostat=err) size(id%COST_TRAV,1)
5693 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5696 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5697 & id%COMM, id%MYID )
5698.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5699 write(unit,iostat=err) id%COST_TRAV
5701 write(unit,iostat=err) -999
5704 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5707 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5708 & id%COMM, id%MYID )
5709.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5710 write(unit,iostat=err) -999
5714 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5717 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5718 & id%COMM, id%MYID )
5719.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5720.EQ.
elseif(trim(mode)"restore
") then
5721 nullify(id%COST_TRAV)
5722 read(unit,iostat=err) size_array1
5725 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5728 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5729 & id%COMM, id%MYID )
5730.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5731.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
5741 CALL MUMPS_SETI8TOI4(
5742 & TOTAL_STRUC_SIZE-size_allocated
5745 read(unit,iostat=err) id%COST_TRAV
5747 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5748 & id%COMM, id%MYID )
5749.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5752 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5755 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5756 & id%COMM, id%MYID )
5757.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5759 CASE("my_root_sbtr
")
5761.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
5770 IF(associated(id%MY_ROOT_SBTR)) THEN
5771 write(unit,iostat=err) size(id%MY_ROOT_SBTR,1)
5774 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5777 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5778 & id%COMM, id%MYID )
5779.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5780 write(unit,iostat=err) id%MY_ROOT_SBTR
5782 write(unit,iostat=err) -999
5785 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5788 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5789 & id%COMM, id%MYID )
5790.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5791 write(unit,iostat=err) -999
5795 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5798 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5799 & id%COMM, id%MYID )
5800.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5801.EQ.
elseif(trim(mode)"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.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
5851 IF(associated(id%MY_FIRST_LEAF)) THEN
5852 write(unit,iostat=err) size(id%MY_FIRST_LEAF,1)
5855 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5858 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5859 & id%COMM, id%MYID )
5860.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5861 write(unit,iostat=err) id%MY_FIRST_LEAF
5863 write(unit,iostat=err) -999
5866 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5869 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5870 & id%COMM, id%MYID )
5871.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5872 write(unit,iostat=err) -999
5876 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5879 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5880 & id%COMM, id%MYID )
5881.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5882.EQ.
elseif(trim(mode)"restore
") then
5883 nullify(id%MY_FIRST_LEAF)
5884 read(unit,iostat=err) size_array1
5887 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5890 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5891 & id%COMM, id%MYID )
5892.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5893.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
5903 CALL MUMPS_SETI8TOI4(
5904 & TOTAL_STRUC_SIZE-size_allocated
5907 read(unit,iostat=err) id%MY_FIRST_LEAF
5909 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5910 & id%COMM, id%MYID )
5911.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5914 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5917 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5918 & id%COMM, id%MYID )
5919.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5923.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
5932 IF(associated(id%MY_NB_LEAF)) THEN
5933 write(unit,iostat=err) size(id%MY_NB_LEAF,1)
5936 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5939 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5940 & id%COMM, id%MYID )
5941.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5942 write(unit,iostat=err) id%MY_NB_LEAF
5944 write(unit,iostat=err) -999
5947 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5950 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5951 & id%COMM, id%MYID )
5952.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5953 write(unit,iostat=err) -999
5957 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
5960 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5961 & id%COMM, id%MYID )
5962.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5963.EQ.
elseif(trim(mode)"restore
") then
5964 nullify(id%MY_NB_LEAF)
5965 read(unit,iostat=err) size_array1
5968 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5971 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5972 & id%COMM, id%MYID )
5973.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5974.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
5984 CALL MUMPS_SETI8TOI4(
5985 & TOTAL_STRUC_SIZE-size_allocated
5988 read(unit,iostat=err) id%MY_NB_LEAF
5990 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5991 & id%COMM, id%MYID )
5992.LT.
IF ( id%INFO(1) 0 ) GOTO 100
5995 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
5998 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
5999 & id%COMM, id%MYID )
6000.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6004.EQ.
if(trim(mode)"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.EQ.
elseif(trim(mode)"save") then
6013 IF(associated(id%DEPTH_FIRST)) THEN
6014 write(unit,iostat=err) size(id%DEPTH_FIRST,1)
6017 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6020 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6021 & id%COMM, id%MYID )
6022.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6023 write(unit,iostat=err) id%DEPTH_FIRST
6025 write(unit,iostat=err) -999
6028 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6031 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6032 & id%COMM, id%MYID )
6033.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6034 write(unit,iostat=err) -999
6038 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6041 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6042 & id%COMM, id%MYID )
6043.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6044.EQ.
elseif(trim(mode)"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)
6180 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6183 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6184 & id%COMM, id%MYID )
6185.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6186 write(unit,iostat=err) id%SBTR_ID
6188 write(unit,iostat=err) -999
6191 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6194 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6195 & id%COMM, id%MYID )
6196.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6197 write(unit,iostat=err) -999
6201 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
6204 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6205 & id%COMM, id%MYID )
6206.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6207.EQ.
elseif(trim(mode)"restore
") then
6209 read(unit,iostat=err) size_array1
6212 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6215 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6216 & id%COMM, id%MYID )
6217.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6218.EQ.
if(size_array1-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.GT.
if (allocok 0) THEN
6228 CALL MUMPS_SETI8TOI4(
6229 & TOTAL_STRUC_SIZE-size_allocated
6232 read(unit,iostat=err) id%SBTR_ID
6234 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6235 & id%COMM, id%MYID )
6236.LT.
IF ( id%INFO(1) 0 ) GOTO 100
6239 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
6242 CALL MUMPS_PROPINFO( id%ICNTL(1), id%INFO(1),
6243 & id%COMM, id%MYID )
6244.LT.
IF ( id%INFO(1) 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)
6358 & id%COMM, id%MYID )
6359 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6360 write(unit,iostat=err) id%OOC_INODE_SEQUENCE
6362 write(unit,iostat=err) -999,-998
6369 & id%COMM, id%MYID )
6370 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6371 write(unit,iostat=err) -999
6379 & id%COMM, id%MYID )
6380 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6381 elseif(trim(mode).EQ.
"restore")
then
6382 nullify(id%OOC_INODE_SEQUENCE)
6383 read(unit,iostat=err) size_array1,size_array2
6390 & id%COMM, id%MYID )
6391 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6392 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
6404 & total_struc_size-size_allocated
6407 read(unit,iostat=err) id%OOC_INODE_SEQUENCE
6410 & id%COMM, id%MYID )
6411 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6418 & id%COMM, id%MYID )
6419 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6421 CASE(
"OOC_SIZE_OF_BLOCK")
6423 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"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)
6442 & id%COMM, id%MYID )
6443 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6444 write(unit,iostat=err) id%OOC_SIZE_OF_BLOCK
6446 write(unit,iostat=err) -999,-998
6453 & id%COMM, id%MYID )
6454 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6455 write(unit,iostat=err) -999
6463 & id%COMM, id%MYID )
6464 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6465 elseif(trim(mode).EQ.
"restore")
then
6466 nullify(id%OOC_SIZE_OF_BLOCK)
6467 read(unit,iostat=err) size_array1,size_array2
6474 & id%COMM, id%MYID )
6475 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6476 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
6488 & total_struc_size-size_allocated
6491 read(unit,iostat=err) id%OOC_SIZE_OF_BLOCK
6494 & id%COMM, id%MYID )
6495 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6502 & id%COMM, id%MYID )
6503 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6507 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"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)
6526 & id%COMM, id%MYID )
6527 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6528 write(unit,iostat=err) id%OOC_VADDR
6530 write(unit,iostat=err) -999,-998
6537 & id%COMM, id%MYID )
6538 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6539 write(unit,iostat=err) -999
6547 & id%COMM, id%MYID )
6548 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6549 elseif(trim(mode).EQ.
"restore")
then
6550 nullify(id%OOC_VADDR)
6551 read(unit,iostat=err) size_array1,size_array2
6558 & id%COMM, id%MYID )
6559 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6560 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
6572 & total_struc_size-size_allocated
6575 read(unit,iostat=err) id%OOC_VADDR
6578 & id%COMM, id%MYID )
6579 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6586 & id%COMM, id%MYID )
6587 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6589 CASE(
"OOC_TOTAL_NB_NODES")
6591 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
6601 IF(
associated(id%OOC_TOTAL_NB_NODES))
THEN
6602 write(unit,iostat=err)
size(id%OOC_TOTAL_NB_NODES,1)
6609 & id%COMM, id%MYID )
6610 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6611 write(unit,iostat=err) id%OOC_TOTAL_NB_NODES
6613 write(unit,iostat=err) -999
6620 & id%COMM, id%MYID )
6621 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6622 write(unit,iostat=err) -999
6630 & id%COMM, id%MYID )
6631 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6632 elseif(trim(mode).EQ.
"restore")
then
6633 nullify(id%OOC_TOTAL_NB_NODES)
6634 read(unit,iostat=err) size_array1
6641 & id%COMM, id%MYID )
6642 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6643 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
6655 & total_struc_size-size_allocated
6658 read(unit,iostat=err) id%OOC_TOTAL_NB_NODES
6661 & id%COMM, id%MYID )
6662 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6669 & id%COMM, id%MYID )
6670 IF ( id%INFO(1) .LT. 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 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
6687 IF(
associated(id%PIVNUL_LIST))
THEN
6688 write(unit,iostat=err)
size(id%PIVNUL_LIST,1)
6695 & id%COMM, id%MYID )
6696 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6697 write(unit,iostat=err) id%PIVNUL_LIST
6699 write(unit,iostat=err) -999
6706 & id%COMM, id%MYID )
6707 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6708 write(unit,iostat=err) -999
6716 & id%COMM, id%MYID )
6717 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6718 elseif(trim(mode).EQ.
"restore")
then
6719 nullify(id%PIVNUL_LIST)
6720 read(unit,iostat=err) size_array1
6727 & id%COMM, id%MYID )
6728 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6729 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
6740 & total_struc_size-size_allocated
6743 read(unit,iostat=err) id%PIVNUL_LIST
6746 & id%COMM, id%MYID )
6747 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6754 & id%COMM, id%MYID )
6755 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6758 CASE(
"IPTR_WORKING")
6760 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
6769 IF(
associated(id%IPTR_WORKING))
THEN
6770 write(unit,iostat=err)
size(id%IPTR_WORKING,1)
6777 & id%COMM, id%MYID )
6778 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6779 write(unit,iostat=err) id%IPTR_WORKING
6781 write(unit,iostat=err) -999
6788 & id%COMM, id%MYID )
6789 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6790 write(unit,iostat=err) -999
6798 & id%COMM, id%MYID )
6799 IF ( id%INFO(1) .LT. 0 )
GOTO 100
6800 elseif(trim(mode).EQ.
"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
7097 read(unit,iostat=err) id%root%SCHUR_MLOC
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
7112 write(unit,iostat=err) id%root%SCHUR_NLOC
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 elseif(trim(mode).EQ.
"save")
then
7190 write(unit,iostat=err) id%root%ROOT_SIZE
7197 & id%COMM, id%MYID )
7198 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7199 elseif(trim(mode).EQ.
"restore")
then
7200 size_variables_root(i2)=size_int
7201 read(unit,iostat=err) id%root%ROOT_SIZE
7208 & id%COMM, id%MYID )
7209 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7211 CASE(
"TOT_ROOT_SIZE")
7212 nbrecords_root(i2)=1
7213 if(trim(mode).EQ.
"memory_save")
then
7214 size_variables_root(i2)=size_int
7215 elseif(trim(mode).EQ.
"save")
then
7216 write(unit,iostat=err) id%root%TOT_ROOT_SIZE
7223 & id%COMM, id%MYID )
7224 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7225 elseif(trim(mode).EQ.
"restore")
then
7226 size_variables_root(i2)=size_int
7227 read(unit,iostat=err) id%root%TOT_ROOT_SIZE
7234 & id%COMM, id%MYID )
7235 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7238 nbrecords_root(i2)=1
7239 if(trim(mode).EQ.
"memory_save")
then
7240 size_variables_root(i2)=
size(id%root%DESCRIPTOR,1)
7242 elseif(trim(mode).EQ.
"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 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
7331 IF(
associated(id%root%IPIV))
THEN
7332 write(unit,iostat=err)
size(id%root%IPIV,1)
7336 & total_file_size-size_written
7340 & id%COMM, id%MYID )
7341 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7342 write(unit,iostat=err) id%root%IPIV
7344 write(unit,iostat=err) -999
7348 & total_file_size-size_written
7352 & id%COMM, id%MYID )
7353 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7354 write(unit,iostat=err) -999
7362 & id%COMM, id%MYID )
7363 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7364 elseif(trim(mode).EQ.
"restore")
then
7365 nullify(id%root%IPIV)
7366 read(unit,iostat=err) size_array1
7373 & id%COMM, id%MYID )
7374 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7375 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
7386 & total_struc_size-size_allocated
7389 read(unit,iostat=err) id%root%IPIV
7392 & id%COMM, id%MYID )
7393 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7400 & id%COMM, id%MYID )
7401 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7403 CASE(
"RHS_CNTR_MASTER_ROOT")
7404 nbrecords_root(i2)=2
7405 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"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)
7422 & total_file_size-size_written
7426 & id%COMM, id%MYID )
7427 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7428 write(unit,iostat=err) id%root%RHS_CNTR_MASTER_ROOT
7430 write(unit,iostat=err) -999
7434 & total_file_size-size_written
7438 & id%COMM, id%MYID )
7439 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7440 write(unit,iostat=err) -999
7448 & id%COMM, id%MYID )
7449 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7450 elseif(trim(mode).EQ.
"restore")
then
7451 nullify(id%root%RHS_CNTR_MASTER_ROOT)
7452 read(unit,iostat=err) size_array1
7459 & id%COMM, id%MYID )
7460 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7461 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
7473 & total_struc_size-size_allocated
7476 read(unit,iostat=err) id%root%RHS_CNTR_MASTER_ROOT
7479 & id%COMM, id%MYID )
7480 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7487 & id%COMM, id%MYID )
7488 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7490 CASE(
"SCHUR_POINTER")
7493 nbrecords_root(i2)=2
7494 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"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)
7510 & total_file_size-size_written
7514 & id%COMM, id%MYID )
7515 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7516 write(unit,iostat=err) id%root%RHS_ROOT
7518 write(unit,iostat=err) -999,-998
7522 & total_file_size-size_written
7526 & id%COMM, id%MYID )
7527 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7528 write(unit,iostat=err) -999
7536 & id%COMM, id%MYID )
7537 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7538 elseif(trim(mode).EQ.
"restore")
then
7539 nullify(id%root%RHS_ROOT)
7540 read(unit,iostat=err) size_array1,size_array2
7547 & id%COMM, id%MYID )
7548 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7549 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
7562 & total_struc_size-size_allocated
7565 read(unit,iostat=err) id%root%RHS_ROOT
7568 & id%COMM, id%MYID )
7569 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7576 & id%COMM, id%MYID )
7577 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7580 nbrecords_root(i2)=1
7581 if(trim(mode).EQ.
"memory_save")
then
7582 size_variables_root(i2)=size_rl_or_dbl
7583 elseif(trim(mode).EQ.
"save")
then
7584 write(unit,iostat=err) id%root%QR_RCOND
7591 & id%COMM, id%MYID )
7592 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7593 elseif(trim(mode).EQ.
"restore")
then
7594 size_variables_root(i2)=size_rl_or_dbl
7595 read(unit,iostat=err) id%root%QR_RCOND
7602 & id%COMM, id%MYID )
7603 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7606 nbrecords_root(i2)=1
7607 if(trim(mode).EQ.
"memory_save")
then
7608 size_variables_root(i2)=size_logical
7609 elseif(trim(mode).EQ.
"save")
then
7610 write(unit,iostat=err) id%root%yes
7617 & id%COMM, id%MYID )
7618 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7619 elseif(trim(mode).EQ.
"restore")
then
7620 size_variables_root(i2)=size_logical
7621 read(unit,iostat=err) id%root%yes
7628 & id%COMM, id%MYID )
7629 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7631 CASE(
"gridinit_done")
7632 nbrecords_root(i2)=1
7633 if(trim(mode).EQ.
"memory_save")
then
7634 size_variables_root(i2)=size_logical
7635 elseif(trim(mode).EQ.
"save")
then
7636 write(unit,iostat=err) id%root%gridinit_done
7643 & id%COMM, id%MYID )
7644 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7645 elseif(trim(mode).EQ.
"restore")
then
7646 size_variables_root(i2)=size_logical
7647 read(unit,iostat=err) id%root%gridinit_done
7654 & id%COMM, id%MYID )
7655 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7659 CASE(
"SINGULAR_VALUES")
7660 CASE(
"NB_SINGULAR_VALUES")
7661 nbrecords_root(i2)=1
7662 if(trim(mode).EQ.
"memory_save")
then
7663 size_variables_root(i2)=size_int
7664 elseif(trim(mode).EQ.
"save")
then
7665 write(unit,iostat=err) id%root%NB_SINGULAR_VALUES
7672 & id%COMM, id%MYID )
7673 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7674 elseif(trim(mode).EQ.
"restore")
then
7675 size_variables_root(i2)=size_int
7676 read(unit,iostat=err) id%root%NB_SINGULAR_VALUES
7683 & id%COMM, id%MYID )
7684 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7686 CASE(
"rootpad0",
"rootpad1",
"rootpad2",
"rootpad",
7687 &
"rootpad3",
"rootpad4")
7690 if(trim(mode).EQ.
"memory_save")
then
7691 nbsubrecords=int(size_variables_root(i2)/huge(i4))
7692 IF(nbsubrecords.GT.0)
then
7693 nbrecords_root(i2)=nbrecords_root(i2)+nbsubrecords
7695 elseif(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"fake_restore")
then
7716 if(trim(mode).EQ.
"memory_save")
then
7717 size_variables(i1)=size_int
7718 elseif(trim(mode).EQ.
"save")
then
7719 write(unit,iostat=err) id%NBGRP
7726 & id%COMM, id%MYID )
7727 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7728 elseif(trim(mode).EQ.
"restore")
then
7729 size_variables(i1)=size_int
7730 read(unit,iostat=err) id%NBGRP
7737 & id%COMM, id%MYID )
7738 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7742 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
7751 IF(
associated(id%LRGROUPS))
THEN
7752 write(unit,iostat=err)
size(id%LRGROUPS,1)
7759 & id%COMM, id%MYID )
7760 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7761 write(unit,iostat=err) id%LRGROUPS
7763 write(unit,iostat=err) -999
7770 & id%COMM, id%MYID )
7771 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7772 write(unit,iostat=err) -999
7780 & id%COMM, id%MYID )
7781 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7782 elseif(trim(mode).EQ.
"restore")
then
7783 nullify(id%LRGROUPS)
7784 read(unit,iostat=err) size_array1
7791 & id%COMM, id%MYID )
7792 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7793 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
7804 & total_struc_size-size_allocated
7807 read(unit,iostat=err) id%LRGROUPS
7810 & id%COMM, id%MYID )
7811 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7818 & id%COMM, id%MYID )
7819 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7821 CASE(
"FDM_F_ENCODING")
7823 size_gest(i1)=size_int
7824 size_variables(i1)=0_8
7825 if(trim(mode).EQ.
"memory_save")
then
7826 IF(
associated(id%FDM_F_ENCODING))
THEN
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 elseif(trim(mode).EQ.
"save")
then
7835 IF(
associated(id%FDM_F_ENCODING))
THEN
7836 write(unit,iostat=err)
size(id%FDM_F_ENCODING,1)
7843 & id%COMM, id%MYID )
7844 IF ( id%INFO(1) .LT. 0 )
GOTO 100
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
7859 & id%COMM, id%MYID )
7860 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7868 & id%COMM, id%MYID )
7869 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7870 elseif(trim(mode).EQ.
"restore")
then
7871 nullify(id%FDM_F_ENCODING)
7872 read(unit,iostat=err) size_array1
7879 & id%COMM, id%MYID )
7880 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7881 if(size_array1.NE.-999)
then
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
7890 & id%COMM, id%MYID )
7891 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7898 & id%COMM, id%MYID )
7899 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7901 CASE(
"BLRARRAY_ENCODING")
7903 size_gest(i1)=size_int
7904 size_variables(i1)=0_8
7905 if(trim(mode).EQ.
"memory_save")
then
7906 IF(
associated(id%BLRARRAY_ENCODING))
THEN
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 elseif(trim(mode).EQ.
"save")
then
7916 IF(
associated(id%BLRARRAY_ENCODING))
THEN
7917 write(unit,iostat=err)
size(id%BLRARRAY_ENCODING,1)
7924 & id%COMM, id%MYID )
7925 IF ( id%INFO(1) .LT. 0 )
GOTO 100
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
7941 & id%COMM, id%MYID )
7942 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7950 & id%COMM, id%MYID )
7951 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7952 elseif(trim(mode).EQ.
"restore")
then
7953 nullify(id%BLRARRAY_ENCODING)
7954 read(unit,iostat=err) size_array1
7961 & id%COMM, id%MYID )
7962 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7963 if(size_array1.NE.-999)
then
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
7973 & id%COMM, id%MYID )
7974 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7981 & id%COMM, id%MYID )
7982 IF ( id%INFO(1) .LT. 0 )
GOTO 100
7984 CASE(
"L0_OMP_FACTORS")
7987 size_variables(i1)=0_8
7988 CALL zmumps_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 if(trim(mode).EQ.
"memory_save")
then
7999 size_variables(i1)=size_int
8000 elseif(trim(mode).EQ.
"save")
then
8001 write(unit,iostat=err) id%LPOOL_A_L0_OMP
8008 & id%COMM, id%MYID )
8009 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8010 elseif(trim(mode).EQ.
"restore")
then
8011 size_variables(i1)=size_int
8012 read(unit,iostat=err) id%LPOOL_A_L0_OMP
8019 & id%COMM, id%MYID )
8020 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8022 CASE(
"LPOOL_B_L0_OMP")
8024 if(trim(mode).EQ.
"memory_save")
then
8025 size_variables(i1)=size_int
8026 elseif(trim(mode).EQ.
"save")
then
8027 write(unit,iostat=err) id%LPOOL_B_L0_OMP
8034 & id%COMM, id%MYID )
8035 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8036 elseif(trim(mode).EQ.
"restore")
then
8037 size_variables(i1)=size_int
8038 read(unit,iostat=err) id%LPOOL_B_L0_OMP
8045 & id%COMM, id%MYID )
8046 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8048 CASE(
"L_PHYS_L0_OMP")
8050 if(trim(mode).EQ.
"memory_save")
then
8051 size_variables(i1)=size_int
8052 elseif(trim(mode).EQ.
"save")
then
8053 write(unit,iostat=err) id%L_PHYS_L0_OMP
8060 & id%COMM, id%MYID )
8061 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8062 elseif(trim(mode).EQ.
"restore")
then
8063 size_variables(i1)=size_int
8064 read(unit,iostat=err) id%L_PHYS_L0_OMP
8071 & id%COMM, id%MYID )
8072 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8074 CASE(
"L_VIRT_L0_OMP")
8076 if(trim(mode).EQ.
"memory_save")
then
8077 size_variables(i1)=size_int
8078 elseif(trim(mode).EQ.
"save")
then
8079 write(unit,iostat=err) id%L_VIRT_L0_OMP
8086 & id%COMM, id%MYID )
8087 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8088 elseif(trim(mode).EQ.
"restore")
then
8089 size_variables(i1)=size_int
8090 read(unit,iostat=err) id%L_VIRT_L0_OMP
8097 & id%COMM, id%MYID )
8098 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8100 CASE(
"LL0_OMP_MAPPING")
8102 if(trim(mode).EQ.
"memory_save")
then
8103 size_variables(i1)=size_int
8104 elseif(trim(mode).EQ.
"save")
then
8105 write(unit,iostat=err) id%LL0_OMP_MAPPING
8112 & id%COMM, id%MYID )
8113 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8114 elseif(trim(mode).EQ.
"restore")
then
8115 size_variables(i1)=size_int
8116 read(unit,iostat=err) id%LL0_OMP_MAPPING
8123 & id%COMM, id%MYID )
8124 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8126 CASE(
"LL0_OMP_FACTORS")
8128 if(trim(mode).EQ.
"memory_save")
then
8129 size_variables(i1)=size_int
8130 elseif(trim(mode).EQ.
"save")
then
8131 write(unit,iostat=err) id%LL0_OMP_FACTORS
8138 & id%COMM, id%MYID )
8139 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8140 elseif(trim(mode).EQ.
"restore")
then
8141 size_variables(i1)=size_int
8142 read(unit,iostat=err) id%LL0_OMP_FACTORS
8149 & id%COMM, id%MYID )
8150 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8154 if(trim(mode).EQ.
"memory_save")
then
8155 size_variables(i1)=size_int8
8156 elseif(trim(mode).EQ.
"save")
then
8157 write(unit,iostat=err) id%THREAD_LA
8164 & id%COMM, id%MYID )
8165 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8166 elseif(trim(mode).EQ.
"restore")
then
8167 size_variables(i1)=size_int8
8168 read(unit,iostat=err) id%THREAD_LA
8175 & id%COMM, id%MYID )
8176 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8178 CASE(
"IPOOL_A_L0_OMP")
8180 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
8190 IF(
associated(id%IPOOL_A_L0_OMP))
THEN
8191 write(unit,iostat=err)
size(id%IPOOL_A_L0_OMP,1)
8198 & id%COMM, id%MYID )
8199 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8200 write(unit,iostat=err) id%IPOOL_A_L0_OMP
8202 write(unit,iostat=err) -999
8209 & id%COMM, id%MYID )
8210 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8211 write(unit,iostat=err) -999
8219 & id%COMM, id%MYID )
8220 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8221 elseif(trim(mode).EQ.
"restore")
then
8222 nullify(id%IPOOL_A_L0_OMP)
8223 read(unit,iostat=err) size_array1
8230 & id%COMM, id%MYID )
8231 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8232 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
8244 & total_struc_size-size_allocated
8247 read(unit,iostat=err) id%IPOOL_A_L0_OMP
8250 & id%COMM, id%MYID )
8251 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8258 & id%COMM, id%MYID )
8259 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8261 CASE(
"IPOOL_B_L0_OMP")
8263 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
8273 IF(
associated(id%IPOOL_B_L0_OMP))
THEN
8274 write(unit,iostat=err)
size(id%IPOOL_B_L0_OMP,1)
8281 & id%COMM, id%MYID )
8282 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8283 write(unit,iostat=err) id%IPOOL_B_L0_OMP
8285 write(unit,iostat=err) -999
8292 & id%COMM, id%MYID )
8293 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8294 write(unit,iostat=err) -999
8302 & id%COMM, id%MYID )
8303 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8304 elseif(trim(mode).EQ.
"restore")
then
8305 nullify(id%IPOOL_B_L0_OMP)
8306 read(unit,iostat=err) size_array1
8313 & id%COMM, id%MYID )
8314 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8315 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
8327 & total_struc_size-size_allocated
8330 read(unit,iostat=err) id%IPOOL_B_L0_OMP
8333 & id%COMM, id%MYID )
8334 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8341 & id%COMM, id%MYID )
8342 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8346 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
8356 IF(
associated(id%PHYS_L0_OMP))
THEN
8357 write(unit,iostat=err)
size(id%PHYS_L0_OMP,1)
8364 & id%COMM, id%MYID )
8365 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8366 write(unit,iostat=err) id%PHYS_L0_OMP
8368 write(unit,iostat=err) -999
8375 & id%COMM, id%MYID )
8376 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8377 write(unit,iostat=err) -999
8385 & id%COMM, id%MYID )
8386 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8387 elseif(trim(mode).EQ.
"restore")
then
8388 nullify(id%PHYS_L0_OMP)
8389 read(unit,iostat=err) size_array1
8396 & id%COMM, id%MYID )
8397 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8398 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
8409 & total_struc_size-size_allocated
8412 read(unit,iostat=err) id%PHYS_L0_OMP
8415 & id%COMM, id%MYID )
8416 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8423 & id%COMM, id%MYID )
8424 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8428 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
8437 IF(
associated(id%VIRT_L0_OMP))
THEN
8438 write(unit,iostat=err)
size(id%VIRT_L0_OMP,1)
8445 & id%COMM, id%MYID )
8446 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8447 write(unit,iostat=err) id%VIRT_L0_OMP
8449 write(unit,iostat=err) -999
8456 & id%COMM, id%MYID )
8457 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8458 write(unit,iostat=err) -999
8466 & id%COMM, id%MYID )
8467 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8468 elseif(trim(mode).EQ.
"restore")
then
8469 nullify(id%VIRT_L0_OMP)
8470 read(unit,iostat=err) size_array1
8477 & id%COMM, id%MYID )
8478 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8479 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
8490 & total_struc_size-size_allocated
8493 read(unit,iostat=err) id%VIRT_L0_OMP
8496 & id%COMM, id%MYID )
8497 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8504 & id%COMM, id%MYID )
8505 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8507 CASE(
"VIRT_L0_OMP_MAPPING")
8509 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
8519 IF(
associated(id%VIRT_L0_OMP_MAPPING))
THEN
8520 write(unit,iostat=err)
size(id%VIRT_L0_OMP_MAPPING,1)
8527 & id%COMM, id%MYID )
8528 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8529 write(unit,iostat=err) id%VIRT_L0_OMP_MAPPING
8531 write(unit,iostat=err) -999
8538 & id%COMM, id%MYID )
8539 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8540 write(unit,iostat=err) -999
8548 & id%COMM, id%MYID )
8549 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8550 elseif(trim(mode).EQ.
"restore")
then
8551 nullify(id%VIRT_L0_OMP_MAPPING)
8552 read(unit,iostat=err) size_array1
8559 & id%COMM, id%MYID )
8560 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8561 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
8573 & total_struc_size-size_allocated
8576 read(unit,iostat=err) id%VIRT_L0_OMP_MAPPING
8579 & id%COMM, id%MYID )
8580 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8587 & id%COMM, id%MYID )
8588 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8592 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
8601 IF(
associated(id%PERM_L0_OMP))
THEN
8602 write(unit,iostat=err)
size(id%PERM_L0_OMP,1)
8609 & id%COMM, id%MYID )
8610 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8611 write(unit,iostat=err) id%PERM_L0_OMP
8613 write(unit,iostat=err) -999
8620 & id%COMM, id%MYID )
8621 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8622 write(unit,iostat=err) -999
8630 & id%COMM, id%MYID )
8631 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8632 elseif(trim(mode).EQ.
"restore")
then
8633 nullify(id%PERM_L0_OMP)
8634 read(unit,iostat=err) size_array1
8641 & id%COMM, id%MYID )
8642 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8643 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
8654 & total_struc_size-size_allocated
8657 read(unit,iostat=err) id%PERM_L0_OMP
8660 & id%COMM, id%MYID )
8661 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8668 & id%COMM, id%MYID )
8669 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8671 CASE(
"PTR_LEAFS_L0_OMP")
8673 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
8683 IF(
associated(id%PTR_LEAFS_L0_OMP))
THEN
8684 write(unit,iostat=err)
size(id%PTR_LEAFS_L0_OMP,1)
8691 & id%COMM, id%MYID )
8692 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8693 write(unit,iostat=err) id%PTR_LEAFS_L0_OMP
8695 write(unit,iostat=err) -999
8702 & id%COMM, id%MYID )
8703 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8704 write(unit,iostat=err) -999
8712 & id%COMM, id%MYID )
8713 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8714 elseif(trim(mode).EQ.
"restore")
then
8715 nullify(id%PTR_LEAFS_L0_OMP)
8716 read(unit,iostat=err) size_array1
8723 & id%COMM, id%MYID )
8724 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8725 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
8737 & total_struc_size-size_allocated
8740 read(unit,iostat=err) id%PTR_LEAFS_L0_OMP
8743 & id%COMM, id%MYID )
8744 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8751 & id%COMM, id%MYID )
8752 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8754 CASE(
"L0_OMP_MAPPING")
8756 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
8766 IF(
associated(id%L0_OMP_MAPPING))
THEN
8767 write(unit,iostat=err)
size(id%L0_OMP_MAPPING,1)
8774 & id%COMM, id%MYID )
8775 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8776 write(unit,iostat=err) id%L0_OMP_MAPPING
8778 write(unit,iostat=err) -999
8785 & id%COMM, id%MYID )
8786 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8787 write(unit,iostat=err) -999
8795 & id%COMM, id%MYID )
8796 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8797 elseif(trim(mode).EQ.
"restore")
then
8798 nullify(id%L0_OMP_MAPPING)
8799 read(unit,iostat=err) size_array1
8806 & id%COMM, id%MYID )
8807 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8808 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
8819 & total_struc_size-size_allocated
8822 read(unit,iostat=err) id%L0_OMP_MAPPING
8825 & id%COMM, id%MYID )
8826 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8833 & id%COMM, id%MYID )
8834 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8836 CASE(
"SINGULAR_VALUES")
8837 CASE(
"NB_SINGULAR_VALUES")
8839 if(trim(mode).EQ.
"memory_save")
then
8840 size_variables(i1)=size_int
8841 elseif(trim(mode).EQ.
"save")
then
8842 write(unit,iostat=err) id%NB_SINGULAR_VALUES
8849 & id%COMM, id%MYID )
8850 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8851 elseif(trim(mode).EQ.
"restore")
then
8852 size_variables(i1)=size_int
8853 read(unit,iostat=err) id%NB_SINGULAR_VALUES
8860 & id%COMM, id%MYID )
8861 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8863 CASE(
"ASSOCIATED_OOC_FILES")
8864 if(trim(mode).EQ.
"memory_save")
then
8865 diff_size_alloc_read(i1)=size_logical
8866 elseif(trim(mode).EQ.
"save")
then
8867 diff_size_alloc_read(i1)=size_logical
8868 elseif(trim(mode).EQ.
"restore")
then
8869 diff_size_alloc_read(i1)=size_logical
8873 if(trim(mode).EQ.
"memory_save")
then
8874 size_variables(i1)=len(id%SAVE_DIR)*size_character
8875 elseif(trim(mode).EQ.
"save")
then
8876 write(unit,iostat=err) id%SAVE_DIR
8883 & id%COMM, id%MYID )
8884 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8885 elseif(trim(mode).EQ.
"restore")
then
8886 size_variables(i1)=len(id%SAVE_DIR)*size_character
8887 read(unit,iostat=err) id%SAVE_DIR
8894 & id%COMM, id%MYID )
8895 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8899 if(trim(mode).EQ.
"memory_save")
then
8900 size_variables(i1)=len(id%SAVE_PREFIX)*size_character
8901 elseif(trim(mode).EQ.
"save")
then
8902 write(unit,iostat=err) id%SAVE_PREFIX
8909 & id%COMM, id%MYID )
8910 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8911 elseif(trim(mode).EQ.
"restore")
then
8912 size_variables(i1)=len(id%SAVE_PREFIX)*size_character
8913 read(unit,iostat=err) id%SAVE_PREFIX
8920 & id%COMM, id%MYID )
8921 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8923 CASE(
"MPITOOMP_PROCS_MAP")
8925 if(trim(mode).EQ.
"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 elseif(trim(mode).EQ.
"save")
then
8935 IF(
associated(id%MPITOOMP_PROCS_MAP))
THEN
8936 write(unit,iostat=err)
size(id%MPITOOMP_PROCS_MAP,1)
8943 & id%COMM, id%MYID )
8944 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8945 write(unit,iostat=err) id%MPITOOMP_PROCS_MAP
8947 write(unit,iostat=err) -999
8954 & id%COMM, id%MYID )
8955 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8956 write(unit,iostat=err) -999
8964 & id%COMM, id%MYID )
8965 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8966 elseif(trim(mode).EQ.
"restore")
then
8967 nullify(id%MPITOOMP_PROCS_MAP)
8968 read(unit,iostat=err) size_array1
8975 & id%COMM, id%MYID )
8976 IF ( id%INFO(1) .LT. 0 )
GOTO 100
8977 if(size_array1.EQ.-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 if (allocok .GT. 0)
THEN
8989 & total_struc_size-size_allocated
8992 read(unit,iostat=err) id%MPITOOMP_PROCS_MAP
8995 & id%COMM, id%MYID )
8996 IF ( id%INFO(1) .LT. 0 )
GOTO 100
9003 & id%COMM, id%MYID )
9004 IF ( id%INFO(1) .LT. 0 )
GOTO 100
9006 CASE(
"METIS_OPTIONS")
9008 if(trim(mode).EQ.
"memory_save")
then
9009 size_variables(i1)=size_int*
size(id%METIS_OPTIONS,1)
9010 elseif(trim(mode).EQ.
"save")
then
9011 write(unit,iostat=err) id%METIS_OPTIONS
9018 & id%COMM, id%MYID )
9019 IF ( id%INFO(1) .LT. 0 )
GOTO 100
9020 elseif(trim(mode).EQ.
"restore")
then
9021 size_variables(i1)=size_int*
size(id%METIS_OPTIONS,1)
9022 read(unit,iostat=err) id%METIS_OPTIONS
9029 & id%COMM, id%MYID )
9030 IF ( id%INFO(1) .LT. 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,kind=8)
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)