654 IMPLICIT NONE
655 include 'mpif.h'
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
697 INTEGER(4) :: I4
698 TYPE (DMUMPS_STRUC) :: id
699 allocate(variables(nbvariables), stat=allocok)
700 if (allocok .GT. 0) THEN
702 id%INFO(2) = nbvariables
703 endif
706 IF (
id%INFO(1) .LT. 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"
787 variables(106)="S"
788 variables(105)="PTRFAC"
789 variables(104)="PTLUST_S"
790 variables(103)="Step2node"
791 variables(102)="PROCNODE_STEPS"
792 variables(101)="NA"
793 variables(100)="PTRAR"
794 variables(99)="FRTELT"
795 variables(98)="FRTPTR"
796 variables(97)="FILS"
797 variables(96)="DAD_STEPS"
798 variables(95)="FRERE_STEPS"
799 variables(94)="ND_STEPS"
800 variables(93)="NE_STEPS"
801 variables(92)="STEP"
802 variables(91)="NBSA"
803 variables(90)="LNA"
804 variables(89)="KEEP"
805 variables(88)="IS"
806 variables(87)="ASS_IRECV"
807 variables(86)="NSLAVES"
808 variables(85)="NPROCS"
809 variables(84)="MYID"
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"
816 variables(77)="pad7"
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"
840 variables(53)="CNTL"
841 variables(52)="COST_SUBTREES"
842 variables(51)="INFOG"
843 variables(50)="INFO"
844 variables(49)="ICNTL"
845 variables(48)="pad6"
846 variables(47)="LSOL_loc"
847 variables(46)="LREDRHS"
848 variables(45)="LRHS_loc"
849 variables(44)="Nloc_RHS"
850 variables(43)="NZ_RHS"
851 variables(42)="NRHS"
852 variables(41)="LRHS"
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"
861 variables(32)="RHS"
862 variables(31)="BLKVAR"
863 variables(30)="BLKPTR"
864 variables(29)="pad5"
865 variables(28)="NBLK"
866 variables(27)="PERM_IN"
867 variables(26)="pad4"
868 variables(25)="A_ELT"
869 variables(24)="ELTVAR"
870 variables(23)="ELTPTR"
871 variables(22)="pad3"
872 variables(21)="NELT"
873 variables(20)="pad2"
874 variables(19)="A_loc"
875 variables(18)="JCN_loc"
876 variables(17)="IRN_loc"
877 variables(16)="NNZ_loc"
878 variables(15)="pad1"
879 variables(14)="NZ_loc"
880 variables(13)="pad0"
881 variables(12)="ROWSCA"
882 variables(11)="COLSCA"
883 variables(10)="JCN"
884 variables(9)="IRN"
885 variables(8)="A"
886 variables(7)="NNZ"
887 variables(6)="NZ"
888 variables(5)="N"
889 variables(4)="JOB"
890 variables(3)="PAR"
891 variables(2)="SYM"
892 variables(1)="COMM"
893 allocate(variables_root(nbvariables_root), stat=allocok)
894 if (allocok .GT. 0) THEN
896 id%INFO(2) = nbvariables_root
897 endif
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)
938 size_int8 =
id%KEEP(34)*
id%KEEP(10)
939 size_rl_or_dbl =
id%KEEP(16)
940 size_arith_dep =
id%KEEP(35)
941 size_double_precision = 8
942 size_logical = 4
943 size_character = 1
944 size_written=int(0,kind=8)
945 tot_nbrecords=0
946 nbrecords(:)=0
947 nbrecords_root(:)=0
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)
953 tmp_ooc_names(:)="?"
954 size_variables_blr=0_8
955 size_gest_blr=0
956 size_variables_front_data=0_8
957 size_gest_front_data=0
958 size_variables_l0fac=0
959 size_gest_l0fac=0
960 if(trim(mode).EQ."memory_save") then
961 elseif(trim(mode).EQ."save") then
962 write(unit,iostat=err) "MUMPS"
963 if(err.ne.0) THEN
967 endif
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)
975#endif
976 IF(
id%MYID.EQ.0)
THEN
977 call date_and_time(date,time,zone,values)
978 hash=trim(date)//trim(time)//trim(zone)
979 ENDIF
980 CALL mpi_bcast( hash, 23, mpi_character, 0,
id%COMM, ierr )
981 write(unit,iostat=err) hash
982 if(err.ne.0) THEN
986 endif
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)
994#endif
995 write(unit,iostat=err) total_file_size,total_struc_size
996 if(err.ne.0) THEN
1000 endif
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)
1008#endif
1009 arith="DMUMPS"(1:1)
1010 write(unit,iostat=err) arith
1011 if(err.ne.0) THEN
1015 endif
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)
1023#endif
1024 write(unit,iostat=err)
id%SYM,
id%PAR,
id%NPROCS
1025 if(err.ne.0) THEN
1029 endif
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)
1037#endif
1038 IF(
id%KEEP(10).EQ.1)
THEN
1039 int_type_64=.true.
1040 ELSE
1041 int_type_64=.false.
1042 ENDIF
1043 write(unit,iostat=err) int_type_64
1044 if(err.ne.0) THEN
1048 endif
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)
1056#endif
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)
1060 if(err.ne.0) THEN
1064 endif
1066 &
id%COMM,
id%MYID )
1067 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1068 size_written=size_written+int(size_int,kind=8)
1069#if !defined(MUMPS_F2003)
1070 size_written=size_written
1071 & +int(2*
id%KEEP(34)*1,kind=8)
1072#endif
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))
1077 if(err.ne.0) THEN
1081 endif
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)
1090#endif
1091 ELSE
1092 write(unit,iostat=err) -999
1093 if(err.ne.0) THEN
1097 endif
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)
1105#endif
1106 write(unit,iostat=err) -999
1107 if(err.ne.0) THEN
1111 endif
1113 &
id%COMM,
id%MYID )
1114 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1115 size_written=size_written+int(size_int,kind=8)
1116#if !defined(MUMPS_F2003)
1117 size_written=size_written
1118 & +int(2*
id%KEEP(34)*1,kind=8)
1119#endif
1120 ENDIF
1121 elseif((trim(mode).EQ."restore").OR.
1122 & (trim(mode).EQ."restore_ooc")) then
1123 CALL mumps_read_header(unit,err,size_read,size_int,size_int8,
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)
1128 if (err.ne.0) THEN
1132 elseif (.NOT.fortran_version_ok) THEN
1135 endif
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.
1142 ENDIF
1143 CALL dmumps_check_header(
id,basic_check,read_int_type_64,
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
1153 GOTO 200
1154 else
1156 endif
1157 DO j=1,size(ooc_indices)
1158 i1=ooc_indices(j)
1159 tmp_string1 = variables(i1)
1160 SELECT CASE(tmp_string1)
1161 CASE("OOC_NB_FILES")
1162 nbrecords(i1)=2
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
1167 ELSE
1168 size_gest(i1)=size_int*2
1169 size_variables(i1)=0_8
1170 ENDIF
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)
1174 if(err.ne.0) then
1178 endif
1180 &
id%COMM,
id%MYID )
1181 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1182 write(unit,iostat=err)
id%OOC_NB_FILES
1183 ELSE
1184 write(unit,iostat=err) -999
1185 if(err.ne.0) then
1189 endif
1191 &
id%COMM,
id%MYID )
1192 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1193 write(unit,iostat=err) -999
1194 ENDIF
1195 if(err.ne.0) then
1199 endif
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
1207 if(err.ne.0) THEN
1211 endif
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
1219 else
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
1228 endif
1229 read(unit,iostat=err)
id%OOC_NB_FILES
1230 endif
1232 &
id%COMM,
id%MYID )
1233 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1234 if(err.ne.0) THEN
1238 endif
1240 &
id%COMM,
id%MYID )
1241 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1242 endif
1243 CASE("OOC_NB_FILE_TYPE")
1244 nbrecords(i1)=1
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
1249 if(err.ne.0) then
1253 endif
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
1261 if(err.ne.0) THEN
1265 endif
1267 &
id%COMM,
id%MYID )
1268 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1269 endif
1270 CASE("OOC_FILE_NAMES")
1271 nbrecords(i1)=2
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
1277 ELSE
1278 size_gest(i1)=size_int*3
1279 size_variables(i1)=0_8
1280 ENDIF
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)
1285 if(err.ne.0) then
1289 endif
1291 &
id%COMM,
id%MYID )
1292 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1293 write(unit,iostat=err)
id%OOC_FILE_NAMES
1294 ELSE
1295 write(unit,iostat=err) -999,-998
1296 if(err.ne.0) then
1300 endif
1302 &
id%COMM,
id%MYID )
1303 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1304 write(unit,iostat=err) -999
1305 ENDIF
1306 if(err.ne.0) then
1310 endif
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
1318 if(err.ne.0) THEN
1322 endif
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
1330 else
1331 size_gest(i1)=size_int*2
1332 size_variables(i1)=size_array1*size_array2
1333 & *size_character
1334 allocate(
id%OOC_FILE_NAMES(size_array1,size_array2),
1335 & stat=allocok)
1336 if (allocok .GT. 0) THEN
1339 & total_struc_size-size_allocated
1341 endif
1342 read(unit,iostat=err)
id%OOC_FILE_NAMES
1343 endif
1345 &
id%COMM,
id%MYID )
1346 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1347 if(err.ne.0) THEN
1351 endif
1353 &
id%COMM,
id%MYID )
1354 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1355 endif
1356 CASE("OOC_FILE_NAME_LENGTH")
1357 nbrecords(i1)=2
1358 if(trim(mode).EQ."memory_save") then
1359 IF(
associated(
id%OOC_FILE_NAME_LENGTH))
THEN
1360 size_gest(i1)=size_int
1361 size_variables(i1)=
1362 &
size(
id%OOC_FILE_NAME_LENGTH,1)*size_int
1363 ELSE
1364 size_gest(i1)=size_int*2
1365 size_variables(i1)=0_8
1366 ENDIF
1367 elseif(trim(mode).EQ."save") then
1368 IF(
associated(
id%OOC_FILE_NAME_LENGTH))
THEN
1369 write(unit,iostat=err)
size(
id%OOC_FILE_NAME_LENGTH,1)
1370 if(err.ne.0) then
1374 endif
1376 &
id%COMM,
id%MYID )
1377 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1378 write(unit,iostat=err)
id%OOC_FILE_NAME_LENGTH
1379 ELSE
1380 write(unit,iostat=err) -999
1381 if(err.ne.0) then
1385 endif
1387 &
id%COMM,
id%MYID )
1388 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1389 write(unit,iostat=err) -999
1390 ENDIF
1391 if(err.ne.0) then
1395 endif
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
1403 if(err.ne.0) THEN
1407 endif
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
1415 else
1416 size_gest(i1)=size_int
1417 size_variables(i1)=size_array1*size_int
1418 allocate(
id%OOC_FILE_NAME_LENGTH(size_array1),
1419 & stat=allocok)
1420 if (allocok .GT. 0) THEN
1423 & total_struc_size-size_allocated
1425 endif
1426 read(unit,iostat=err)
id%OOC_FILE_NAME_LENGTH
1427 endif
1429 &
id%COMM,
id%MYID )
1430 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1431 if(err.ne.0) THEN
1435 endif
1437 &
id%COMM,
id%MYID )
1438 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1439 endif
1440 CASE DEFAULT
1441 END SELECT
1442 ENDDO
1443 if(trim(mode).EQ."restore_ooc") then
1444 goto 200
1445 endif
1446 DO i1=1,nbvariables
1447 tmp_string1 = variables(i1)
1448 SELECT CASE(tmp_string1)
1449 CASE("COMM")
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
1456 endif
1457 CASE("SYM")
1458 nbrecords(i1)=1
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
1463 if(err.ne.0) then
1467 endif
1469 &
id%COMM,
id%MYID )
1470 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1471 elseif(trim(mode).EQ."restore") then
1472 size_variables(i1)=size_int
1473 read(unit,iostat=err)
id%SYM
1474 if(err.ne.0) THEN
1478 endif
1480 &
id%COMM,
id%MYID )
1481 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1482 endif
1483 CASE("PAR")
1484 nbrecords(i1)=1
1485 if(trim(mode).EQ."memory_save") then
1486 size_variables(i1)=size_int
1487 elseif(trim(mode).EQ."save") then
1488 write(unit,iostat=err)
id%PAR
1489 if(err.ne.0) then
1493 endif
1495 &
id%COMM,
id%MYID )
1496 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1497 elseif(trim(mode).EQ."restore") then
1498 size_variables(i1)=size_int
1499 read(unit,iostat=err)
id%PAR
1500 if(err.ne.0) THEN
1504 endif
1506 &
id%COMM,
id%MYID )
1507 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1508 endif
1509 CASE("JOB")
1510 if(trim(mode).EQ."memory_save") then
1511 diff_size_alloc_read(i1)=size_int
1512 elseif(trim(mode).EQ."save") then
1513 diff_size_alloc_read(i1)=size_int
1514 elseif(trim(mode).EQ."restore") then
1515 diff_size_alloc_read(i1)=size_int
1516 endif
1517 CASE("N")
1518 nbrecords(i1)=1
1519 if(trim(mode).EQ."memory_save") then
1520 size_variables(i1)=size_int
1521 elseif(trim(mode).EQ."save") then
1522 write(unit,iostat=err)
id%N
1523 if(err.ne.0) then
1527 endif
1529 &
id%COMM,
id%MYID )
1530 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1531 elseif(trim(mode).EQ."restore") then
1532 size_variables(i1)=size_int
1533 read(unit,iostat=err)
id%N
1534 if(err.ne.0) THEN
1538 endif
1540 &
id%COMM,
id%MYID )
1541 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1542 endif
1543 CASE("ICNTL")
1544 nbrecords(i1)=1
1545 if(trim(mode).EQ."memory_save") then
1546 size_variables(i1)=size_int*
size(
id%ICNTL,1)
1547 elseif(trim(mode).EQ."save") then
1548 write(unit,iostat=err)
id%ICNTL
1549 if(err.ne.0) then
1553 endif
1555 &
id%COMM,
id%MYID )
1556 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1557 elseif(trim(mode).EQ."restore") then
1558 size_variables(i1)=size_int*
size(
id%ICNTL,1)
1559 read(unit,iostat=err)
id%ICNTL
1560 if(err.ne.0) THEN
1564 endif
1566 &
id%COMM,
id%MYID )
1567 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1568 endif
1569 CASE("INFO")
1570 nbrecords(i1)=1
1571 if(trim(mode).EQ."memory_save") then
1572 size_variables(i1)=size_int*
size(
id%INFO,1)
1573 elseif(trim(mode).EQ."save") then
1574 write(unit,iostat=err) info1,info2
1575 & ,
id%INFO(3:
size(
id%INFO,1))
1576 if(err.ne.0) then
1580 endif
1582 &
id%COMM,
id%MYID )
1583 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1584 elseif(trim(mode).EQ."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))
1588 if(err.ne.0) THEN
1592 endif
1594 &
id%COMM,
id%MYID )
1595 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1596 endif
1597 CASE("INFOG")
1598 nbrecords(i1)=1
1599 if(trim(mode).EQ."memory_save") then
1600 size_variables(i1)=size_int*
size(
id%INFOG,1)
1601 elseif(trim(mode).EQ."save") then
1602 write(unit,iostat=err) infog1,infog2
1603 & ,
id%INFOG(3:
size(
id%INFOG,1))
1604 if(err.ne.0) then
1608 endif
1610 &
id%COMM,
id%MYID )
1611 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1612 elseif(trim(mode).EQ."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))
1616 if(err.ne.0) THEN
1620 endif
1622 &
id%COMM,
id%MYID )
1623 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1624 endif
1625 CASE("COST_SUBTREES")
1626 nbrecords(i1)=1
1627 if(trim(mode).EQ."memory_save") then
1628 size_variables(i1)=size_rl_or_dbl
1629 elseif(trim(mode).EQ."save") then
1630 write(unit,iostat=err)
id%COST_SUBTREES
1631 if(err.ne.0) then
1635 endif
1637 &
id%COMM,
id%MYID )
1638 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1639 elseif(trim(mode).EQ."restore") then
1640 size_variables(i1)=size_rl_or_dbl
1641 read(unit,iostat=err)
id%COST_SUBTREES
1642 if(err.ne.0) THEN
1646 endif
1648 &
id%COMM,
id%MYID )
1649 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1650 endif
1651 CASE("CNTL")
1652 nbrecords(i1)=1
1653 if(trim(mode).EQ."memory_save") then
1654 size_variables(i1)=size_rl_or_dbl*
size(
id%CNTL,1)
1655 elseif(trim(mode).EQ."save") then
1656 write(unit,iostat=err)
id%CNTL
1657 if(err.ne.0) then
1661 endif
1663 &
id%COMM,
id%MYID )
1664 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1665 elseif(trim(mode).EQ."restore") then
1666 size_variables(i1)=size_rl_or_dbl*
size(
id%CNTL,1)
1667 read(unit,iostat=err)
id%CNTL
1668 if(err.ne.0) THEN
1672 endif
1674 &
id%COMM,
id%MYID )
1675 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1676 endif
1677 CASE("RINFO")
1678 nbrecords(i1)=1
1679 if(trim(mode).EQ."memory_save") then
1680 size_variables(i1)=size_rl_or_dbl*
size(
id%RINFO,1)
1681 elseif(trim(mode).EQ."save") then
1682 write(unit,iostat=err)
id%RINFO
1683 if(err.ne.0) then
1687 endif
1689 &
id%COMM,
id%MYID )
1690 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1691 elseif(trim(mode).EQ."restore") then
1692 size_variables(i1)=size_rl_or_dbl*
size(
id%RINFO,1)
1693 read(unit,iostat=err)
id%RINFO
1694 if(err.ne.0) THEN
1698 endif
1700 &
id%COMM,
id%MYID )
1701 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1702 endif
1703 CASE("RINFOG")
1704 nbrecords(i1)=1
1705 if(trim(mode).EQ."memory_save") then
1706 size_variables(i1)=size_rl_or_dbl*
size(
id%RINFOG,1)
1707 elseif(trim(mode).EQ."save") then
1708 write(unit,iostat=err)
id%RINFOG
1709 if(err.ne.0) then
1713 endif
1715 &
id%COMM,
id%MYID )
1716 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1717 elseif(trim(mode).EQ."restore") then
1718 size_variables(i1)=size_rl_or_dbl*
size(
id%RINFOG,1)
1719 read(unit,iostat=err)
id%RINFOG
1720 if(err.ne.0) THEN
1724 endif
1726 &
id%COMM,
id%MYID )
1727 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1728 endif
1729 CASE("KEEP8")
1730 nbrecords(i1)=1
1731 if(trim(mode).EQ."memory_save") then
1732 size_variables(i1)=size_int8*
size(
id%KEEP8,1)
1733 elseif(trim(mode).EQ."save") then
1734 write(unit,iostat=err)
id%KEEP8
1735 if(err.ne.0) then
1739 endif
1741 &
id%COMM,
id%MYID )
1742 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1743 elseif(trim(mode).EQ."restore") then
1744 size_variables(i1)=size_int8*
size(
id%KEEP8,1)
1745 read(unit,iostat=err)
id%KEEP8
1746 if(err.ne.0) THEN
1750 endif
1752 &
id%COMM,
id%MYID )
1753 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1754 endif
1755 CASE("KEEP")
1756 nbrecords(i1)=1
1757 if(trim(mode).EQ."memory_save") then
1758 size_variables(i1)=size_int*
size(
id%KEEP,1)
1759 elseif(trim(mode).EQ."save") then
1760 write(unit,iostat=err)
id%KEEP
1761 if(err.ne.0) then
1765 endif
1767 &
id%COMM,
id%MYID )
1768 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1769 elseif(trim(mode).EQ."restore") then
1770 size_variables(i1)=size_int*
size(
id%KEEP,1)
1771 keep411_save =
id%KEEP(411)
1772 read(unit,iostat=err)
id%KEEP
1773 id%KEEP(411) = keep411_save
1774 if(err.ne.0) THEN
1778 endif
1780 &
id%COMM,
id%MYID )
1781 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1782 endif
1783 CASE("DKEEP")
1784 nbrecords(i1)=1
1785 if(trim(mode).EQ."memory_save") then
1786 size_variables(i1)=size_rl_or_dbl*
size(
id%DKEEP,1)
1787 elseif(trim(mode).EQ."save") then
1788 write(unit,iostat=err)
id%DKEEP
1789 if(err.ne.0) then
1793 endif
1795 &
id%COMM,
id%MYID )
1796 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1797 elseif(trim(mode).EQ."restore") then
1798 size_variables(i1)=size_rl_or_dbl*
size(
id%DKEEP,1)
1799 read(unit,iostat=err)
id%DKEEP
1800 if(err.ne.0) THEN
1804 endif
1806 &
id%COMM,
id%MYID )
1807 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1808 endif
1809 CASE("NZ")
1810 nbrecords(i1)=1
1811 if(trim(mode).EQ."memory_save") then
1812 size_variables(i1)=size_int
1813 elseif(trim(mode).EQ."save") then
1814 write(unit,iostat=err)
id%NZ
1815 if(err.ne.0) then
1819 endif
1821 &
id%COMM,
id%MYID )
1822 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1823 elseif(trim(mode).EQ."restore") then
1824 size_variables(i1)=size_int
1825 read(unit,iostat=err)
id%NZ
1826 if(err.ne.0) THEN
1830 endif
1832 &
id%COMM,
id%MYID )
1833 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1834 endif
1835 CASE("NNZ")
1836 nbrecords(i1)=1
1837 if(trim(mode).EQ."memory_save") then
1838 size_variables(i1)=size_int8
1839 elseif(trim(mode).EQ."save") then
1840 write(unit,iostat=err)
id%NNZ
1841 if(err.ne.0) then
1845 endif
1847 &
id%COMM,
id%MYID )
1848 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1849 elseif(trim(mode).EQ."restore") then
1850 size_variables(i1)=size_int8
1851 read(unit,iostat=err)
id%NNZ
1852 if(err.ne.0) THEN
1856 endif
1858 &
id%COMM,
id%MYID )
1859 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1860 endif
1861 CASE("A")
1862 CASE("IRN")
1863 CASE("JCN")
1864 CASE("COLSCA")
1865 IF(
id%KEEP(52).NE.-1)
THEN
1866 nbrecords(i1)=2
1867 if(trim(mode).EQ."memory_save") then
1868 IF(
associated(
id%COLSCA))
THEN
1869 size_gest(i1)=size_int
1870 size_variables(i1)=
size(
id%COLSCA,1)*size_rl_or_dbl
1871 ELSE
1872 size_gest(i1)=size_int*2
1873 size_variables(i1)=0_8
1874 ENDIF
1875 elseif(trim(mode).EQ."save") then
1876 IF(
associated(
id%COLSCA))
THEN
1877 write(unit,iostat=err)
size(
id%COLSCA,1)
1878 if(err.ne.0) then
1881 & total_file_size-size_written,
1883 endif
1884 write(unit,iostat=err)
id%COLSCA
1885 ELSE
1886 write(unit,iostat=err) -999
1887 if(err.ne.0) then
1890 & total_file_size-size_written,
1892 endif
1893 write(unit,iostat=err) -999
1894 ENDIF
1895 if(err.ne.0) then
1899 endif
1901 &
id%COMM,
id%MYID )
1902 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1903 elseif(trim(mode).EQ."restore") then
1905 read(unit,iostat=err) size_array1
1906 if(err.ne.0) THEN
1910 endif
1912 &
id%COMM,
id%MYID )
1913 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1914 if(size_array1.EQ.-999) then
1915 size_gest(i1)=size_int*2
1916 size_variables(i1)=0_8
1917 read(unit,iostat=err) dummy
1918 else
1919 size_gest(i1)=size_int
1920 size_variables(i1)=size_array1*size_rl_or_dbl
1921 allocate(
id%COLSCA(size_array1), stat=allocok)
1922 if (allocok .GT. 0) THEN
1925 & total_struc_size-size_allocated
1927 endif
1928 read(unit,iostat=err)
id%COLSCA
1929 endif
1931 &
id%COMM,
id%MYID )
1932 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1933 if(err.ne.0) THEN
1937 endif
1939 &
id%COMM,
id%MYID )
1940 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1941 endif
1942 ELSE
1943 ENDIF
1944 CASE("ROWSCA")
1945 IF(
id%KEEP(52).NE.-1)
THEN
1946 nbrecords(i1)=2
1947 if(trim(mode).EQ."memory_save") then
1948 IF(
associated(
id%ROWSCA))
THEN
1949 size_gest(i1)=size_int
1950 size_variables(i1)=
size(
id%ROWSCA,1)*size_rl_or_dbl
1951 ELSE
1952 size_gest(i1)=size_int*2
1953 size_variables(i1)=0_8
1954 ENDIF
1955 elseif(trim(mode).EQ."save") then
1956 IF(
associated(
id%ROWSCA))
THEN
1957 write(unit,iostat=err)
size(
id%ROWSCA,1)
1958 if(err.ne.0) then
1961 & total_file_size-size_written,
1963 endif
1964 write(unit,iostat=err)
id%ROWSCA
1965 ELSE
1966 write(unit,iostat=err) -999
1967 if(err.ne.0) then
1970 & total_file_size-size_written,
1972 endif
1973 write(unit,iostat=err) -999
1974 ENDIF
1975 if(err.ne.0) then
1979 endif
1981 &
id%COMM,
id%MYID )
1982 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1983 elseif(trim(mode).EQ."restore") then
1985 read(unit,iostat=err) size_array1
1986 if(err.ne.0) THEN
1990 endif
1992 &
id%COMM,
id%MYID )
1993 IF (
id%INFO(1) .LT. 0 )
GOTO 100
1994 if(size_array1.EQ.-999) then
1995 size_gest(i1)=size_int*2
1996 size_variables(i1)=0_8
1997 read(unit,iostat=err) dummy
1998 else
1999 size_gest(i1)=size_int
2000 size_variables(i1)=size_array1*size_rl_or_dbl
2001 allocate(
id%ROWSCA(size_array1), stat=allocok)
2002 if (allocok .GT. 0) THEN
2005 & total_struc_size-size_allocated
2007 endif
2008 read(unit,iostat=err)
id%ROWSCA
2009 endif
2011 &
id%COMM,
id%MYID )
2012 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2013 if(err.ne.0) THEN
2017 endif
2019 &
id%COMM,
id%MYID )
2020 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2021 endif
2022 ELSE
2023 ENDIF
2024 CASE("NZ_loc")
2025 nbrecords(i1)=1
2026 if(trim(mode).EQ."memory_save") then
2027 size_variables(i1)=size_int
2028 elseif(trim(mode).EQ."save") then
2029 write(unit,iostat=err)
id%NZ_loc
2030 if(err.ne.0) then
2034 endif
2036 &
id%COMM,
id%MYID )
2037 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2038 elseif(trim(mode).EQ."restore") then
2039 size_variables(i1)=size_int
2040 read(unit,iostat=err)
id%NZ_loc
2041 if(err.ne.0) THEN
2045 endif
2047 &
id%COMM,
id%MYID )
2048 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2049 endif
2050 CASE("NNZ_loc")
2051 nbrecords(i1)=1
2052 if(trim(mode).EQ."memory_save") then
2053 size_variables(i1)=size_int8
2054 elseif(trim(mode).EQ."save") then
2055 write(unit,iostat=err)
id%NNZ_loc
2056 if(err.ne.0) then
2060 endif
2062 &
id%COMM,
id%MYID )
2063 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2064 elseif(trim(mode).EQ."restore") then
2065 size_variables(i1)=size_int8
2066 read(unit,iostat=err)
id%NNZ_loc
2067 if(err.ne.0) THEN
2071 endif
2073 &
id%COMM,
id%MYID )
2074 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2075 endif
2076 CASE("IRN_loc")
2077 CASE("JCN_loc")
2078 CASE("A_loc")
2079 CASE("NELT")
2080 nbrecords(i1)=1
2081 if(trim(mode).EQ."memory_save") then
2082 size_variables(i1)=size_int
2083 elseif(trim(mode).EQ."save") then
2084 write(unit,iostat=err)
id%NELT
2085 if(err.ne.0) then
2089 endif
2091 &
id%COMM,
id%MYID )
2092 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2093 elseif(trim(mode).EQ."restore") then
2094 size_variables(i1)=size_int
2095 read(unit,iostat=err)
id%NELT
2096 if(err.ne.0) THEN
2100 endif
2102 &
id%COMM,
id%MYID )
2103 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2104 endif
2105 CASE("NBLK")
2106 nbrecords(i1)=1
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
2111 if(err.ne.0) then
2115 endif
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
2122 if(err.ne.0) THEN
2126 endif
2128 &
id%COMM,
id%MYID )
2129 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2130 endif
2131 CASE("ELTPTR")
2132 CASE("ELTVAR")
2133 CASE("A_ELT")
2134 CASE("PERM_IN")
2135 CASE("BLKPTR")
2136 CASE("BLKVAR")
2137 CASE("RHS")
2138 CASE("REDRHS")
2139 CASE("RHS_SPARSE")
2140 CASE("SOL_loc")
2141 CASE("RHS_loc")
2142 CASE("IRHS_SPARSE")
2143 CASE("IRHS_PTR")
2144 CASE("ISOL_loc")
2145 CASE("IRHS_loc")
2146 CASE("LRHS")
2147 nbrecords(i1)=1
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
2152 if(err.ne.0) then
2156 endif
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
2163 if(err.ne.0) THEN
2167 endif
2169 &
id%COMM,
id%MYID )
2170 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2171 endif
2172 CASE("NRHS")
2173 nbrecords(i1)=1
2174 if(trim(mode).EQ."memory_save") then
2175 size_variables(i1)=size_int
2176 elseif(trim(mode).EQ."save") then
2177 write(unit,iostat=err)
id%NRHS
2178 if(err.ne.0) then
2182 endif
2184 &
id%COMM,
id%MYID )
2185 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2186 elseif(trim(mode).EQ."restore") then
2187 size_variables(i1)=size_int
2188 read(unit,iostat=err)
id%NRHS
2189 if(err.ne.0) THEN
2193 endif
2195 &
id%COMM,
id%MYID )
2196 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2197 endif
2198 CASE("NZ_RHS")
2199 nbrecords(i1)=1
2200 if(trim(mode).EQ."memory_save") then
2201 size_variables(i1)=size_int
2202 elseif(trim(mode).EQ."save") then
2203 write(unit,iostat=err)
id%NZ_RHS
2204 if(err.ne.0) then
2208 endif
2210 &
id%COMM,
id%MYID )
2211 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2212 elseif(trim(mode).EQ."restore") then
2213 size_variables(i1)=size_int
2214 read(unit,iostat=err)
id%NZ_RHS
2215 if(err.ne.0) THEN
2219 endif
2221 &
id%COMM,
id%MYID )
2222 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2223 endif
2224 CASE("LRHS_loc")
2225 CASE("Nloc_RHS")
2226 CASE("LSOL_loc")
2227 nbrecords(i1)=1
2228 if(trim(mode).EQ."memory_save") then
2229 size_variables(i1)=size_int
2230 elseif(trim(mode).EQ."save") then
2231 write(unit,iostat=err)
id%LSOL_loc
2232 if(err.ne.0) then
2236 endif
2238 &
id%COMM,
id%MYID )
2239 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2240 elseif(trim(mode).EQ."restore") then
2241 size_variables(i1)=size_int
2242 read(unit,iostat=err)
id%LSOL_loc
2243 if(err.ne.0) THEN
2247 endif
2249 &
id%COMM,
id%MYID )
2250 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2251 endif
2252 CASE("LREDRHS")
2253 nbrecords(i1)=1
2254 if(trim(mode).EQ."memory_save") then
2255 size_variables(i1)=size_int
2256 elseif(trim(mode).EQ."save") then
2257 write(unit,iostat=err)
id%LREDRHS
2258 if(err.ne.0) then
2262 endif
2264 &
id%COMM,
id%MYID )
2265 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2266 elseif(trim(mode).EQ."restore") then
2267 size_variables(i1)=size_int
2268 read(unit,iostat=err)
id%LREDRHS
2269 if(err.ne.0) THEN
2273 endif
2275 &
id%COMM,
id%MYID )
2276 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2277 endif
2278 CASE("SYM_PERM")
2279 nbrecords(i1)=2
2280 if(trim(mode).EQ."memory_save") then
2281 nbrecords(i1)=2
2282 IF(
associated(
id%SYM_PERM))
THEN
2283 size_gest(i1)=size_int
2284 size_variables(i1)=
size(
id%SYM_PERM,1)*size_int
2285 ELSE
2286 size_gest(i1)=size_int*2
2287 size_variables(i1)=0_8
2288 ENDIF
2289 elseif(trim(mode).EQ."save") then
2290 IF(
associated(
id%SYM_PERM))
THEN
2291 write(unit,iostat=err)
size(
id%SYM_PERM,1)
2292 if(err.ne.0) then
2296 endif
2298 &
id%COMM,
id%MYID )
2299 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2300 write(unit,iostat=err)
id%SYM_PERM
2301 ELSE
2302 write(unit,iostat=err) -999
2303 if(err.ne.0) then
2307 endif
2309 &
id%COMM,
id%MYID )
2310 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2311 write(unit,iostat=err) -999
2312 ENDIF
2313 if(err.ne.0) then
2317 endif
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
2324 if(err.ne.0) THEN
2328 endif
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
2336 else
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
2345 endif
2346 read(unit,iostat=err)
id%SYM_PERM
2347 endif
2349 &
id%COMM,
id%MYID )
2350 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2351 if(err.ne.0) THEN
2355 endif
2357 &
id%COMM,
id%MYID )
2358 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2359 endif
2360 CASE("UNS_PERM")
2361 nbrecords(i1)=2
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
2366 ELSE
2367 size_gest(i1)=size_int*2
2368 size_variables(i1)=0_8
2369 ENDIF
2370 elseif(trim(mode).EQ."save") then
2371 IF(
associated(
id%UNS_PERM))
THEN
2372 write(unit,iostat=err)
size(
id%UNS_PERM,1)
2373 if(err.ne.0) then
2377 endif
2379 &
id%COMM,
id%MYID )
2380 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2381 write(unit,iostat=err)
id%UNS_PERM
2382 ELSE
2383 write(unit,iostat=err) -999
2384 if(err.ne.0) then
2388 endif
2390 &
id%COMM,
id%MYID )
2391 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2392 write(unit,iostat=err) -999
2393 ENDIF
2394 if(err.ne.0) then
2398 endif
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
2405 if(err.ne.0) THEN
2409 endif
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
2417 else
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
2426 endif
2427 read(unit,iostat=err)
id%UNS_PERM
2428 endif
2430 &
id%COMM,
id%MYID )
2431 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2432 if(err.ne.0) THEN
2436 endif
2438 &
id%COMM,
id%MYID )
2439 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2440 endif
2441 CASE("NPROW")
2442 nbrecords(i1)=1
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
2447 if(err.ne.0) then
2451 endif
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
2458 if(err.ne.0) THEN
2462 endif
2464 &
id%COMM,
id%MYID )
2465 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2466 endif
2467 CASE("NPCOL")
2468 nbrecords(i1)=1
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
2473 if(err.ne.0) then
2477 endif
2479 &
id%COMM,
id%MYID )
2480 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2481 nbrecords(i1)=1
2482 elseif(trim(mode).EQ."restore") then
2483 size_variables(i1)=size_int
2484 read(unit,iostat=err)
id%NPCOL
2485 if(err.ne.0) THEN
2489 endif
2491 &
id%COMM,
id%MYID )
2492 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2493 endif
2494 CASE("MBLOCK")
2495 nbrecords(i1)=1
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
2500 if(err.ne.0) then
2504 endif
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
2511 if(err.ne.0) THEN
2515 endif
2517 &
id%COMM,
id%MYID )
2518 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2519 endif
2520 CASE("NBLOCK")
2521 nbrecords(i1)=1
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
2526 if(err.ne.0) then
2530 endif
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
2537 if(err.ne.0) THEN
2541 endif
2543 &
id%COMM,
id%MYID )
2544 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2545 endif
2546 CASE("SCHUR_MLOC")
2547 nbrecords(i1)=1
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
2552 if(err.ne.0) then
2556 endif
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
2563 if(err.ne.0) THEN
2567 endif
2569 &
id%COMM,
id%MYID )
2570 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2571 endif
2572 CASE("SCHUR_NLOC")
2573 nbrecords(i1)=1
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
2578 if(err.ne.0) then
2582 endif
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
2589 if(err.ne.0) THEN
2593 endif
2595 &
id%COMM,
id%MYID )
2596 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2597 endif
2598 CASE("SCHUR_LLD")
2599 nbrecords(i1)=1
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
2604 if(err.ne.0) then
2608 endif
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
2615 if(err.ne.0) THEN
2619 endif
2621 &
id%COMM,
id%MYID )
2622 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2623 endif
2624 CASE("SIZE_SCHUR")
2625 nbrecords(i1)=1
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
2630 if(err.ne.0) then
2634 endif
2636 &
id%COMM,
id%MYID )
2637 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2638 nbrecords(i1)=1
2639 elseif(trim(mode).EQ."restore") then
2640 size_variables(i1)=size_int
2641 read(unit,iostat=err)
id%SIZE_SCHUR
2642 if(err.ne.0) THEN
2646 endif
2648 &
id%COMM,
id%MYID )
2649 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2650 endif
2651 CASE("SCHUR")
2652 CASE("SCHUR_CINTERFACE")
2653 CASE("LISTVAR_SCHUR")
2654 CASE("MAPPING")
2655 nbrecords(i1)=2
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
2660 ELSE
2661 size_gest(i1)=size_int8+size_int
2662 size_variables(i1)=0_8
2663 ENDIF
2664 elseif(trim(mode).EQ."save") then
2665 IF(
associated(
id%MAPPING))
THEN
2666 write(unit,iostat=err)
id%KEEP8(28)
2667 if(err.ne.0) then
2671 endif
2673 &
id%COMM,
id%MYID )
2674 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2675 write(unit,iostat=err)
id%MAPPING
2676 ELSE
2677 write(unit,iostat=err) int(-999,8)
2678 if(err.ne.0) then
2682 endif
2684 &
id%COMM,
id%MYID )
2685 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2686 write(unit,iostat=err) -999
2687 ENDIF
2688 if(err.ne.0) then
2692 endif
2694 &
id%COMM,
id%MYID )
2695 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2696 elseif(trim(mode).EQ."restore") then
2698 read(unit,iostat=err) size_array_int8_1
2699 if(err.ne.0) THEN
2703 endif
2705 &
id%COMM,
id%MYID )
2706 IF (
id%INFO(1) .LT. 0 )
GOTO 100
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
2711 else
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
2720 endif
2721 read(unit,iostat=err)
id%MAPPING
2722 endif
2724 &
id%COMM,
id%MYID )
2725 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2726 if(err.ne.0) THEN
2730 endif
2732 &
id%COMM,
id%MYID )
2733 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2734 endif
2735 CASE("VERSION_NUMBER")
2736 nbrecords(i1)=1
2737 if(trim(mode).EQ."memory_save") then
2738 size_variables(i1)=len(
id%VERSION_NUMBER)
2739 & *size_character
2740 elseif(trim(mode).EQ."save") then
2741 write(unit,iostat=err)
id%VERSION_NUMBER
2742 if(err.ne.0) then
2746 endif
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)
2752 & *size_character
2753 read(unit,iostat=err)
id%VERSION_NUMBER
2754 if(err.ne.0) THEN
2758 endif
2760 &
id%COMM,
id%MYID )
2761 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2762 endif
2763 CASE("OOC_TMPDIR")
2764 nbrecords(i1)=1
2765 if(trim(mode).EQ."memory_save") then
2766 size_variables(i1)=len(
id%OOC_TMPDIR)
2767 & *size_character
2768 elseif(trim(mode).EQ."save") then
2769 write(unit,iostat=err)
id%OOC_TMPDIR
2770 if(err.ne.0) then
2774 endif
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)
2780 & *size_character
2781 read(unit,iostat=err)
id%OOC_TMPDIR
2782 if(err.ne.0) THEN
2786 endif
2788 &
id%COMM,
id%MYID )
2789 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2790 endif
2791 CASE("OOC_PREFIX")
2792 nbrecords(i1)=1
2793 if(trim(mode).EQ."memory_save") then
2794 size_variables(i1)=len(
id%OOC_PREFIX)
2795 & *size_character
2796 elseif(trim(mode).EQ."save") then
2797 write(unit,iostat=err)
id%OOC_PREFIX
2798 if(err.ne.0) then
2802 endif
2804 &
id%COMM,
id%MYID )
2805 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2806 nbrecords(i1)=1
2807 elseif(trim(mode).EQ."restore") then
2808 size_variables(i1)=len(
id%OOC_PREFIX)
2809 & *size_character
2810 read(unit,iostat=err)
id%OOC_PREFIX
2811 if(err.ne.0) THEN
2815 endif
2817 &
id%COMM,
id%MYID )
2818 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2819 endif
2820 CASE("WRITE_PROBLEM")
2821 nbrecords(i1)=1
2822 if(trim(mode).EQ."memory_save") then
2823 size_variables(i1)=len(
id%WRITE_PROBLEM)
2824 & *size_character
2825 elseif(trim(mode).EQ."save") then
2826 write(unit,iostat=err)
id%WRITE_PROBLEM
2827 if(err.ne.0) then
2831 endif
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)
2837 & *size_character
2838 read(unit,iostat=err)
id%WRITE_PROBLEM
2839 if(err.ne.0) THEN
2843 endif
2845 &
id%COMM,
id%MYID )
2846 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2847 endif
2848 CASE("MAX_SURF_MASTER")
2849 nbrecords(i1)=1
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
2854 if(err.ne.0) then
2858 endif
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
2865 if(err.ne.0) THEN
2869 endif
2871 &
id%COMM,
id%MYID )
2872 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2873 endif
2874 CASE("INST_Number")
2875 nbrecords(i1)=1
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
2880 if(err.ne.0) then
2884 endif
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
2891 if(err.ne.0) THEN
2895 endif
2897 &
id%COMM,
id%MYID )
2898 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2899 endif
2900 CASE("COMM_NODES")
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
2907 endif
2908 CASE("MYID_NODES")
2909 nbrecords(i1)=1
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
2914 if(err.ne.0) then
2918 endif
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
2925 if(err.ne.0) THEN
2929 endif
2931 &
id%COMM,
id%MYID )
2932 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2933 endif
2934 CASE("COMM_LOAD")
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
2941 endif
2942 CASE("MYID")
2943 nbrecords(i1)=1
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
2948 if(err.ne.0) then
2952 endif
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
2959 if(err.ne.0) THEN
2963 endif
2965 &
id%COMM,
id%MYID )
2966 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2967 endif
2968 CASE("NPROCS")
2969 nbrecords(i1)=1
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
2974 if(err.ne.0) then
2978 endif
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
2985 if(err.ne.0) THEN
2989 endif
2991 &
id%COMM,
id%MYID )
2992 IF (
id%INFO(1) .LT. 0 )
GOTO 100
2993 endif
2994 CASE("NSLAVES")
2995 nbrecords(i1)=1
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
3000 if(err.ne.0) then
3004 endif
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
3011 if(err.ne.0) THEN
3015 endif
3017 &
id%COMM,
id%MYID )
3018 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3019 endif
3020 CASE("ASS_IRECV")
3021 nbrecords(i1)=1
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
3026 if(err.ne.0) then
3030 endif
3032 &
id%COMM,
id%MYID )
3033 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3034 elseif(trim(mode).EQ."restore") then
3035 size_variables(i1)=size_int
3036 read(unit,iostat=err)
id%ASS_IRECV
3037 if(err.ne.0) THEN
3041 endif
3043 &
id%COMM,
id%MYID )
3044 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3045 endif
3046 CASE("IS")
3047 nbrecords(i1)=2
3048 if(trim(mode).EQ."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))
3054 ELSE
3055 size_gest(i1)=size_int*3
3056 size_variables(i1)=0_8
3057 ENDIF
3058 elseif(trim(mode).EQ."save") then
3059 IF(
associated(
id%IS))
THEN
3060 write(unit,iostat=err)
size(
id%IS,1),
id%KEEP(32)
3061 if(err.ne.0) then
3065 endif
3067 &
id%COMM,
id%MYID )
3068 IF (
id%INFO(1) .LT. 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))
3072 ELSE
3073 write(unit,iostat=err) -999,-998
3074 if(err.ne.0) then
3078 endif
3080 &
id%COMM,
id%MYID )
3081 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3082 write(unit,iostat=err) -999
3083 ENDIF
3084 if(err.ne.0) then
3088 endif
3090 &
id%COMM,
id%MYID )
3091 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3092 elseif(trim(mode).EQ."restore") then
3094 read(unit,iostat=err) size_array1,size_array2
3095 if(err.ne.0) THEN
3099 endif
3101 &
id%COMM,
id%MYID )
3102 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3103 if(size_array1.EQ.-999) then
3104 size_gest(i1)=size_int*3
3105 size_variables(i1)=0_8
3106 read(unit,iostat=err) dummy
3107 else
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 if (allocok .GT. 0) THEN
3116 & total_struc_size-size_allocated
3118 endif
3119 read(unit,iostat=err)
id%IS(1:size_array2)
3120 endif
3122 &
id%COMM,
id%MYID )
3123 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3124 if(err.ne.0) THEN
3128 endif
3130 &
id%COMM,
id%MYID )
3131 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3132 endif
3133 CASE("Deficiency")
3134 nbrecords(i1)=1
3135 if(trim(mode).EQ."memory_save") then
3136 size_variables(i1)=size_int
3137 elseif(trim(mode).EQ."save") then
3138 write(unit,iostat=err)
id%Deficiency
3139 if(err.ne.0) then
3143 endif
3145 &
id%COMM,
id%MYID )
3146 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3147 elseif(trim(mode).EQ."restore") then
3148 size_variables(i1)=size_int
3149 read(unit,iostat=err)
id%Deficiency
3150 if(err.ne.0) THEN
3154 endif
3156 &
id%COMM,
id%MYID )
3157 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3158 endif
3159 CASE("LNA")
3160 nbrecords(i1)=1
3161 if(trim(mode).EQ."memory_save") then
3162 size_variables(i1)=size_int
3163 elseif(trim(mode).EQ."save") then
3164 write(unit,iostat=err)
id%LNA
3165 if(err.ne.0) then
3169 endif
3171 &
id%COMM,
id%MYID )
3172 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3173 elseif(trim(mode).EQ."restore") then
3174 size_variables(i1)=size_int
3175 read(unit,iostat=err)
id%LNA
3176 if(err.ne.0) THEN
3180 endif
3182 &
id%COMM,
id%MYID )
3183 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3184 endif
3185 CASE("NBSA")
3186 nbrecords(i1)=1
3187 if(trim(mode).EQ."memory_save") then
3188 size_variables(i1)=size_int
3189 elseif(trim(mode).EQ."save") then
3190 write(unit,iostat=err)
id%NBSA
3191 if(err.ne.0) then
3195 endif
3197 &
id%COMM,
id%MYID )
3198 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3199 elseif(trim(mode).EQ."restore") then
3200 size_variables(i1)=size_int
3201 read(unit,iostat=err)
id%NBSA
3202 if(err.ne.0) THEN
3206 endif
3208 &
id%COMM,
id%MYID )
3209 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3210 endif
3211 CASE("STEP")
3212 nbrecords(i1)=2
3213 if(trim(mode).EQ."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
3217 ELSE
3218 size_gest(i1)=size_int*2
3219 size_variables(i1)=0_8
3220 ENDIF
3221 elseif(trim(mode).EQ."save") then
3222 IF(
associated(
id%STEP))
THEN
3223 write(unit,iostat=err)
size(
id%STEP,1)
3224 if(err.ne.0) then
3228 endif
3230 &
id%COMM,
id%MYID )
3231 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3232 write(unit,iostat=err)
id%STEP
3233 ELSE
3234 write(unit,iostat=err) -999
3235 if(err.ne.0) then
3239 endif
3241 &
id%COMM,
id%MYID )
3242 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3243 write(unit,iostat=err) -999
3244 ENDIF
3245 if(err.ne.0) then
3249 endif
3251 &
id%COMM,
id%MYID )
3252 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3253 elseif(trim(mode).EQ."restore") then
3255 read(unit,iostat=err) size_array1
3256 if(err.ne.0) THEN
3259 endif
3261 &
id%COMM,
id%MYID )
3262 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3263 if(size_array1.EQ.-999) then
3264 size_gest(i1)=size_int*2
3265 size_variables(i1)=0_8
3266 read(unit,iostat=err) dummy
3267 else
3268 size_gest(i1)=size_int
3269 size_variables(i1)=size_array1*size_int
3270 allocate(
id%STEP(size_array1), stat=allocok)
3271 if (allocok .GT. 0) THEN
3274 & total_struc_size-size_allocated
3276 endif
3277 read(unit,iostat=err)
id%STEP
3278 endif
3280 &
id%COMM,
id%MYID )
3281 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3282 if(err.ne.0) THEN
3286 endif
3288 &
id%COMM,
id%MYID )
3289 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3290 endif
3291 CASE("NE_STEPS")
3292 nbrecords(i1)=2
3293 if(trim(mode).EQ."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
3297 ELSE
3298 size_gest(i1)=size_int*2
3299 size_variables(i1)=0_8
3300 ENDIF
3301 elseif(trim(mode).EQ."save") then
3302 IF(
associated(
id%NE_STEPS))
THEN
3303 write(unit,iostat=err)
size(
id%NE_STEPS,1)
3304 if(err.ne.0) then
3308 endif
3310 &
id%COMM,
id%MYID )
3311 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3312 write(unit,iostat=err)
id%NE_STEPS
3313 ELSE
3314 write(unit,iostat=err) -999
3315 if(err.ne.0) then
3319 endif
3321 &
id%COMM,
id%MYID )
3322 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3323 write(unit,iostat=err) -999
3324 ENDIF
3325 if(err.ne.0) then
3329 endif
3331 &
id%COMM,
id%MYID )
3332 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3333 elseif(trim(mode).EQ."restore") then
3334 nullify(
id%NE_STEPS)
3335 read(unit,iostat=err) size_array1
3336 if(err.ne.0) THEN
3340 endif
3342 &
id%COMM,
id%MYID )
3343 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3344 if(size_array1.EQ.-999) then
3345 size_gest(i1)=size_int*2
3346 size_variables(i1)=0_8
3347 read(unit,iostat=err) dummy
3348 else
3349 size_gest(i1)=size_int
3350 size_variables(i1)=size_array1*size_int
3351 allocate(
id%NE_STEPS(size_array1), stat=allocok)
3352 if (allocok .GT. 0) THEN
3355 & total_struc_size-size_allocated
3357 endif
3358 read(unit,iostat=err)
id%NE_STEPS
3359 endif
3361 &
id%COMM,
id%MYID )
3362 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3363 if(err.ne.0) THEN
3367 endif
3369 &
id%COMM,
id%MYID )
3370 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3371 endif
3372 CASE("ND_STEPS")
3373 nbrecords(i1)=2
3374 if(trim(mode).EQ."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
3378 ELSE
3379 size_gest(i1)=size_int*2
3380 size_variables(i1)=0_8
3381 ENDIF
3382 elseif(trim(mode).EQ."save") then
3383 IF(
associated(
id%ND_STEPS))
THEN
3384 write(unit,iostat=err)
size(
id%ND_STEPS,1)
3385 if(err.ne.0) then
3389 endif
3391 &
id%COMM,
id%MYID )
3392 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3393 write(unit,iostat=err)
id%ND_STEPS
3394 ELSE
3395 write(unit,iostat=err) -999
3396 if(err.ne.0) then
3400 endif
3402 &
id%COMM,
id%MYID )
3403 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3404 write(unit,iostat=err) -999
3405 ENDIF
3406 if(err.ne.0) then
3410 endif
3412 &
id%COMM,
id%MYID )
3413 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3414 elseif(trim(mode).EQ."restore") then
3415 nullify(
id%ND_STEPS)
3416 read(unit,iostat=err) size_array1
3417 if(err.ne.0) THEN
3421 endif
3423 &
id%COMM,
id%MYID )
3424 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3425 if(size_array1.EQ.-999) then
3426 size_gest(i1)=size_int*2
3427 size_variables(i1)=0_8
3428 read(unit,iostat=err) dummy
3429 else
3430 size_gest(i1)=size_int
3431 size_variables(i1)=size_array1*size_int
3432 allocate(
id%ND_STEPS(size_array1), stat=allocok)
3433 if (allocok .GT. 0) THEN
3436 & total_struc_size-size_allocated
3438 endif
3439 read(unit,iostat=err)
id%ND_STEPS
3440 endif
3442 &
id%COMM,
id%MYID )
3443 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3444 if(err.ne.0) THEN
3448 endif
3450 &
id%COMM,
id%MYID )
3451 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3452 endif
3453 CASE("Step2node")
3454 nbrecords(i1)=2
3455 if(trim(mode).EQ."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
3459 ELSE
3460 size_gest(i1)=size_int*2
3461 size_variables(i1)=0_8
3462 ENDIF
3463 elseif(trim(mode).EQ."save") then
3464 IF(
associated(
id%Step2node))
THEN
3465 write(unit,iostat=err)
size(
id%Step2node,1)
3466 if(err.ne.0) then
3470 endif
3472 &
id%COMM,
id%MYID )
3473 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3474 write(unit,iostat=err)
id%Step2node
3475 ELSE
3476 write(unit,iostat=err) -999
3477 if(err.ne.0) then
3481 endif
3483 &
id%COMM,
id%MYID )
3484 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3485 write(unit,iostat=err) -999
3486 ENDIF
3487 if(err.ne.0) then
3491 endif
3493 &
id%COMM,
id%MYID )
3494 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3495 elseif(trim(mode).EQ."restore") then
3496 nullify(
id%Step2node)
3497 read(unit,iostat=err) size_array1
3498 if(err.ne.0) THEN
3502 endif
3504 &
id%COMM,
id%MYID )
3505 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3506 if(size_array1.EQ.-999) then
3507 size_gest(i1)=size_int*2
3508 size_variables(i1)=0_8
3509 read(unit,iostat=err) dummy
3510 else
3511 size_gest(i1)=size_int
3512 size_variables(i1)=size_array1*size_int
3513 allocate(
id%Step2node(size_array1), stat=allocok)
3514 if (allocok .GT. 0) THEN
3517 & total_struc_size-size_allocated
3519 endif
3520 read(unit,iostat=err)
id%Step2node
3521 endif
3523 &
id%COMM,
id%MYID )
3524 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3525 if(err.ne.0) THEN
3529 endif
3531 &
id%COMM,
id%MYID )
3532 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3533 endif
3534 CASE("FRERE_STEPS")
3535 nbrecords(i1)=2
3536 if(trim(mode).EQ."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
3540 ELSE
3541 size_gest(i1)=size_int*2
3542 size_variables(i1)=0_8
3543 ENDIF
3544 elseif(trim(mode).EQ."save") then
3545 IF(
associated(
id%FRERE_STEPS))
THEN
3546 write(unit,iostat=err)
size(
id%FRERE_STEPS,1)
3547 if(err.ne.0) then
3551 endif
3553 &
id%COMM,
id%MYID )
3554 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3555 write(unit,iostat=err)
id%FRERE_STEPS
3556 ELSE
3557 write(unit,iostat=err) -999
3558 if(err.ne.0) then
3562 endif
3564 &
id%COMM,
id%MYID )
3565 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3566 write(unit,iostat=err) -999
3567 ENDIF
3568 if(err.ne.0) then
3572 endif
3574 &
id%COMM,
id%MYID )
3575 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3576 elseif(trim(mode).EQ."restore") then
3577 nullify(
id%FRERE_STEPS)
3578 read(unit,iostat=err) size_array1
3579 if(err.ne.0) THEN
3583 endif
3585 &
id%COMM,
id%MYID )
3586 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3587 if(size_array1.EQ.-999) then
3588 size_gest(i1)=size_int*2
3589 size_variables(i1)=0_8
3590 read(unit,iostat=err) dummy
3591 else
3592 size_gest(i1)=size_int
3593 size_variables(i1)=size_array1*size_int
3594 allocate(
id%FRERE_STEPS(size_array1), stat=allocok)
3595 if (allocok .GT. 0) THEN
3598 & total_struc_size-size_allocated
3600 endif
3601 read(unit,iostat=err)
id%FRERE_STEPS
3602 endif
3604 &
id%COMM,
id%MYID )
3605 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3606 if(err.ne.0) THEN
3610 endif
3612 &
id%COMM,
id%MYID )
3613 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3614 endif
3615 CASE("DAD_STEPS")
3616 nbrecords(i1)=2
3617 if(trim(mode).EQ."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
3621 ELSE
3622 size_gest(i1)=size_int*2
3623 size_variables(i1)=0_8
3624 ENDIF
3625 elseif(trim(mode).EQ."save") then
3626 IF(
associated(
id%DAD_STEPS))
THEN
3627 write(unit,iostat=err)
size(
id%DAD_STEPS,1)
3628 if(err.ne.0) then
3632 endif
3634 &
id%COMM,
id%MYID )
3635 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3636 write(unit,iostat=err)
id%DAD_STEPS
3637 ELSE
3638 write(unit,iostat=err) -999
3639 if(err.ne.0) then
3643 endif
3645 &
id%COMM,
id%MYID )
3646 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3647 write(unit,iostat=err) -999
3648 ENDIF
3649 if(err.ne.0) then
3653 endif
3655 &
id%COMM,
id%MYID )
3656 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3657 elseif(trim(mode).EQ."restore") then
3658 nullify(
id%DAD_STEPS)
3659 read(unit,iostat=err) size_array1
3660 if(err.ne.0) THEN
3664 endif
3666 &
id%COMM,
id%MYID )
3667 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3668 if(size_array1.EQ.-999) then
3669 size_gest(i1)=size_int*2
3670 size_variables(i1)=0_8
3671 read(unit,iostat=err) dummy
3672 else
3673 size_gest(i1)=size_int
3674 size_variables(i1)=size_array1*size_int
3675 allocate(
id%DAD_STEPS(size_array1), stat=allocok)
3676 if (allocok .GT. 0) THEN
3679 & total_struc_size-size_allocated
3681 endif
3682 read(unit,iostat=err)
id%DAD_STEPS
3683 endif
3685 &
id%COMM,
id%MYID )
3686 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3687 if(err.ne.0) THEN
3691 endif
3693 &
id%COMM,
id%MYID )
3694 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3695 endif
3696 CASE("FILS")
3697 nbrecords(i1)=2
3698 if(trim(mode).EQ."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
3702 ELSE
3703 size_gest(i1)=size_int*2
3704 size_variables(i1)=0_8
3705 ENDIF
3706 elseif(trim(mode).EQ."save") then
3707 IF(
associated(
id%FILS))
THEN
3708 write(unit,iostat=err)
size(
id%FILS,1)
3709 if(err.ne.0) then
3713 endif
3715 &
id%COMM,
id%MYID )
3716 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3717 write(unit,iostat=err)
id%FILS
3718 ELSE
3719 write(unit,iostat=err) -999
3720 if(err.ne.0) then
3724 endif
3726 &
id%COMM,
id%MYID )
3727 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3728 write(unit,iostat=err) -999
3729 ENDIF
3730 if(err.ne.0) then
3734 endif
3736 &
id%COMM,
id%MYID )
3737 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3738 elseif(trim(mode).EQ."restore") then
3740 read(unit,iostat=err) size_array1
3741 if(err.ne.0) THEN
3745 endif
3747 &
id%COMM,
id%MYID )
3748 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3749 if(size_array1.EQ.-999) then
3750 size_gest(i1)=size_int*2
3751 size_variables(i1)=0_8
3752 read(unit,iostat=err) dummy
3753 else
3754 size_gest(i1)=size_int
3755 size_variables(i1)=size_array1*size_int
3756 allocate(
id%FILS(size_array1), stat=allocok)
3757 if (allocok .GT. 0) THEN
3760 & total_struc_size-size_allocated
3762 endif
3763 read(unit,iostat=err)
id%FILS
3764 endif
3766 &
id%COMM,
id%MYID )
3767 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3768 if(err.ne.0) THEN
3772 endif
3774 &
id%COMM,
id%MYID )
3775 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3776 endif
3777 CASE("PTRAR")
3778 nbrecords(i1)=2
3779 if(trim(mode).EQ."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
3783 ELSE
3784 size_gest(i1)=size_int*2
3785 size_variables(i1)=0_8
3786 ENDIF
3787 elseif(trim(mode).EQ."save") then
3788 IF(
associated(
id%PTRAR))
THEN
3789 write(unit,iostat=err)
size(
id%PTRAR,1)
3790 if(err.ne.0) then
3794 endif
3796 &
id%COMM,
id%MYID )
3797 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3798 write(unit,iostat=err)
id%PTRAR
3799 ELSE
3800 write(unit,iostat=err) -999
3801 if(err.ne.0) then
3805 endif
3807 &
id%COMM,
id%MYID )
3808 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3809 write(unit,iostat=err) -999
3810 ENDIF
3811 if(err.ne.0) then
3815 endif
3817 &
id%COMM,
id%MYID )
3818 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3819 nbrecords(i1)=2
3820 elseif(trim(mode).EQ."restore") then
3822 read(unit,iostat=err) size_array1
3823 if(err.ne.0) THEN
3827 endif
3829 &
id%COMM,
id%MYID )
3830 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3831 if(size_array1.EQ.-999) then
3832 size_gest(i1)=size_int*2
3833 size_variables(i1)=0_8
3834 read(unit,iostat=err) dummy
3835 else
3836 size_gest(i1)=size_int
3837 size_variables(i1)=size_array1*size_int8
3838 allocate(
id%PTRAR(size_array1), stat=allocok)
3839 if (allocok .GT. 0) THEN
3842 & total_struc_size-size_allocated
3844 endif
3845 read(unit,iostat=err)
id%PTRAR
3846 endif
3848 &
id%COMM,
id%MYID )
3849 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3850 if(err.ne.0) THEN
3854 endif
3856 &
id%COMM,
id%MYID )
3857 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3858 endif
3859 CASE("FRTPTR")
3860 nbrecords(i1)=2
3861 if(trim(mode).EQ."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
3865 ELSE
3866 size_gest(i1)=size_int*2
3867 size_variables(i1)=0_8
3868 ENDIF
3869 elseif(trim(mode).EQ."save") then
3870 IF(
associated(
id%FRTPTR))
THEN
3871 write(unit,iostat=err)
size(
id%FRTPTR,1)
3872 if(err.ne.0) then
3876 endif
3878 &
id%COMM,
id%MYID )
3879 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3880 write(unit,iostat=err)
id%FRTPTR
3881 ELSE
3882 write(unit,iostat=err) -999
3883 if(err.ne.0) then
3887 endif
3889 &
id%COMM,
id%MYID )
3890 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3891 write(unit,iostat=err) -999
3892 ENDIF
3893 if(err.ne.0) then
3897 endif
3899 &
id%COMM,
id%MYID )
3900 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3901 elseif(trim(mode).EQ."restore") then
3903 read(unit,iostat=err) size_array1
3904 if(err.ne.0) THEN
3908 endif
3910 &
id%COMM,
id%MYID )
3911 if(size_array1.EQ.-999) then
3912 size_gest(i1)=size_int*2
3913 size_variables(i1)=0_8
3914 read(unit,iostat=err) dummy
3915 else
3916 size_gest(i1)=size_int
3917 size_variables(i1)=size_array1*size_int
3918 allocate(
id%FRTPTR(size_array1), stat=allocok)
3919 if (allocok .GT. 0) THEN
3922 & total_struc_size-size_allocated
3924 endif
3925 read(unit,iostat=err)
id%FRTPTR
3926 endif
3928 &
id%COMM,
id%MYID )
3929 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3930 if(err.ne.0) THEN
3934 endif
3936 &
id%COMM,
id%MYID )
3937 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3938 endif
3939 CASE("FRTELT")
3940 nbrecords(i1)=2
3941 if(trim(mode).EQ."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
3945 ELSE
3946 size_gest(i1)=size_int*2
3947 size_variables(i1)=0_8
3948 ENDIF
3949 elseif(trim(mode).EQ."save") then
3950 IF(
associated(
id%FRTELT))
THEN
3951 write(unit,iostat=err)
size(
id%FRTELT,1)
3952 if(err.ne.0) then
3956 endif
3957 write(unit,iostat=err)
id%FRTELT
3958 ELSE
3959 write(unit,iostat=err) -999
3960 if(err.ne.0) then
3964 endif
3965 write(unit,iostat=err) -999
3966 ENDIF
3967 if(err.ne.0) then
3971 endif
3973 &
id%COMM,
id%MYID )
3974 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3975 elseif(trim(mode).EQ."restore") then
3977 read(unit,iostat=err) size_array1
3978 if(err.ne.0) THEN
3982 endif
3984 &
id%COMM,
id%MYID )
3985 IF (
id%INFO(1) .LT. 0 )
GOTO 100
3986 if(size_array1.EQ.-999) then
3987 size_gest(i1)=size_int*2
3988 size_variables(i1)=0_8
3989 read(unit,iostat=err) dummy
3990 else
3991 size_gest(i1)=size_int
3992 size_variables(i1)=size_array1*size_int
3993 allocate(
id%FRTELT(size_array1), stat=allocok)
3994 if (allocok .GT. 0) THEN
3997 & total_struc_size-size_allocated
3999 endif
4000 read(unit,iostat=err)
id%FRTELT
4001 endif
4003 &
id%COMM,
id%MYID )
4004 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4005 if(err.ne.0) THEN
4009 endif
4011 &
id%COMM,
id%MYID )
4012 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4013 endif
4014 CASE("NA")
4015 nbrecords(i1)=2
4016 if(trim(mode).EQ."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
4020 ELSE
4021 size_gest(i1)=size_int*2
4022 size_variables(i1)=0_8
4023 ENDIF
4024 elseif(trim(mode).EQ."save") then
4025 IF(
associated(
id%NA))
THEN
4026 write(unit,iostat=err)
size(
id%NA,1)
4027 if(err.ne.0) then
4031 endif
4032 write(unit,iostat=err)
id%NA
4033 ELSE
4034 write(unit,iostat=err) -999
4035 if(err.ne.0) then
4039 endif
4040 write(unit,iostat=err) -999
4041 ENDIF
4042 if(err.ne.0) then
4046 endif
4048 &
id%COMM,
id%MYID )
4049 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4050 elseif(trim(mode).EQ."restore") then
4052 read(unit,iostat=err) size_array1
4053 if(err.ne.0) THEN
4057 endif
4059 &
id%COMM,
id%MYID )
4060 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4061 if(size_array1.EQ.-999) then
4062 size_gest(i1)=size_int*2
4063 size_variables(i1)=0_8
4064 read(unit,iostat=err) dummy
4065 else
4066 size_gest(i1)=size_int
4067 size_variables(i1)=size_array1*size_int
4068 allocate(
id%NA(size_array1), stat=allocok)
4069 if (allocok .GT. 0) THEN
4072 & total_struc_size-size_allocated
4074 endif
4075 read(unit,iostat=err)
id%NA
4076 endif
4078 &
id%COMM,
id%MYID )
4079 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4080 if(err.ne.0) THEN
4084 endif
4086 &
id%COMM,
id%MYID )
4087 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4088 endif
4089 CASE("PROCNODE_STEPS")
4090 nbrecords(i1)=2
4091 if(trim(mode).EQ."memory_save") then
4092 nbrecords(i1)=2
4093 IF(
associated(
id%PROCNODE_STEPS))
THEN
4094 size_gest(i1)=size_int
4095 size_variables(i1)=
size(
id%PROCNODE_STEPS,1)*size_int
4096 ELSE
4097 size_gest(i1)=size_int*2
4098 size_variables(i1)=0_8
4099 ENDIF
4100 elseif(trim(mode).EQ."save") then
4101 IF(
associated(
id%PROCNODE_STEPS))
THEN
4102 write(unit,iostat=err)
size(
id%PROCNODE_STEPS,1)
4103 if(err.ne.0) then
4107 endif
4109 &
id%COMM,
id%MYID )
4110 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4111 write(unit,iostat=err)
id%PROCNODE_STEPS
4112 ELSE
4113 write(unit,iostat=err) -999
4114 if(err.ne.0) then
4118 endif
4120 &
id%COMM,
id%MYID )
4121 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4122 write(unit,iostat=err) -999
4123 ENDIF
4124 if(err.ne.0) then
4128 endif
4130 &
id%COMM,
id%MYID )
4131 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4132 elseif(trim(mode).EQ."restore") then
4133 nullify(
id%PROCNODE_STEPS)
4134 read(unit,iostat=err) size_array1
4135 if(err.ne.0) THEN
4139 endif
4141 &
id%COMM,
id%MYID )
4142 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4143 if(size_array1.EQ.-999) then
4144 size_gest(i1)=size_int*2
4145 size_variables(i1)=0_8
4146 read(unit,iostat=err) dummy
4147 else
4148 size_gest(i1)=size_int
4149 size_variables(i1)=size_array1*size_int
4150 allocate(
id%PROCNODE_STEPS(size_array1), stat=allocok)
4151 if (allocok .GT. 0) THEN
4154 & total_struc_size-size_allocated
4156 endif
4157 read(unit,iostat=err)
id%PROCNODE_STEPS
4158 endif
4160 &
id%COMM,
id%MYID )
4161 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4162 if(err.ne.0) THEN
4166 endif
4168 &
id%COMM,
id%MYID )
4169 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4170 endif
4171 CASE("PTLUST_S")
4172 nbrecords(i1)=2
4173 if(trim(mode).EQ."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
4177 ELSE
4178 size_gest(i1)=size_int*2
4179 size_variables(i1)=0_8
4180 ENDIF
4181 elseif(trim(mode).EQ."save") then
4182 IF(
associated(
id%PTLUST_S))
THEN
4183 write(unit,iostat=err)
size(
id%PTLUST_S,1)
4184 if(err.ne.0) then
4188 endif
4190 &
id%COMM,
id%MYID )
4191 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4192 write(unit,iostat=err)
id%PTLUST_S
4193 ELSE
4194 write(unit,iostat=err) -999
4195 if(err.ne.0) then
4199 endif
4201 &
id%COMM,
id%MYID )
4202 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4203 write(unit,iostat=err) -999
4204 ENDIF
4205 if(err.ne.0) then
4209 endif
4211 &
id%COMM,
id%MYID )
4212 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4213 elseif(trim(mode).EQ."restore") then
4214 nullify(
id%PTLUST_S)
4215 read(unit,iostat=err) size_array1
4216 if(err.ne.0) THEN
4220 endif
4222 &
id%COMM,
id%MYID )
4223 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4224 if(size_array1.EQ.-999) then
4225 size_gest(i1)=size_int*2
4226 size_variables(i1)=0_8
4227 read(unit,iostat=err) dummy
4228 else
4229 size_gest(i1)=size_int
4230 size_variables(i1)=size_array1*size_int
4231 allocate(
id%PTLUST_S(size_array1), stat=allocok)
4232 if (allocok .GT. 0) THEN
4235 & total_struc_size-size_allocated
4237 endif
4238 read(unit,iostat=err)
id%PTLUST_S
4239 endif
4241 &
id%COMM,
id%MYID )
4242 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4243 if(err.ne.0) THEN
4247 endif
4249 &
id%COMM,
id%MYID )
4250 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4251 endif
4252 CASE("PTRFAC")
4253 nbrecords(i1)=2
4254 if(trim(mode).EQ."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
4258 ELSE
4259 size_gest(i1)=size_int*2
4260 size_variables(i1)=0_8
4261 ENDIF
4262 elseif(trim(mode).EQ."save") then
4263 IF(
associated(
id%PTRFAC))
THEN
4264 write(unit,iostat=err)
size(
id%PTRFAC,1)
4265 if(err.ne.0) then
4269 endif
4271 &
id%COMM,
id%MYID )
4272 write(unit,iostat=err)
id%PTRFAC
4273 ELSE
4274 write(unit,iostat=err) -999
4275 if(err.ne.0) then
4279 endif
4281 &
id%COMM,
id%MYID )
4282 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4283 write(unit,iostat=err) -999
4284 ENDIF
4285 if(err.ne.0) then
4289 endif
4291 &
id%COMM,
id%MYID )
4292 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4293 elseif(trim(mode).EQ."restore") then
4295 read(unit,iostat=err) size_array1
4296 if(err.ne.0) THEN
4300 endif
4302 &
id%COMM,
id%MYID )
4303 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4304 if(size_array1.EQ.-999) then
4305 size_gest(i1)=size_int*2
4306 size_variables(i1)=0_8
4307 read(unit,iostat=err) dummy
4308 else
4309 size_gest(i1)=size_int
4310 size_variables(i1)=size_array1*size_int8
4311 allocate(
id%PTRFAC(size_array1), stat=allocok)
4312 if (allocok .GT. 0) THEN
4315 & total_struc_size-size_allocated
4317 endif
4318 read(unit,iostat=err)
id%PTRFAC
4319 endif
4321 &
id%COMM,
id%MYID )
4322 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4323 if(err.ne.0) THEN
4327 endif
4329 &
id%COMM,
id%MYID )
4330 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4331 endif
4332 CASE("S")
4333 nbrecords(i1)=2
4334 if(trim(mode).EQ."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))
4340 ELSE
4341 size_gest(i1)=size_int8*2+size_int
4342 size_variables(i1)=0_8
4343 ENDIF
4344 elseif(trim(mode).EQ."save") then
4345 IF(
associated(
id%S))
THEN
4346 write(unit,iostat=err)
id%KEEP8(23),
id%KEEP8(31)
4347 if(err.ne.0) then
4351 endif
4353 &
id%COMM,
id%MYID )
4354 IF (
id%INFO(1) .LT. 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))
4358 ELSE
4359 write(unit,iostat=err) int(-999,kind=8)
4360 & ,int(-998,kind=8)
4361 if(err.ne.0) then
4365 endif
4367 &
id%COMM,
id%MYID )
4368 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4369 write(unit,iostat=err) -999
4370 ENDIF
4371 if(err.ne.0) then
4375 endif
4377 &
id%COMM,
id%MYID )
4378 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4379 elseif(trim(mode).EQ."restore") then
4381 read(unit,iostat=err) size_array_int8_1,size_array_int8_2
4382 if(err.ne.0) THEN
4386 endif
4388 &
id%COMM,
id%MYID )
4389 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4390 if(size_array_int8_1.EQ.int(-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
4394 else
4395 size_gest(i1)=size_int8*2
4396 size_variables(i1)=size_array_int8_2*size_arith_dep
4397 diff_size_alloc_read(i1)=
4398 & size_arith_dep*
4399 & (size_array_int8_1-size_array_int8_2)
4400 allocate(
id%S(1:size_array_int8_1), stat=allocok)
4401 if (allocok .GT. 0) THEN
4404 & total_struc_size-size_allocated
4406 endif
4407 read(unit,iostat=err)
id%S(1:size_array_int8_2)
4408 endif
4410 &
id%COMM,
id%MYID )
4411 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4412 if(err.ne.0) THEN
4416 endif
4418 &
id%COMM,
id%MYID )
4419 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4420 endif
4421 CASE("PROCNODE")
4422 CASE("INTARR")
4423 nbrecords(i1)=2
4424 if(trim(mode).EQ."memory_save") then
4425 IF(
associated(
id%INTARR))
THEN
4426 size_gest(i1)=size_int8
4427 size_variables(i1)=
id%KEEP8(27)*size_int
4428 ELSE
4429 size_gest(i1)=size_int8+size_int
4430 size_variables(i1)=0_8
4431 ENDIF
4432 elseif(trim(mode).EQ."save") then
4433 IF(
associated(
id%INTARR))
THEN
4434 write(unit,iostat=err)
id%KEEP8(27)
4435 if(err.ne.0) then
4439 endif
4441 &
id%COMM,
id%MYID )
4442 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4443 write(unit,iostat=err)
id%INTARR
4444 ELSE
4445 write(unit,iostat=err) int(-999,8)
4446 if(err.ne.0) then
4450 endif
4452 &
id%COMM,
id%MYID )
4453 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4454 write(unit,iostat=err) -999
4455 ENDIF
4456 if(err.ne.0) then
4460 endif
4462 &
id%COMM,
id%MYID )
4463 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4464 elseif(trim(mode).EQ."restore") then
4466 read(unit,iostat=err) size_array_int8_1
4467 if(err.ne.0) THEN
4471 endif
4473 &
id%COMM,
id%MYID )
4474 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4475 if(size_array_int8_1.EQ.int(-999,8)) then
4476 size_gest(i1)=size_int8+size_int
4477 size_variables(i1)=0_8
4478 read(unit,iostat=err) dummy
4479 else
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 if (allocok .GT. 0) THEN
4486 & total_struc_size-size_allocated
4488 endif
4489 read(unit,iostat=err)
id%INTARR
4490 endif
4492 &
id%COMM,
id%MYID )
4493 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4494 if(err.ne.0) THEN
4498 endif
4500 &
id%COMM,
id%MYID )
4501 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4502 endif
4503 CASE("DBLARR")
4504 CASE("NELT_loc")
4505 nbrecords(i1)=1
4506 if(trim(mode).EQ."memory_save") then
4507 size_variables(i1)=size_int
4508 elseif(trim(mode).EQ."save") then
4509 write(unit,iostat=err)
id%NELT_loc
4510 if(err.ne.0) then
4514 endif
4516 &
id%COMM,
id%MYID )
4517 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4518 elseif(trim(mode).EQ."restore") then
4519 size_variables(i1)=size_int
4520 read(unit,iostat=err)
id%NELT_loc
4521 if(err.ne.0) THEN
4525 endif
4527 &
id%COMM,
id%MYID )
4528 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4529 endif
4530 CASE("LELTVAR")
4531 nbrecords(i1)=1
4532 if(trim(mode).EQ."memory_save") then
4533 size_variables(i1)=size_int
4534 elseif(trim(mode).EQ."save") then
4535 write(unit,iostat=err)
id%LELTVAR
4536 if(err.ne.0) then
4540 endif
4542 &
id%COMM,
id%MYID )
4543 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4544 elseif(trim(mode).EQ."restore") then
4545 size_variables(i1)=size_int
4546 read(unit,iostat=err)
id%LELTVAR
4547 if(err.ne.0) THEN
4551 endif
4553 &
id%COMM,
id%MYID )
4554 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4555 endif
4556 CASE("ELTPROC")
4557 nbrecords(i1)=2
4558 if(trim(mode).EQ."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
4562 ELSE
4563 size_gest(i1)=size_int*2
4564 size_variables(i1)=0_8
4565 ENDIF
4566 elseif(trim(mode).EQ."save") then
4567 IF(
associated(
id%ELTPROC))
THEN
4568 write(unit,iostat=err)
size(
id%ELTPROC,1)
4569 if(err.ne.0) then
4573 endif
4575 &
id%COMM,
id%MYID )
4576 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4577 write(unit,iostat=err)
id%ELTPROC
4578 ELSE
4579 write(unit,iostat=err) -999
4580 if(err.ne.0) then
4584 endif
4586 &
id%COMM,
id%MYID )
4587 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4588 write(unit,iostat=err) -999
4589 ENDIF
4590 if(err.ne.0) then
4594 endif
4596 &
id%COMM,
id%MYID )
4597 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4598 elseif(trim(mode).EQ."restore") then
4600 read(unit,iostat=err) size_array1
4601 if(err.ne.0) THEN
4605 endif
4607 &
id%COMM,
id%MYID )
4608 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4609 if(size_array1.EQ.-999) then
4610 size_gest(i1)=size_int*2
4611 size_variables(i1)=0_8
4612 read(unit,iostat=err) dummy
4613 else
4614 size_gest(i1)=size_int
4615 size_variables(i1)=size_array1*size_int
4616 allocate(
id%ELTPROC(size_array1), stat=allocok)
4617 if (allocok .GT. 0) THEN
4620 & total_struc_size-size_allocated
4622 endif
4623 read(unit,iostat=err)
id%ELTPROC
4624 endif
4626 &
id%COMM,
id%MYID )
4627 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4628 if(err.ne.0) THEN
4632 endif
4634 &
id%COMM,
id%MYID )
4635 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4636 endif
4637 CASE("I4_L0_OMP")
4638 nbrecords(i1)=2
4639 if(trim(mode).EQ."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
4644 ELSE
4645 size_gest(i1)=size_int*3
4646 size_variables(i1)=0_8
4647 ENDIF
4648 elseif(trim(mode).EQ."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)
4652 if(err.ne.0) then
4656 endif
4658 &
id%COMM,
id%MYID )
4659 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4660 write(unit,iostat=err)
id%I4_L0_OMP
4661 ELSE
4662 write(unit,iostat=err) -999,-998
4663 if(err.ne.0) then
4667 endif
4669 &
id%COMM,
id%MYID )
4670 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4671 write(unit,iostat=err) -999
4672 ENDIF
4673 if(err.ne.0) then
4677 endif
4679 &
id%COMM,
id%MYID )
4680 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4681 elseif(trim(mode).EQ."restore") then
4682 nullify(
id%I4_L0_OMP)
4683 read(unit,iostat=err) size_array1,size_array2
4684 if(err.ne.0) THEN
4688 endif
4690 &
id%COMM,
id%MYID )
4691 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4692 if(size_array1.EQ.-999) then
4693 size_gest(i1)=size_int*3
4694 size_variables(i1)=0_8
4695 read(unit,iostat=err) dummy
4696 else
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)
4700 & , stat=allocok)
4701 if (allocok .GT. 0) THEN
4704 & total_struc_size-size_allocated
4706 endif
4707 read(unit,iostat=err)
id%I4_L0_OMP
4708 endif
4710 &
id%COMM,
id%MYID )
4711 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4712 if(err.ne.0) THEN
4716 endif
4718 &
id%COMM,
id%MYID )
4719 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4720 endif
4721 CASE("I8_L0_OMP")
4722 nbrecords(i1)=2
4723 if(trim(mode).EQ."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
4728 ELSE
4729 size_gest(i1)=size_int*3
4730 size_variables(i1)=0_8
4731 ENDIF
4732 elseif(trim(mode).EQ."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)
4736 if(err.ne.0) then
4740 endif
4742 &
id%COMM,
id%MYID )
4743 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4744 write(unit,iostat=err)
id%I8_L0_OMP
4745 ELSE
4746 write(unit,iostat=err) -999,-998
4747 if(err.ne.0) then
4751 endif
4753 &
id%COMM,
id%MYID )
4754 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4755 write(unit,iostat=err) -999
4756 ENDIF
4757 if(err.ne.0) then
4761 endif
4763 &
id%COMM,
id%MYID )
4764 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4765 elseif(trim(mode).EQ."restore") then
4766 nullify(
id%I8_L0_OMP)
4767 read(unit,iostat=err) size_array1,size_array2
4768 if(err.ne.0) THEN
4772 endif
4774 &
id%COMM,
id%MYID )
4775 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4776 if(size_array1.EQ.-999) then
4777 size_gest(i1)=size_int*3
4778 size_variables(i1)=0_8
4779 read(unit,iostat=err) dummy
4780 else
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)
4784 & , stat=allocok)
4785 if (allocok .GT. 0) THEN
4788 & total_struc_size-size_allocated
4790 endif
4791 read(unit,iostat=err)
id%I8_L0_OMP
4792 endif
4794 &
id%COMM,
id%MYID )
4795 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4796 if(err.ne.0) THEN
4800 endif
4802 &
id%COMM,
id%MYID )
4803 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4804 endif
4805 CASE("CANDIDATES")
4806 nbrecords(i1)=2
4807 if(trim(mode).EQ."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
4812 ELSE
4813 size_gest(i1)=size_int*3
4814 size_variables(i1)=0_8
4815 ENDIF
4816 elseif(trim(mode).EQ."save") then
4817 IF(
associated(
id%CANDIDATES))
THEN
4818 write(unit,iostat=err)
size(
id%CANDIDATES,1)
4819 & ,
size(
id%CANDIDATES,2)
4820 if(err.ne.0) then
4824 endif
4826 &
id%COMM,
id%MYID )
4827 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4828 write(unit,iostat=err)
id%CANDIDATES
4829 ELSE
4830 write(unit,iostat=err) -999,-998
4831 if(err.ne.0) then
4835 endif
4837 &
id%COMM,
id%MYID )
4838 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4839 write(unit,iostat=err) -999
4840 ENDIF
4841 if(err.ne.0) then
4845 endif
4847 &
id%COMM,
id%MYID )
4848 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4849 elseif(trim(mode).EQ."restore") then
4850 nullify(
id%CANDIDATES)
4851 read(unit,iostat=err) size_array1,size_array2
4852 if(err.ne.0) THEN
4856 endif
4858 &
id%COMM,
id%MYID )
4859 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4860 if(size_array1.EQ.-999) then
4861 size_gest(i1)=size_int*3
4862 size_variables(i1)=0_8
4863 read(unit,iostat=err) dummy
4864 else
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)
4868 & , stat=allocok)
4869 if (allocok .GT. 0) THEN
4872 & total_struc_size-size_allocated
4874 endif
4875 read(unit,iostat=err)
id%CANDIDATES
4876 endif
4878 &
id%COMM,
id%MYID )
4879 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4880 if(err.ne.0) THEN
4884 endif
4886 &
id%COMM,
id%MYID )
4887 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4888 endif
4889 CASE("ISTEP_TO_INIV2")
4890 nbrecords(i1)=2
4891 if(trim(mode).EQ."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
4895 ELSE
4896 size_gest(i1)=size_int*2
4897 size_variables(i1)=0_8
4898 ENDIF
4899 elseif(trim(mode).EQ."save") then
4900 IF(
associated(
id%ISTEP_TO_INIV2))
THEN
4901 write(unit,iostat=err)
size(
id%ISTEP_TO_INIV2,1)
4902 if(err.ne.0) then
4906 endif
4908 &
id%COMM,
id%MYID )
4909 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4910 write(unit,iostat=err)
id%ISTEP_TO_INIV2
4911 ELSE
4912 write(unit,iostat=err) -999
4913 if(err.ne.0) then
4917 endif
4919 &
id%COMM,
id%MYID )
4920 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4921 write(unit,iostat=err) -999
4922 ENDIF
4923 if(err.ne.0) then
4927 endif
4929 &
id%COMM,
id%MYID )
4930 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4931 elseif(trim(mode).EQ."restore") then
4932 nullify(
id%ISTEP_TO_INIV2)
4933 read(unit,iostat=err) size_array1
4934 if(err.ne.0) THEN
4938 endif
4940 &
id%COMM,
id%MYID )
4941 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4942 if(size_array1.EQ.-999) then
4943 size_gest(i1)=size_int*2
4944 size_variables(i1)=0_8
4945 read(unit,iostat=err) dummy
4946 else
4947 size_gest(i1)=size_int
4948 size_variables(i1)=size_array1*size_int
4949 allocate(
id%ISTEP_TO_INIV2(size_array1), stat=allocok)
4950 if (allocok .GT. 0) THEN
4953 & total_struc_size-size_allocated
4955 endif
4956 read(unit,iostat=err)
id%ISTEP_TO_INIV2
4957 endif
4959 &
id%COMM,
id%MYID )
4960 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4961 if(err.ne.0) THEN
4965 endif
4967 &
id%COMM,
id%MYID )
4968 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4969 endif
4970 CASE("FUTURE_NIV2")
4971 nbrecords(i1)=2
4972 if(trim(mode).EQ."memory_save") then
4973 IF(
associated(
id%FUTURE_NIV2))
THEN
4974 size_gest(i1)=size_int
4975 size_variables(i1)=
size(
id%FUTURE_NIV2,1)*size_int
4976 ELSE
4977 size_gest(i1)=size_int*2
4978 size_variables(i1)=0_8
4979 ENDIF
4980 elseif(trim(mode).EQ."save") then
4981 IF(
associated(
id%FUTURE_NIV2))
THEN
4982 write(unit,iostat=err)
size(
id%FUTURE_NIV2,1)
4983 if(err.ne.0) then
4987 endif
4989 &
id%COMM,
id%MYID )
4990 IF (
id%INFO(1) .LT. 0 )
GOTO 100
4991 write(unit,iostat=err)
id%FUTURE_NIV2
4992 ELSE
4993 write(unit,iostat=err) -999
4994 if(err.ne.0) then
4998 endif
5000 &
id%COMM,
id%MYID )
5001 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5002 write(unit,iostat=err) -999
5003 ENDIF
5004 if(err.ne.0) then
5008 endif
5010 &
id%COMM,
id%MYID )
5011 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5012 elseif(trim(mode).EQ."restore") then
5013 nullify(
id%FUTURE_NIV2)
5014 read(unit,iostat=err) size_array1
5015 if(err.ne.0) THEN
5019 endif
5021 &
id%COMM,
id%MYID )
5022 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5023 if(size_array1.EQ.-999) then
5024 size_gest(i1)=size_int*2
5025 size_variables(i1)=0_8
5026 read(unit,iostat=err) dummy
5027 else
5028 size_gest(i1)=size_int
5029 size_variables(i1)=size_array1*size_int
5030 allocate(
id%FUTURE_NIV2(size_array1), stat=allocok)
5031 if (allocok .GT. 0) THEN
5034 & total_struc_size-size_allocated
5036 endif
5037 read(unit,iostat=err)
id%FUTURE_NIV2
5038 endif
5040 &
id%COMM,
id%MYID )
5041 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5042 if(err.ne.0) THEN
5046 endif
5048 &
id%COMM,
id%MYID )
5049 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5050 endif
5051 CASE("TAB_POS_IN_PERE")
5052 nbrecords(i1)=2
5053 if(trim(mode).EQ."memory_save") then
5054 IF(
associated(
id%TAB_POS_IN_PERE))
THEN
5055 size_gest(i1)=size_int*2
5056 size_variables(i1)=
size(
id%TAB_POS_IN_PERE,1)
5057 & *
size(
id%TAB_POS_IN_PERE,2)*size_int
5058 ELSE
5059 size_gest(i1)=size_int*3
5060 size_variables(i1)=0_8
5061 ENDIF
5062 elseif(trim(mode).EQ."save") then
5063 IF(
associated(
id%TAB_POS_IN_PERE))
THEN
5064 write(unit,iostat=err)
size(
id%TAB_POS_IN_PERE,1)
5065 & ,
size(
id%TAB_POS_IN_PERE,2)
5066 if(err.ne.0) then
5070 endif
5072 &
id%COMM,
id%MYID )
5073 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5074 write(unit,iostat=err)
id%TAB_POS_IN_PERE
5075 ELSE
5076 write(unit,iostat=err) -999,-998
5077 if(err.ne.0) then
5081 endif
5083 &
id%COMM,
id%MYID )
5084 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5085 write(unit,iostat=err) -999
5086 ENDIF
5087 if(err.ne.0) then
5091 endif
5093 &
id%COMM,
id%MYID )
5094 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5095 elseif(trim(mode).EQ."restore") then
5096 nullify(
id%TAB_POS_IN_PERE)
5097 read(unit,iostat=err) size_array1,size_array2
5098 if(err.ne.0) THEN
5102 endif
5104 &
id%COMM,
id%MYID )
5105 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5106 if(size_array1.EQ.-999) then
5107 size_gest(i1)=size_int*3
5108 size_variables(i1)=0_8
5109 read(unit,iostat=err) dummy
5110 else
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)
5114 & , stat=allocok)
5115 if (allocok .GT. 0) THEN
5118 & total_struc_size-size_allocated
5120 endif
5121 read(unit,iostat=err)
id%TAB_POS_IN_PERE
5122 endif
5124 &
id%COMM,
id%MYID )
5125 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5126 if(err.ne.0) THEN
5130 endif
5132 &
id%COMM,
id%MYID )
5133 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5134 endif
5135 CASE("I_AM_CAND")
5136 nbrecords(i1)=2
5137 if(trim(mode).EQ."memory_save") then
5138 IF(
associated(
id%I_AM_CAND))
THEN
5139 size_gest(i1)=size_int
5140 size_variables(i1)=
size(
id%I_AM_CAND,1)*size_logical
5141 ELSE
5142 size_gest(i1)=size_int*2
5143 size_variables(i1)=0_8
5144 ENDIF
5145 elseif(trim(mode).EQ."save") then
5146 IF(
associated(
id%I_AM_CAND))
THEN
5147 write(unit,iostat=err)
size(
id%I_AM_CAND,1)
5148 if(err.ne.0) then
5152 endif
5154 &
id%COMM,
id%MYID )
5155 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5156 write(unit,iostat=err)
id%I_AM_CAND
5157 ELSE
5158 write(unit,iostat=err) -999
5159 if(err.ne.0) then
5163 endif
5165 &
id%COMM,
id%MYID )
5166 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5167 write(unit,iostat=err) -999
5168 ENDIF
5169 if(err.ne.0) then
5173 endif
5175 &
id%COMM,
id%MYID )
5176 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5177 elseif(trim(mode).EQ."restore") then
5178 nullify(
id%I_AM_CAND)
5179 read(unit,iostat=err) size_array1
5180 if(err.ne.0) THEN
5184 endif
5186 &
id%COMM,
id%MYID )
5187 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5188 if(size_array1.EQ.-999) then
5189 size_gest(i1)=size_int*2
5190 size_variables(i1)=0_8
5191 read(unit,iostat=err) dummy
5192 else
5193 size_gest(i1)=size_int
5194 size_variables(i1)=size_array1*size_logical
5195 allocate(
id%I_AM_CAND(size_array1), stat=allocok)
5196 if (allocok .GT. 0) THEN
5199 & total_struc_size-size_allocated
5201 endif
5202 read(unit,iostat=err)
id%I_AM_CAND
5203 endif
5205 &
id%COMM,
id%MYID )
5206 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5207 if(err.ne.0) THEN
5211 endif
5213 &
id%COMM,
id%MYID )
5214 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5215 endif
5216 CASE("MEM_DIST")
5217 nbrecords(i1)=2
5218 if(trim(mode).EQ."memory_save") then
5219 IF(
associated(
id%MEM_DIST))
THEN
5220 size_gest(i1)=size_int
5221 size_variables(i1)=
size(
id%MEM_DIST,1)*size_int
5222 ELSE
5223 size_gest(i1)=size_int*2
5224 size_variables(i1)=0_8
5225 ENDIF
5226 elseif(trim(mode).EQ."save") then
5227 IF(
associated(
id%MEM_DIST))
THEN
5228 write(unit,iostat=err)
size(
id%MEM_DIST,1)
5229 if(err.ne.0) then
5233 endif
5235 &
id%COMM,
id%MYID )
5236 write(unit,iostat=err)
id%MEM_DIST
5237 ELSE
5238 write(unit,iostat=err) -999
5239 if(err.ne.0) then
5243 endif
5245 &
id%COMM,
id%MYID )
5246 write(unit,iostat=err) -999
5247 ENDIF
5248 if(err.ne.0) then
5252 endif
5254 &
id%COMM,
id%MYID )
5255 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5256 elseif(trim(mode).EQ."restore") then
5257 nullify(
id%MEM_DIST)
5258 read(unit,iostat=err) size_array1
5259 if(err.ne.0) THEN
5263 endif
5265 &
id%COMM,
id%MYID )
5266 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5267 if(size_array1.EQ.-999) then
5268 size_gest(i1)=size_int*2
5269 size_variables(i1)=0_8
5270 read(unit,iostat=err) dummy
5271 else
5272 size_gest(i1)=size_int
5273 size_variables(i1)=size_array1*size_int
5274 allocate(
id%MEM_DIST(0:size_array1-1), stat=allocok)
5275 if (allocok .GT. 0) THEN
5278 & total_struc_size-size_allocated
5280 endif
5281 read(unit,iostat=err)
id%MEM_DIST
5282 endif
5284 &
id%COMM,
id%MYID )
5285 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5286 if(err.ne.0) THEN
5290 endif
5292 &
id%COMM,
id%MYID )
5293 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5294 endif
5295 CASE("POSINRHSCOMP_ROW")
5296 nbrecords(i1)=2
5297 if(trim(mode).EQ."memory_save") then
5298 IF(
associated(
id%POSINRHSCOMP_ROW))
THEN
5299 size_gest(i1)=size_int
5300 size_variables(i1)=
5301 &
size(
id%POSINRHSCOMP_ROW,1)*size_int
5302 ELSE
5303 size_gest(i1)=size_int*2
5304 size_variables(i1)=0_8
5305 ENDIF
5306 elseif(trim(mode).EQ."save") then
5307 IF(
associated(
id%POSINRHSCOMP_ROW))
THEN
5308 write(unit,iostat=err)
size(
id%POSINRHSCOMP_ROW,1)
5309 if(err.ne.0) then
5313 endif
5315 &
id%COMM,
id%MYID )
5316 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5317 write(unit,iostat=err)
id%POSINRHSCOMP_ROW
5318 ELSE
5319 write(unit,iostat=err) -999
5320 if(err.ne.0) then
5324 endif
5326 &
id%COMM,
id%MYID )
5327 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5328 write(unit,iostat=err) -999
5329 ENDIF
5330 if(err.ne.0) then
5334 endif
5336 &
id%COMM,
id%MYID )
5337 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5338 elseif(trim(mode).EQ."restore") then
5339 nullify(
id%POSINRHSCOMP_ROW)
5340 read(unit,iostat=err) size_array1
5341 if(err.ne.0) THEN
5345 endif
5347 &
id%COMM,
id%MYID )
5348 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5349 if(size_array1.EQ.-999) then
5350 size_gest(i1)=size_int*2
5351 size_variables(i1)=0_8
5352 read(unit,iostat=err) dummy
5353 else
5354 size_gest(i1)=size_int
5355 size_variables(i1)=size_array1*size_int
5356 allocate(
id%POSINRHSCOMP_ROW(size_array1),
5357 & stat=allocok)
5358 if (allocok .GT. 0) THEN
5361 & total_struc_size-size_allocated
5363 endif
5364 read(unit,iostat=err)
id%POSINRHSCOMP_ROW
5365 endif
5367 &
id%COMM,
id%MYID )
5368 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5369 if(err.ne.0) THEN
5373 endif
5375 &
id%COMM,
id%MYID )
5376 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5377 endif
5378 CASE("POSINRHSCOMP_COL_ALLOC")
5379 nbrecords(i1)=1
5380 if(trim(mode).EQ."memory_save") then
5381 size_variables(i1)=size_logical
5382 elseif(trim(mode).EQ."save") then
5383 write(unit,iostat=err)
id%POSINRHSCOMP_COL_ALLOC
5384 if(err.ne.0) then
5388 endif
5390 &
id%COMM,
id%MYID )
5391 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5392 elseif(trim(mode).EQ."restore") then
5393 size_variables(i1)=size_logical
5394 read(unit,iostat=err)
id%POSINRHSCOMP_COL_ALLOC
5395 if(err.ne.0) THEN
5399 endif
5401 &
id%COMM,
id%MYID )
5402 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5403 endif
5404 CASE("POSINRHSCOMP_COL")
5405 nbrecords(i1)=2
5406 if(trim(mode).EQ."memory_save") then
5407 IF(
associated(
id%POSINRHSCOMP_COL))
THEN
5408 IF(
id%POSINRHSCOMP_COL_ALLOC)
THEN
5409 size_gest(i1)=size_int
5410 size_variables(i1)=
5411 &
size(
id%POSINRHSCOMP_COL,1)*size_int
5412 ELSE
5413 size_gest(i1)=size_int*2
5414 size_variables(i1)=0_8
5415 ENDIF
5416 ELSE
5417 size_gest(i1)=size_int*2
5418 size_variables(i1)=0_8
5419 ENDIF
5420 elseif(trim(mode).EQ."save") then
5421 IF(
associated(
id%POSINRHSCOMP_COL))
THEN
5422 IF(
id%POSINRHSCOMP_COL_ALLOC)
THEN
5423 write(unit,iostat=err)
size(
id%POSINRHSCOMP_COL,1)
5424 if(err.ne.0) then
5427 & total_file_size-size_written,
5429 endif
5431 &
id%COMM,
id%MYID )
5432 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5433 write(unit,iostat=err)
id%POSINRHSCOMP_COL
5434 ELSE
5435 write(unit,iostat=err)
size(
id%POSINRHSCOMP_COL,1)
5436 if(err.ne.0) then
5439 & total_file_size-size_written,
5441 endif
5443 &
id%COMM,
id%MYID )
5444 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5445 write(unit,iostat=err) -999
5446 ENDIF
5447 ELSE
5448 write(unit,iostat=err) -999
5449 if(err.ne.0) then
5453 endif
5455 &
id%COMM,
id%MYID )
5456 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5457 write(unit,iostat=err) -999
5458 ENDIF
5459 if(err.ne.0) then
5463 endif
5465 &
id%COMM,
id%MYID )
5466 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5467 elseif(trim(mode).EQ."restore") then
5468 nullify(
id%POSINRHSCOMP_COL)
5469 read(unit,iostat=err) size_array1
5470 if(err.ne.0) THEN
5474 endif
5476 &
id%COMM,
id%MYID )
5477 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5478 if(size_array1.EQ.-999) then
5479 size_gest(i1)=size_int*2
5480 size_variables(i1)=0_8
5481 read(unit,iostat=err) dummy
5482 else
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),
5487 & stat=allocok)
5488 if (allocok .GT. 0) THEN
5491 & total_struc_size-size_allocated
5493 endif
5494 read(unit,iostat=err)
id%POSINRHSCOMP_COL
5495 else
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
5500 endif
5501 endif
5503 &
id%COMM,
id%MYID )
5504 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5505 if(err.ne.0) THEN
5509 endif
5511 &
id%COMM,
id%MYID )
5512 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5513 endif
5514 CASE("RHSCOMP")
5515 nbrecords(i1)=2
5516 if(trim(mode).EQ."memory_save") then
5517 IF(
associated(
id%RHSCOMP))
THEN
5518 size_gest(i1)=size_int8
5519 size_variables(i1)=
id%KEEP8(25)*size_arith_dep
5520 ELSE
5521 size_gest(i1)=size_int8+size_int
5522 size_variables(i1)=0_8
5523 ENDIF
5524 elseif(trim(mode).EQ."save") then
5525 IF(
associated(
id%RHSCOMP))
THEN
5526 write(unit,iostat=err)
id%KEEP8(25)
5527 if(err.ne.0) then
5531 endif
5533 &
id%COMM,
id%MYID )
5534 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5535 write(unit,iostat=err)
id%RHSCOMP
5536 ELSE
5537 write(unit,iostat=err) int(-999,8)
5538 if(err.ne.0) then
5542 endif
5544 &
id%COMM,
id%MYID )
5545 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5546 write(unit,iostat=err) -999
5547 ENDIF
5548 if(err.ne.0) then
5552 endif
5554 &
id%COMM,
id%MYID )
5555 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5556 elseif(trim(mode).EQ."restore") then
5558 read(unit,iostat=err) size_array_int8_1
5559 if(err.ne.0) THEN
5563 endif
5565 &
id%COMM,
id%MYID )
5566 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5567 if(size_array_int8_1.EQ.int(-999,8)) then
5568 size_gest(i1)=size_int8+size_int
5569 size_variables(i1)=0_8
5570 read(unit,iostat=err) dummy
5571 else
5572 size_gest(i1)=size_int8
5573 size_variables(i1)=size_array_int8_1*size_arith_dep
5574 allocate(
id%RHSCOMP(size_array_int8_1), stat=allocok)
5575 if (allocok .GT. 0) THEN
5578 & total_struc_size-size_allocated
5580 endif
5581 read(unit,iostat=err)
id%RHSCOMP
5582 endif
5584 &
id%COMM,
id%MYID )
5585 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5586 if(err.ne.0) THEN
5590 endif
5592 &
id%COMM,
id%MYID )
5593 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5594 endif
5595 CASE("MEM_SUBTREE")
5596 nbrecords(i1)=2
5597 if(trim(mode).EQ."memory_save") then
5598 IF(
associated(
id%MEM_SUBTREE))
THEN
5599 size_gest(i1)=size_int
5600 size_variables(i1)=
5601 &
size(
id%MEM_SUBTREE,1)*size_double_precision
5602 ELSE
5603 size_gest(i1)=size_int*2
5604 size_variables(i1)=0_8
5605 ENDIF
5606 elseif(trim(mode).EQ."save") then
5607 IF(
associated(
id%MEM_SUBTREE))
THEN
5608 write(unit,iostat=err)
size(
id%MEM_SUBTREE,1)
5609 if(err.ne.0) then
5613 endif
5615 &
id%COMM,
id%MYID )
5616 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5617 write(unit,iostat=err)
id%MEM_SUBTREE
5618 ELSE
5619 write(unit,iostat=err) -999
5620 if(err.ne.0) then
5624 endif
5626 &
id%COMM,
id%MYID )
5627 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5628 write(unit,iostat=err) -999
5629 ENDIF
5630 if(err.ne.0) then
5634 endif
5636 &
id%COMM,
id%MYID )
5637 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5638 elseif(trim(mode).EQ."restore") then
5639 nullify(
id%MEM_SUBTREE)
5640 read(unit,iostat=err) size_array1
5641 if(err.ne.0) THEN
5645 endif
5647 &
id%COMM,
id%MYID )
5648 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5649 if(size_array1.EQ.-999) then
5650 size_gest(i1)=size_int*2
5651 size_variables(i1)=0_8
5652 read(unit,iostat=err) dummy
5653 else
5654 size_gest(i1)=size_int
5655 size_variables(i1)=size_array1*size_double_precision
5656 allocate(
id%MEM_SUBTREE(size_array1), stat=allocok)
5657 if (allocok .GT. 0) THEN
5660 & total_struc_size-size_allocated
5662 endif
5663 read(unit,iostat=err)
id%MEM_SUBTREE
5664 endif
5666 &
id%COMM,
id%MYID )
5667 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5668 if(err.ne.0) THEN
5672 endif
5674 &
id%COMM,
id%MYID )
5675 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5676 endif
5677 CASE("COST_TRAV")
5678 nbrecords(i1)=2
5679 if(trim(mode).EQ."memory_save") then
5680 IF(
associated(
id%COST_TRAV))
THEN
5681 size_gest(i1)=size_int
5682 size_variables(i1)=
5683 &
size(
id%COST_TRAV,1)*size_double_precision
5684 ELSE
5685 size_gest(i1)=size_int*2
5686 size_variables(i1)=0_8
5687 ENDIF
5688 elseif(trim(mode).EQ."save") then
5689 IF(
associated(
id%COST_TRAV))
THEN
5690 write(unit,iostat=err)
size(
id%COST_TRAV,1)
5691 if(err.ne.0) then
5695 endif
5697 &
id%COMM,
id%MYID )
5698 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5699 write(unit,iostat=err)
id%COST_TRAV
5700 ELSE
5701 write(unit,iostat=err) -999
5702 if(err.ne.0) then
5706 endif
5708 &
id%COMM,
id%MYID )
5709 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5710 write(unit,iostat=err) -999
5711 ENDIF
5712 if(err.ne.0) then
5716 endif
5718 &
id%COMM,
id%MYID )
5719 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5720 elseif(trim(mode).EQ."restore") then
5721 nullify(
id%COST_TRAV)
5722 read(unit,iostat=err) size_array1
5723 if(err.ne.0) THEN
5727 endif
5729 &
id%COMM,
id%MYID )
5730 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5731 if(size_array1.EQ.-999) then
5732 size_gest(i1)=size_int*2
5733 size_variables(i1)=0_8
5734 read(unit,iostat=err) dummy
5735 else
5736 size_gest(i1)=size_int
5737 size_variables(i1)=size_array1*size_double_precision
5738 allocate(
id%COST_TRAV(size_array1), stat=allocok)
5739 if (allocok .GT. 0) THEN
5742 & total_struc_size-size_allocated
5744 endif
5745 read(unit,iostat=err)
id%COST_TRAV
5746 endif
5748 &
id%COMM,
id%MYID )
5749 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5750 if(err.ne.0) THEN
5754 endif
5756 &
id%COMM,
id%MYID )
5757 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5758 endif
5759 CASE("MY_ROOT_SBTR")
5760 nbrecords(i1)=2
5761 if(trim(mode).EQ."memory_save") then
5762 IF(
associated(
id%MY_ROOT_SBTR))
THEN
5763 size_gest(i1)=size_int
5764 size_variables(i1)=
size(
id%MY_ROOT_SBTR,1)*size_int
5765 ELSE
5766 size_gest(i1)=size_int*2
5767 size_variables(i1)=0_8
5768 ENDIF
5769 elseif(trim(mode).EQ."save") then
5770 IF(
associated(
id%MY_ROOT_SBTR))
THEN
5771 write(unit,iostat=err)
size(
id%MY_ROOT_SBTR,1)
5772 if(err.ne.0) then
5776 endif
5778 &
id%COMM,
id%MYID )
5779 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5780 write(unit,iostat=err)
id%MY_ROOT_SBTR
5781 ELSE
5782 write(unit,iostat=err) -999
5783 if(err.ne.0) then
5787 endif
5789 &
id%COMM,
id%MYID )
5790 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5791 write(unit,iostat=err) -999
5792 ENDIF
5793 if(err.ne.0) then
5797 endif
5799 &
id%COMM,
id%MYID )
5800 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5801 elseif(trim(mode).EQ."restore") then
5802 nullify(
id%MY_ROOT_SBTR)
5803 read(unit,iostat=err) size_array1
5804 if(err.ne.0) THEN
5808 endif
5810 &
id%COMM,
id%MYID )
5811 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5812 if(size_array1.EQ.-999) then
5813 size_gest(i1)=size_int*2
5814 size_variables(i1)=0_8
5815 read(unit,iostat=err) dummy
5816 else
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 if (allocok .GT. 0) THEN
5823 & total_struc_size-size_allocated
5825 endif
5826 read(unit,iostat=err)
id%MY_ROOT_SBTR
5827 endif
5829 &
id%COMM,
id%MYID )
5830 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5831 if(err.ne.0) THEN
5835 endif
5837 &
id%COMM,
id%MYID )
5838 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5839 endif
5840 CASE("MY_FIRST_LEAF")
5841 nbrecords(i1)=2
5842 if(trim(mode).EQ."memory_save") then
5843 IF(
associated(
id%MY_FIRST_LEAF))
THEN
5844 size_gest(i1)=size_int
5845 size_variables(i1)=
size(
id%MY_FIRST_LEAF,1)*size_int
5846 ELSE
5847 size_gest(i1)=size_int*2
5848 size_variables(i1)=0_8
5849 ENDIF
5850 elseif(trim(mode).EQ."save") then
5851 IF(
associated(
id%MY_FIRST_LEAF))
THEN
5852 write(unit,iostat=err)
size(
id%MY_FIRST_LEAF,1)
5853 if(err.ne.0) then
5857 endif
5859 &
id%COMM,
id%MYID )
5860 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5861 write(unit,iostat=err)
id%MY_FIRST_LEAF
5862 ELSE
5863 write(unit,iostat=err) -999
5864 if(err.ne.0) then
5868 endif
5870 &
id%COMM,
id%MYID )
5871 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5872 write(unit,iostat=err) -999
5873 ENDIF
5874 if(err.ne.0) then
5878 endif
5880 &
id%COMM,
id%MYID )
5881 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5882 elseif(trim(mode).EQ."restore") then
5883 nullify(
id%MY_FIRST_LEAF)
5884 read(unit,iostat=err) size_array1
5885 if(err.ne.0) THEN
5889 endif
5891 &
id%COMM,
id%MYID )
5892 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5893 if(size_array1.EQ.-999) then
5894 size_gest(i1)=size_int*2
5895 size_variables(i1)=0_8
5896 read(unit,iostat=err) dummy
5897 else
5898 size_gest(i1)=size_int
5899 size_variables(i1)=size_array1*size_int
5900 allocate(
id%MY_FIRST_LEAF(size_array1), stat=allocok)
5901 if (allocok .GT. 0) THEN
5904 & total_struc_size-size_allocated
5906 endif
5907 read(unit,iostat=err)
id%MY_FIRST_LEAF
5908 endif
5910 &
id%COMM,
id%MYID )
5911 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5912 if(err.ne.0) THEN
5916 endif
5918 &
id%COMM,
id%MYID )
5919 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5920 endif
5921 CASE("MY_NB_LEAF")
5922 nbrecords(i1)=2
5923 if(trim(mode).EQ."memory_save") then
5924 IF(
associated(
id%MY_NB_LEAF))
THEN
5925 size_gest(i1)=size_int
5926 size_variables(i1)=
size(
id%MY_NB_LEAF,1)*size_int
5927 ELSE
5928 size_gest(i1)=size_int*2
5929 size_variables(i1)=0_8
5930 ENDIF
5931 elseif(trim(mode).EQ."save") then
5932 IF(
associated(
id%MY_NB_LEAF))
THEN
5933 write(unit,iostat=err)
size(
id%MY_NB_LEAF,1)
5934 if(err.ne.0) then
5938 endif
5940 &
id%COMM,
id%MYID )
5941 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5942 write(unit,iostat=err)
id%MY_NB_LEAF
5943 ELSE
5944 write(unit,iostat=err) -999
5945 if(err.ne.0) then
5949 endif
5951 &
id%COMM,
id%MYID )
5952 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5953 write(unit,iostat=err) -999
5954 ENDIF
5955 if(err.ne.0) then
5959 endif
5961 &
id%COMM,
id%MYID )
5962 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5963 elseif(trim(mode).EQ."restore") then
5964 nullify(
id%MY_NB_LEAF)
5965 read(unit,iostat=err) size_array1
5966 if(err.ne.0) THEN
5970 endif
5972 &
id%COMM,
id%MYID )
5973 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5974 if(size_array1.EQ.-999) then
5975 size_gest(i1)=size_int*2
5976 size_variables(i1)=0_8
5977 read(unit,iostat=err) dummy
5978 else
5979 size_gest(i1)=size_int
5980 size_variables(i1)=size_array1*size_int
5981 allocate(
id%MY_NB_LEAF(size_array1), stat=allocok)
5982 if (allocok .GT. 0) THEN
5985 & total_struc_size-size_allocated
5987 endif
5988 read(unit,iostat=err)
id%MY_NB_LEAF
5989 endif
5991 &
id%COMM,
id%MYID )
5992 IF (
id%INFO(1) .LT. 0 )
GOTO 100
5993 if(err.ne.0) THEN
5997 endif
5999 &
id%COMM,
id%MYID )
6000 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6001 endif
6002 CASE("DEPTH_FIRST")
6003 nbrecords(i1)=2
6004 if(trim(mode).EQ."memory_save") then
6005 IF(
associated(
id%DEPTH_FIRST))
THEN
6006 size_gest(i1)=size_int
6007 size_variables(i1)=
size(
id%DEPTH_FIRST,1)*size_int
6008 ELSE
6009 size_gest(i1)=size_int*2
6010 size_variables(i1)=0_8
6011 ENDIF
6012 elseif(trim(mode).EQ."save") then
6013 IF(
associated(
id%DEPTH_FIRST))
THEN
6014 write(unit,iostat=err)
size(
id%DEPTH_FIRST,1)
6015 if(err.ne.0) then
6019 endif
6021 &
id%COMM,
id%MYID )
6022 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6023 write(unit,iostat=err)
id%DEPTH_FIRST
6024 ELSE
6025 write(unit,iostat=err) -999
6026 if(err.ne.0) then
6030 endif
6032 &
id%COMM,
id%MYID )
6033 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6034 write(unit,iostat=err) -999
6035 ENDIF
6036 if(err.ne.0) then
6040 endif
6042 &
id%COMM,
id%MYID )
6043 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6044 elseif(trim(mode).EQ."restore") then
6045 nullify(
id%DEPTH_FIRST)
6046 read(unit,iostat=err) size_array1
6047 if(err.ne.0) THEN
6051 endif
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
6059 else
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
6068 endif
6069 read(unit,iostat=err)
id%DEPTH_FIRST
6070 endif
6072 &
id%COMM,
id%MYID )
6073 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6074 if(err.ne.0) THEN
6078 endif
6080 &
id%COMM,
id%MYID )
6081 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6082 endif
6083 CASE("DEPTH_FIRST_SEQ")
6084 nbrecords(i1)=2
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
6089 ELSE
6090 size_gest(i1)=size_int*2
6091 size_variables(i1)=0_8
6092 ENDIF
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)
6096 if(err.ne.0) then
6100 endif
6102 &
id%COMM,
id%MYID )
6103 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6104 write(unit,iostat=err)
id%DEPTH_FIRST_SEQ
6105 ELSE
6106 write(unit,iostat=err) -999
6107 if(err.ne.0) then
6111 endif
6113 &
id%COMM,
id%MYID )
6114 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6115 write(unit,iostat=err) -999
6116 ENDIF
6117 if(err.ne.0) then
6121 endif
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
6128 if(err.ne.0) THEN
6132 endif
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
6140 else
6141 size_gest(i1)=size_int
6142 size_variables(i1)=size_array1*size_int
6143 allocate(
id%DEPTH_FIRST_SEQ(size_array1),
6144 & stat=allocok)
6145 if (allocok .GT. 0) THEN
6148 & total_struc_size-size_allocated
6150 endif
6151 read(unit,iostat=err)
id%DEPTH_FIRST_SEQ
6152 endif
6154 &
id%COMM,
id%MYID )
6155 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6156 if(err.ne.0) THEN
6160 endif
6162 &
id%COMM,
id%MYID )
6163 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6164 endif
6165 CASE("SBTR_ID")
6166 nbrecords(i1)=2
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
6171 ELSE
6172 size_gest(i1)=size_int*2
6173 size_variables(i1)=0_8
6174 ENDIF
6175 elseif(trim(mode).EQ."save") then
6176 IF(
associated(
id%SBTR_ID))
THEN
6177 write(unit,iostat=err)
size(
id%SBTR_ID,1)
6178 if(err.ne.0) then
6182 endif
6184 &
id%COMM,
id%MYID )
6185 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6186 write(unit,iostat=err)
id%SBTR_ID
6187 ELSE
6188 write(unit,iostat=err) -999
6189 if(err.ne.0) then
6193 endif
6195 &
id%COMM,
id%MYID )
6196 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6197 write(unit,iostat=err) -999
6198 ENDIF
6199 if(err.ne.0) then
6203 endif
6205 &
id%COMM,
id%MYID )
6206 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6207 elseif(trim(mode).EQ."restore") then
6209 read(unit,iostat=err) size_array1
6210 if(err.ne.0) THEN
6214 endif
6216 &
id%COMM,
id%MYID )
6217 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6218 if(size_array1.EQ.-999) then
6219 size_gest(i1)=size_int*2
6220 size_variables(i1)=0_8
6221 read(unit,iostat=err) dummy
6222 else
6223 size_gest(i1)=size_int
6224 size_variables(i1)=size_array1*size_int
6225 allocate(
id%SBTR_ID(size_array1), stat=allocok)
6226 if (allocok .GT. 0) THEN
6229 & total_struc_size-size_allocated
6231 endif
6232 read(unit,iostat=err)
id%SBTR_ID
6233 endif
6235 &
id%COMM,
id%MYID )
6236 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6237 if(err.ne.0) THEN
6241 endif
6243 &
id%COMM,
id%MYID )
6244 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6245 endif
6246 CASE("SCHED_DEP")
6247 CASE("SCHED_GRP")
6248 CASE("CROIX_MANU")
6249 CASE("WK_USER")
6250 CASE("NBSA_LOCAL")
6251 nbrecords(i1)=1
6252 if(trim(mode).EQ."memory_save") then
6253 size_variables(i1)=size_int
6254 elseif(trim(mode).EQ."save") then
6255 write(unit,iostat=err)
id%NBSA_LOCAL
6256 if(err.ne.0) then
6260 endif
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
6267 if(err.ne.0) THEN
6271 endif
6273 &
id%COMM,
id%MYID )
6274 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6275 endif
6276 CASE("LWK_USER")
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
6283 endif
6284 CASE("CB_SON_SIZE")
6285 CASE("INSTANCE_NUMBER")
6286 nbrecords(i1)=1
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
6291 if(err.ne.0) then
6295 endif
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
6302 if(err.ne.0) THEN
6306 endif
6308 &
id%COMM,
id%MYID )
6309 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6310 endif
6311 CASE("OOC_MAX_NB_NODES_FOR_ZONE")
6312 nbrecords(i1)=1
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
6317 if(err.ne.0) then
6321 endif
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
6328 if(err.ne.0) THEN
6332 endif
6334 &
id%COMM,
id%MYID )
6335 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6336 endif
6337 CASE("OOC_INODE_SEQUENCE")
6338 nbrecords(i1)=2
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
6344 ELSE
6345 size_gest(i1)=size_int*3
6346 size_variables(i1)=0_8
6347 ENDIF
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)
6352 if(err.ne.0) then
6356 endif
6358 &
id%COMM,
id%MYID )
6359 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6360 write(unit,iostat=err)
id%OOC_INODE_SEQUENCE
6361 ELSE
6362 write(unit,iostat=err) -999,-998
6363 if(err.ne.0) then
6367 endif
6369 &
id%COMM,
id%MYID )
6370 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6371 write(unit,iostat=err) -999
6372 ENDIF
6373 if(err.ne.0) then
6377 endif
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
6384 if(err.ne.0) THEN
6388 endif
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
6396 else
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
6406 endif
6407 read(unit,iostat=err)
id%OOC_INODE_SEQUENCE
6408 endif
6410 &
id%COMM,
id%MYID )
6411 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6412 if(err.ne.0) THEN
6416 endif
6418 &
id%COMM,
id%MYID )
6419 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6420 endif
6421 CASE("OOC_SIZE_OF_BLOCK")
6422 nbrecords(i1)=2
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
6428 ELSE
6429 size_gest(i1)=size_int*3
6430 size_variables(i1)=0_8
6431 ENDIF
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)
6436 if(err.ne.0) then
6440 endif
6442 &
id%COMM,
id%MYID )
6443 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6444 write(unit,iostat=err)
id%OOC_SIZE_OF_BLOCK
6445 ELSE
6446 write(unit,iostat=err) -999,-998
6447 if(err.ne.0) then
6451 endif
6453 &
id%COMM,
id%MYID )
6454 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6455 write(unit,iostat=err) -999
6456 ENDIF
6457 if(err.ne.0) then
6461 endif
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
6468 if(err.ne.0) THEN
6472 endif
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
6480 else
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
6490 endif
6491 read(unit,iostat=err)
id%OOC_SIZE_OF_BLOCK
6492 endif
6494 &
id%COMM,
id%MYID )
6495 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6496 if(err.ne.0) THEN
6500 endif
6502 &
id%COMM,
id%MYID )
6503 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6504 endif
6505 CASE("OOC_VADDR")
6506 nbrecords(i1)=2
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
6512 ELSE
6513 size_gest(i1)=size_int*3
6514 size_variables(i1)=0_8
6515 ENDIF
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)
6520 if(err.ne.0) then
6524 endif
6526 &
id%COMM,
id%MYID )
6527 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6528 write(unit,iostat=err)
id%OOC_VADDR
6529 ELSE
6530 write(unit,iostat=err) -999,-998
6531 if(err.ne.0) then
6535 endif
6537 &
id%COMM,
id%MYID )
6538 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6539 write(unit,iostat=err) -999
6540 ENDIF
6541 if(err.ne.0) then
6545 endif
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
6552 if(err.ne.0) THEN
6556 endif
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
6564 else
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),
6568 & stat=allocok)
6569 if (allocok .GT. 0) THEN
6572 & total_struc_size-size_allocated
6574 endif
6575 read(unit,iostat=err)
id%OOC_VADDR
6576 endif
6578 &
id%COMM,
id%MYID )
6579 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6580 if(err.ne.0) THEN
6584 endif
6586 &
id%COMM,
id%MYID )
6587 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6588 endif
6589 CASE("OOC_TOTAL_NB_NODES")
6590 nbrecords(i1)=2
6591 if(trim(mode).EQ."memory_save") then
6592 IF(
associated(
id%OOC_TOTAL_NB_NODES))
THEN
6593 size_gest(i1)=size_int
6594 size_variables(i1)=
6595 &
size(
id%OOC_TOTAL_NB_NODES,1)*size_int
6596 ELSE
6597 size_gest(i1)=size_int*2
6598 size_variables(i1)=0_8
6599 ENDIF
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)
6603 if(err.ne.0) then
6607 endif
6609 &
id%COMM,
id%MYID )
6610 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6611 write(unit,iostat=err)
id%OOC_TOTAL_NB_NODES
6612 ELSE
6613 write(unit,iostat=err) -999
6614 if(err.ne.0) then
6618 endif
6620 &
id%COMM,
id%MYID )
6621 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6622 write(unit,iostat=err) -999
6623 ENDIF
6624 if(err.ne.0) then
6628 endif
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
6635 if(err.ne.0) THEN
6639 endif
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
6647 else
6648 size_gest(i1)=size_int
6649 size_variables(i1)=size_array1*size_int
6650 allocate(
id%OOC_TOTAL_NB_NODES(size_array1),
6651 & stat=allocok)
6652 if (allocok .GT. 0) THEN
6655 & total_struc_size-size_allocated
6657 endif
6658 read(unit,iostat=err)
id%OOC_TOTAL_NB_NODES
6659 endif
6661 &
id%COMM,
id%MYID )
6662 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6663 if(err.ne.0) THEN
6667 endif
6669 &
id%COMM,
id%MYID )
6670 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6671 endif
6672 CASE("OOC_NB_FILES")
6673 CASE("OOC_NB_FILE_TYPE")
6674 CASE("OOC_FILE_NAMES")
6675 CASE("OOC_FILE_NAME_LENGTH")
6676 CASE("PIVNUL_LIST")
6677 nbrecords(i1)=2
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
6682 ELSE
6683 size_gest(i1)=size_int*2
6684 size_variables(i1)=0_8
6685 ENDIF
6686 elseif(trim(mode).EQ."save") then
6687 IF(
associated(
id%PIVNUL_LIST))
THEN
6688 write(unit,iostat=err)
size(
id%PIVNUL_LIST,1)
6689 if(err.ne.0) then
6693 endif
6695 &
id%COMM,
id%MYID )
6696 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6697 write(unit,iostat=err)
id%PIVNUL_LIST
6698 ELSE
6699 write(unit,iostat=err) -999
6700 if(err.ne.0) then
6704 endif
6706 &
id%COMM,
id%MYID )
6707 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6708 write(unit,iostat=err) -999
6709 ENDIF
6710 if(err.ne.0) then
6714 endif
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
6721 if(err.ne.0) THEN
6725 endif
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
6733 else
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
6742 endif
6743 read(unit,iostat=err)
id%PIVNUL_LIST
6744 endif
6746 &
id%COMM,
id%MYID )
6747 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6748 if(err.ne.0) THEN
6752 endif
6754 &
id%COMM,
id%MYID )
6755 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6756 endif
6757 CASE("SUP_PROC")
6758 CASE("IPTR_WORKING")
6759 nbrecords(i1)=2
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
6764 ELSE
6765 size_gest(i1)=size_int*2
6766 size_variables(i1)=0_8
6767 ENDIF
6768 elseif(trim(mode).EQ."save") then
6769 IF(
associated(
id%IPTR_WORKING))
THEN
6770 write(unit,iostat=err)
size(
id%IPTR_WORKING,1)
6771 if(err.ne.0) then
6775 endif
6777 &
id%COMM,
id%MYID )
6778 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6779 write(unit,iostat=err)
id%IPTR_WORKING
6780 ELSE
6781 write(unit,iostat=err) -999
6782 if(err.ne.0) then
6786 endif
6788 &
id%COMM,
id%MYID )
6789 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6790 write(unit,iostat=err) -999
6791 ENDIF
6792 if(err.ne.0) then
6796 endif
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
6803 if(err.ne.0) THEN
6807 endif
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
6815 else
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
6824 endif
6825 read(unit,iostat=err)
id%IPTR_WORKING
6826 endif
6828 &
id%COMM,
id%MYID )
6829 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6830 if(err.ne.0) THEN
6834 endif
6836 &
id%COMM,
id%MYID )
6837 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6838 endif
6839 CASE("WORKING")
6840 nbrecords(i1)=2
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
6845 ELSE
6846 size_gest(i1)=size_int*2
6847 size_variables(i1)=0_8
6848 ENDIF
6849 elseif(trim(mode).EQ."save") then
6850 IF(
associated(
id%WORKING))
THEN
6851 write(unit,iostat=err)
size(
id%WORKING,1)
6852 if(err.ne.0) then
6856 endif
6858 &
id%COMM,
id%MYID )
6859 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6860 write(unit,iostat=err)
id%WORKING
6861 ELSE
6862 write(unit,iostat=err) -999
6863 if(err.ne.0) then
6867 endif
6869 &
id%COMM,
id%MYID )
6870 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6871 write(unit,iostat=err) -999
6872 ENDIF
6873 if(err.ne.0) then
6877 endif
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
6884 if(err.ne.0) THEN
6888 endif
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
6896 else
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
6905 endif
6906 read(unit,iostat=err)
id%WORKING
6907 endif
6909 &
id%COMM,
id%MYID )
6910 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6911 if(err.ne.0) THEN
6915 endif
6917 &
id%COMM,
id%MYID )
6918 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6919 endif
6920 CASE("root")
6921 DO i2=1,nbvariables_root
6922 tmp_string2 = variables_root(i2)
6923 SELECT CASE(tmp_string2)
6924 CASE("MBLOCK")
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
6930 if(err.ne.0) then
6934 endif
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
6941 if(err.ne.0) THEN
6945 endif
6947 &
id%COMM,
id%MYID )
6948 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6949 endif
6950 CASE("NBLOCK")
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
6956 if(err.ne.0) then
6960 endif
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
6967 if(err.ne.0) THEN
6971 endif
6973 &
id%COMM,
id%MYID )
6974 IF (
id%INFO(1) .LT. 0 )
GOTO 100
6975 endif
6976 CASE("NPROW")
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
6982 if(err.ne.0) then
6986 endif
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
6993 if(err.ne.0) THEN
6997 endif
6999 &
id%COMM,
id%MYID )
7000 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7001 endif
7002 CASE("NPCOL")
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
7008 if(err.ne.0) then
7012 endif
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
7019 if(err.ne.0) THEN
7023 endif
7025 &
id%COMM,
id%MYID )
7026 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7027 endif
7028 CASE("MYROW")
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
7035 if(err.ne.0) then
7039 endif
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
7046 if(err.ne.0) THEN
7050 endif
7052 &
id%COMM,
id%MYID )
7053 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7054 endif
7055 CASE("MYCOL")
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
7061 if(err.ne.0) then
7065 endif
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
7072 if(err.ne.0) THEN
7076 endif
7078 &
id%COMM,
id%MYID )
7079 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7080 endif
7081 CASE("SCHUR_MLOC")
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
7087 if(err.ne.0) then
7091 endif
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
7098 if(err.ne.0) THEN
7102 endif
7104 &
id%COMM,
id%MYID )
7105 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7106 endif
7107 CASE("SCHUR_NLOC")
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
7113 if(err.ne.0) then
7117 endif
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
7124 if(err.ne.0) THEN
7128 endif
7130 &
id%COMM,
id%MYID )
7131 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7132 endif
7133 CASE("SCHUR_LLD")
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
7139 if(err.ne.0) then
7143 endif
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
7150 if(err.ne.0) THEN
7154 endif
7156 &
id%COMM,
id%MYID )
7157 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7158 endif
7159 CASE("RHS_NLOC")
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
7165 if(err.ne.0) then
7169 endif
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
7176 if(err.ne.0) THEN
7180 endif
7182 &
id%COMM,
id%MYID )
7183 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7184 endif
7185 CASE("ROOT_SIZE")
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
7191 if(err.ne.0) then
7195 endif
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
7202 if(err.ne.0) THEN
7206 endif
7208 &
id%COMM,
id%MYID )
7209 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7210 endif
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
7217 if(err.ne.0) then
7221 endif
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
7228 if(err.ne.0) THEN
7232 endif
7234 &
id%COMM,
id%MYID )
7235 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7236 endif
7237 CASE("DESCRIPTOR")
7238 nbrecords_root(i2)=1
7239 if(trim(mode).EQ."memory_save") then
7240 size_variables_root(i2)=
size(
id%root%DESCRIPTOR,1)
7241 & *size_int
7242 elseif(trim(mode).EQ."save") then
7243 write(unit,iostat=err)
id%root%DESCRIPTOR
7244 if(err.ne.0) then
7248 endif
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
7256 if(err.ne.0) THEN
7260 endif
7262 &
id%COMM,
id%MYID )
7263 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7264 endif
7265 CASE("CNTXT_BLACS")
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
7271 if(err.ne.0) then
7275 endif
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
7282 if(err.ne.0) THEN
7286 endif
7288 &
id%COMM,
id%MYID )
7289 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7290 endif
7291 CASE("LPIV")
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
7297 if(err.ne.0) then
7301 endif
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
7308 if(err.ne.0) THEN
7312 endif
7314 &
id%COMM,
id%MYID )
7315 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7316 endif
7317 CASE("RG2L_ROW")
7318 CASE("RG2L_COL")
7319 CASE("IPIV")
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
7326 ELSE
7327 size_gest_root(i2)=size_int*2
7328 size_variables_root(i2)=0_8
7329 ENDIF
7330 elseif(trim(mode).EQ."save") then
7331 IF(
associated(
id%root%IPIV))
THEN
7332 write(unit,iostat=err)
size(
id%root%IPIV,1)
7333 if(err.ne.0) then
7336 & total_file_size-size_written
7338 endif
7340 &
id%COMM,
id%MYID )
7341 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7342 write(unit,iostat=err)
id%root%IPIV
7343 ELSE
7344 write(unit,iostat=err) -999
7345 if(err.ne.0) then
7348 & total_file_size-size_written
7350 endif
7352 &
id%COMM,
id%MYID )
7353 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7354 write(unit,iostat=err) -999
7355 ENDIF
7356 if(err.ne.0) then
7360 endif
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
7367 if(err.ne.0) THEN
7371 endif
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
7379 else
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
7388 endif
7389 read(unit,iostat=err)
id%root%IPIV
7390 endif
7392 &
id%COMM,
id%MYID )
7393 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7394 if(err.ne.0) THEN
7398 endif
7400 &
id%COMM,
id%MYID )
7401 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7402 endif
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)
7410 & *size_arith_dep
7411 ELSE
7412 size_gest_root(i2)=size_int*2
7413 size_variables_root(i2)=0_8
7414 ENDIF
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)
7419 if(err.ne.0) then
7422 & total_file_size-size_written
7424 endif
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
7429 ELSE
7430 write(unit,iostat=err) -999
7431 if(err.ne.0) then
7434 & total_file_size-size_written
7436 endif
7438 &
id%COMM,
id%MYID )
7439 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7440 write(unit,iostat=err) -999
7441 ENDIF
7442 if(err.ne.0) then
7446 endif
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
7453 if(err.ne.0) THEN
7457 endif
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
7465 else
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),
7469 & stat=allocok)
7470 if (allocok .GT. 0) THEN
7473 & total_struc_size-size_allocated
7475 endif
7476 read(unit,iostat=err)
id%root%RHS_CNTR_MASTER_ROOT
7477 endif
7479 &
id%COMM,
id%MYID )
7480 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7481 if(err.ne.0) THEN
7485 endif
7487 &
id%COMM,
id%MYID )
7488 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7489 endif
7490 CASE("SCHUR_POINTER")
7491 CASE("QR_TAU")
7492 CASE("RHS_ROOT")
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
7499 ELSE
7500 size_gest_root(i2)=size_int*3
7501 size_variables_root(i2)=0_8
7502 ENDIF
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)
7507 if(err.ne.0) then
7510 & total_file_size-size_written
7512 endif
7514 &
id%COMM,
id%MYID )
7515 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7516 write(unit,iostat=err)
id%root%RHS_ROOT
7517 ELSE
7518 write(unit,iostat=err) -999,-998
7519 if(err.ne.0) then
7522 & total_file_size-size_written
7524 endif
7526 &
id%COMM,
id%MYID )
7527 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7528 write(unit,iostat=err) -999
7529 ENDIF
7530 if(err.ne.0) then
7534 endif
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
7541 if(err.ne.0) THEN
7545 endif
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
7553 else
7554 size_gest_root(i2)=size_int*2
7555 size_variables_root(i2)=size_array1*size_array2
7556 & *size_arith_dep
7557 allocate(
id%root%RHS_ROOT(size_array1,size_array2),
7558 & stat=allocok)
7559 if (allocok .GT. 0) THEN
7562 & total_struc_size-size_allocated
7564 endif
7565 read(unit,iostat=err)
id%root%RHS_ROOT
7566 endif
7568 &
id%COMM,
id%MYID )
7569 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7570 if(err.ne.0) THEN
7574 endif
7576 &
id%COMM,
id%MYID )
7577 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7578 endif
7579 CASE("QR_RCOND")
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
7585 if(err.ne.0) then
7589 endif
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
7596 if(err.ne.0) THEN
7600 endif
7602 &
id%COMM,
id%MYID )
7603 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7604 endif
7605 CASE("yes")
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
7611 if(err.ne.0) then
7615 endif
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
7622 if(err.ne.0) THEN
7626 endif
7628 &
id%COMM,
id%MYID )
7629 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7630 endif
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
7637 if(err.ne.0) then
7641 endif
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
7648 if(err.ne.0) THEN
7652 endif
7654 &
id%COMM,
id%MYID )
7655 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7656 endif
7657 CASE("SVD_U")
7658 CASE("SVD_VT")
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
7666 if(err.ne.0) then
7670 endif
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
7677 if(err.ne.0) THEN
7681 endif
7683 &
id%COMM,
id%MYID )
7684 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7685 endif
7686 CASE("rootpad0","rootpad1","rootpad2","rootpad",
7687 & "rootpad3","rootpad4")
7688 CASE DEFAULT
7689 END SELECT
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
7694 ENDIF
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)
7701#endif
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)
7708 size_read=size_read
7709 & +int(2*
id%KEEP(34)*nbrecords_root(i2),kind=8)
7710#endif
7711 elseif(trim(mode).EQ."fake_restore") then
7712 endif
7713 ENDDO
7714 CASE("NBGRP")
7715 nbrecords(i1)=1
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
7720 if(err.ne.0) then
7724 endif
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
7731 if(err.ne.0) THEN
7735 endif
7737 &
id%COMM,
id%MYID )
7738 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7739 endif
7740 CASE("LRGROUPS")
7741 nbrecords(i1)=2
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
7746 ELSE
7747 size_gest(i1)=size_int*2
7748 size_variables(i1)=0_8
7749 ENDIF
7750 elseif(trim(mode).EQ."save") then
7751 IF(
associated(
id%LRGROUPS))
THEN
7752 write(unit,iostat=err)
size(
id%LRGROUPS,1)
7753 if(err.ne.0) then
7757 endif
7759 &
id%COMM,
id%MYID )
7760 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7761 write(unit,iostat=err)
id%LRGROUPS
7762 ELSE
7763 write(unit,iostat=err) -999
7764 if(err.ne.0) then
7768 endif
7770 &
id%COMM,
id%MYID )
7771 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7772 write(unit,iostat=err) -999
7773 ENDIF
7774 if(err.ne.0) then
7778 endif
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
7785 if(err.ne.0) THEN
7789 endif
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
7797 else
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
7806 endif
7807 read(unit,iostat=err)
id%LRGROUPS
7808 endif
7810 &
id%COMM,
id%MYID )
7811 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7812 if(err.ne.0) THEN
7816 endif
7818 &
id%COMM,
id%MYID )
7819 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7820 endif
7821 CASE("FDM_F_ENCODING")
7822 nbrecords(i1)=1
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
7827 CALL mumps_save_restore_front_data(
id%FDM_F_ENCODING
7828 & ,unit,
id%MYID,
"memory_save"
7829 & ,size_gest_front_data,size_variables_front_data
7830 & ,size_int,total_file_size,total_struc_size
7831 & ,size_read,size_allocated,size_written
7833 ENDIF
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)
7837 if(err.ne.0) then
7841 endif
7843 &
id%COMM,
id%MYID )
7844 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7845 CALL mumps_save_restore_front_data(
id%FDM_F_ENCODING
7846 & ,unit,
id%MYID,
"save"
7847 & ,size_gest_front_data,size_variables_front_data
7848 & ,size_int,total_file_size,total_struc_size
7849 & ,size_read,size_allocated,size_written
7851 ELSE
7852 write(unit,iostat=err) -999
7853 if(err.ne.0) then
7857 endif
7859 &
id%COMM,
id%MYID )
7860 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7861 ENDIF
7862 if(err.ne.0) then
7866 endif
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
7873 if(err.ne.0) THEN
7877 endif
7879 &
id%COMM,
id%MYID )
7880 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7881 if(size_array1.NE.-999) then
7882 CALL mumps_save_restore_front_data(
id%FDM_F_ENCODING
7883 & ,unit,
id%MYID,
"restore"
7884 & ,size_gest_front_data,size_variables_front_data
7885 & ,size_int,total_file_size,total_struc_size
7886 & ,size_read,size_allocated,size_written
7888 endif
7890 &
id%COMM,
id%MYID )
7891 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7892 if(err.ne.0) THEN
7896 endif
7898 &
id%COMM,
id%MYID )
7899 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7900 endif
7901 CASE("BLRARRAY_ENCODING")
7902 nbrecords(i1)=1
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
7907 CALL dmumps_save_restore_blr(
id%BLRARRAY_ENCODING
7908 & ,unit,
id%MYID,
"memory_save"
7909 & ,size_gest_blr,size_variables_blr
7910 & ,size_int, size_arith_dep, size_logical
7911 & ,total_file_size,total_struc_size
7912 & ,size_read,size_allocated,size_written
7914 ENDIF
7915 elseif(trim(mode).EQ."save") then
7916 IF(
associated(
id%BLRARRAY_ENCODING))
THEN
7917 write(unit,iostat=err)
size(
id%BLRARRAY_ENCODING,1)
7918 if(err.ne.0) then
7922 endif
7924 &
id%COMM,
id%MYID )
7925 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7926 CALL dmumps_save_restore_blr(
id%BLRARRAY_ENCODING
7927 & ,unit,
id%MYID,
"save"
7928 & ,size_gest_blr,size_variables_blr
7929 & ,size_int, size_arith_dep, size_logical
7930 & ,total_file_size,total_struc_size
7931 & ,size_read,size_allocated,size_written
7933 ELSE
7934 write(unit,iostat=err) -999
7935 if(err.ne.0) then
7939 endif
7941 &
id%COMM,
id%MYID )
7942 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7943 ENDIF
7944 if(err.ne.0) then
7948 endif
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
7955 if(err.ne.0) THEN
7959 endif
7961 &
id%COMM,
id%MYID )
7962 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7963 if(size_array1.NE.-999) then
7964 CALL dmumps_save_restore_blr(
id%BLRARRAY_ENCODING
7965 & ,unit,
id%MYID,
"restore"
7966 & ,size_gest_blr,size_variables_blr
7967 & ,size_int, size_arith_dep, size_logical
7968 & ,total_file_size,total_struc_size
7969 & ,size_read,size_allocated,size_written
7971 endif
7973 &
id%COMM,
id%MYID )
7974 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7975 if(err.ne.0) THEN
7979 endif
7981 &
id%COMM,
id%MYID )
7982 IF (
id%INFO(1) .LT. 0 )
GOTO 100
7983 endif
7984 CASE("L0_OMP_FACTORS")
7985 nbrecords(i1) =0
7986 size_gest(i1) =0
7987 size_variables(i1)=0_8
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
7995 CASE("SCHED_SBTR")
7996 CASE("LPOOL_A_L0_OMP")
7997 nbrecords(i1)=1
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
8002 if(err.ne.0) then
8006 endif
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
8013 if(err.ne.0) THEN
8017 endif
8019 &
id%COMM,
id%MYID )
8020 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8021 endif
8022 CASE("LPOOL_B_L0_OMP")
8023 nbrecords(i1)=1
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
8028 if(err.ne.0) then
8032 endif
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
8039 if(err.ne.0) THEN
8043 endif
8045 &
id%COMM,
id%MYID )
8046 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8047 endif
8048 CASE("L_PHYS_L0_OMP")
8049 nbrecords(i1)=1
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
8054 if(err.ne.0) then
8058 endif
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
8065 if(err.ne.0) THEN
8069 endif
8071 &
id%COMM,
id%MYID )
8072 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8073 endif
8074 CASE("L_VIRT_L0_OMP")
8075 nbrecords(i1)=1
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
8080 if(err.ne.0) then
8084 endif
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
8091 if(err.ne.0) THEN
8095 endif
8097 &
id%COMM,
id%MYID )
8098 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8099 endif
8100 CASE("LL0_OMP_MAPPING")
8101 nbrecords(i1)=1
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
8106 if(err.ne.0) then
8110 endif
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
8117 if(err.ne.0) THEN
8121 endif
8123 &
id%COMM,
id%MYID )
8124 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8125 endif
8126 CASE("LL0_OMP_FACTORS")
8127 nbrecords(i1)=1
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
8132 if(err.ne.0) then
8136 endif
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
8143 if(err.ne.0) THEN
8147 endif
8149 &
id%COMM,
id%MYID )
8150 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8151 endif
8152 CASE("THREAD_LA")
8153 nbrecords(i1)=1
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
8158 if(err.ne.0) then
8162 endif
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
8169 if(err.ne.0) THEN
8173 endif
8175 &
id%COMM,
id%MYID )
8176 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8177 endif
8178 CASE("IPOOL_A_L0_OMP")
8179 nbrecords(i1)=2
8180 if(trim(mode).EQ."memory_save") then
8181 IF(
associated(
id%IPOOL_A_L0_OMP))
THEN
8182 size_gest(i1)=size_int
8183 size_variables(i1)=
8184 &
size(
id%IPOOL_A_L0_OMP,1)*size_int
8185 ELSE
8186 size_gest(i1)=size_int*2
8187 size_variables(i1)=0_8
8188 ENDIF
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)
8192 if(err.ne.0) then
8196 endif
8198 &
id%COMM,
id%MYID )
8199 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8200 write(unit,iostat=err)
id%IPOOL_A_L0_OMP
8201 ELSE
8202 write(unit,iostat=err) -999
8203 if(err.ne.0) then
8207 endif
8209 &
id%COMM,
id%MYID )
8210 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8211 write(unit,iostat=err) -999
8212 ENDIF
8213 if(err.ne.0) then
8217 endif
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
8224 if(err.ne.0) THEN
8228 endif
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
8236 else
8237 size_gest(i1)=size_int
8238 size_variables(i1)=size_array1*size_int
8239 allocate(
id%IPOOL_A_L0_OMP(size_array1),
8240 & stat=allocok)
8241 if (allocok .GT. 0) THEN
8244 & total_struc_size-size_allocated
8246 endif
8247 read(unit,iostat=err)
id%IPOOL_A_L0_OMP
8248 endif
8250 &
id%COMM,
id%MYID )
8251 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8252 if(err.ne.0) THEN
8256 endif
8258 &
id%COMM,
id%MYID )
8259 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8260 endif
8261 CASE("IPOOL_B_L0_OMP")
8262 nbrecords(i1)=2
8263 if(trim(mode).EQ."memory_save") then
8264 IF(
associated(
id%IPOOL_B_L0_OMP))
THEN
8265 size_gest(i1)=size_int
8266 size_variables(i1)=
8267 &
size(
id%IPOOL_B_L0_OMP,1)*size_int
8268 ELSE
8269 size_gest(i1)=size_int*2
8270 size_variables(i1)=0_8
8271 ENDIF
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)
8275 if(err.ne.0) then
8279 endif
8281 &
id%COMM,
id%MYID )
8282 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8283 write(unit,iostat=err)
id%IPOOL_B_L0_OMP
8284 ELSE
8285 write(unit,iostat=err) -999
8286 if(err.ne.0) then
8290 endif
8292 &
id%COMM,
id%MYID )
8293 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8294 write(unit,iostat=err) -999
8295 ENDIF
8296 if(err.ne.0) then
8300 endif
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
8307 if(err.ne.0) THEN
8311 endif
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
8319 else
8320 size_gest(i1)=size_int
8321 size_variables(i1)=size_array1*size_int
8322 allocate(
id%IPOOL_B_L0_OMP(size_array1),
8323 & stat=allocok)
8324 if (allocok .GT. 0) THEN
8327 & total_struc_size-size_allocated
8329 endif
8330 read(unit,iostat=err)
id%IPOOL_B_L0_OMP
8331 endif
8333 &
id%COMM,
id%MYID )
8334 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8335 if(err.ne.0) THEN
8339 endif
8341 &
id%COMM,
id%MYID )
8342 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8343 endif
8344 CASE("PHYS_L0_OMP")
8345 nbrecords(i1)=2
8346 if(trim(mode).EQ."memory_save") then
8347 IF(
associated(
id%PHYS_L0_OMP))
THEN
8348 size_gest(i1)=size_int
8349 size_variables(i1)=
8350 &
size(
id%PHYS_L0_OMP,1)*size_int
8351 ELSE
8352 size_gest(i1)=size_int*2
8353 size_variables(i1)=0_8
8354 ENDIF
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)
8358 if(err.ne.0) then
8362 endif
8364 &
id%COMM,
id%MYID )
8365 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8366 write(unit,iostat=err)
id%PHYS_L0_OMP
8367 ELSE
8368 write(unit,iostat=err) -999
8369 if(err.ne.0) then
8373 endif
8375 &
id%COMM,
id%MYID )
8376 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8377 write(unit,iostat=err) -999
8378 ENDIF
8379 if(err.ne.0) then
8383 endif
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
8390 if(err.ne.0) THEN
8394 endif
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
8402 else
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
8411 endif
8412 read(unit,iostat=err)
id%PHYS_L0_OMP
8413 endif
8415 &
id%COMM,
id%MYID )
8416 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8417 if(err.ne.0) THEN
8421 endif
8423 &
id%COMM,
id%MYID )
8424 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8425 endif
8426 CASE("VIRT_L0_OMP")
8427 nbrecords(i1)=2
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
8432 ELSE
8433 size_gest(i1)=size_int*2
8434 size_variables(i1)=0_8
8435 ENDIF
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)
8439 if(err.ne.0) then
8443 endif
8445 &
id%COMM,
id%MYID )
8446 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8447 write(unit,iostat=err)
id%VIRT_L0_OMP
8448 ELSE
8449 write(unit,iostat=err) -999
8450 if(err.ne.0) then
8454 endif
8456 &
id%COMM,
id%MYID )
8457 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8458 write(unit,iostat=err) -999
8459 ENDIF
8460 if(err.ne.0) then
8464 endif
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
8471 if(err.ne.0) THEN
8475 endif
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
8483 else
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
8492 endif
8493 read(unit,iostat=err)
id%VIRT_L0_OMP
8494 endif
8496 &
id%COMM,
id%MYID )
8497 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8498 if(err.ne.0) THEN
8502 endif
8504 &
id%COMM,
id%MYID )
8505 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8506 endif
8507 CASE("VIRT_L0_OMP_MAPPING")
8508 nbrecords(i1)=2
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)
8513 & *size_int
8514 ELSE
8515 size_gest(i1)=size_int*2
8516 size_variables(i1)=0_8
8517 ENDIF
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)
8521 if(err.ne.0) then
8525 endif
8527 &
id%COMM,
id%MYID )
8528 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8529 write(unit,iostat=err)
id%VIRT_L0_OMP_MAPPING
8530 ELSE
8531 write(unit,iostat=err) -999
8532 if(err.ne.0) then
8536 endif
8538 &
id%COMM,
id%MYID )
8539 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8540 write(unit,iostat=err) -999
8541 ENDIF
8542 if(err.ne.0) then
8546 endif
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
8553 if(err.ne.0) THEN
8557 endif
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
8565 else
8566 size_gest(i1)=size_int
8567 size_variables(i1)=size_array1*size_int
8568 allocate(
id%VIRT_L0_OMP_MAPPING(size_array1),
8569 & stat=allocok)
8570 if (allocok .GT. 0) THEN
8573 & total_struc_size-size_allocated
8575 endif
8576 read(unit,iostat=err)
id%VIRT_L0_OMP_MAPPING
8577 endif
8579 &
id%COMM,
id%MYID )
8580 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8581 if(err.ne.0) THEN
8585 endif
8587 &
id%COMM,
id%MYID )
8588 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8589 endif
8590 CASE("PERM_L0_OMP")
8591 nbrecords(i1)=2
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
8596 ELSE
8597 size_gest(i1)=size_int*2
8598 size_variables(i1)=0_8
8599 ENDIF
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)
8603 if(err.ne.0) then
8607 endif
8609 &
id%COMM,
id%MYID )
8610 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8611 write(unit,iostat=err)
id%PERM_L0_OMP
8612 ELSE
8613 write(unit,iostat=err) -999
8614 if(err.ne.0) then
8618 endif
8620 &
id%COMM,
id%MYID )
8621 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8622 write(unit,iostat=err) -999
8623 ENDIF
8624 if(err.ne.0) then
8628 endif
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
8635 if(err.ne.0) THEN
8639 endif
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
8647 else
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
8656 endif
8657 read(unit,iostat=err)
id%PERM_L0_OMP
8658 endif
8660 &
id%COMM,
id%MYID )
8661 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8662 if(err.ne.0) THEN
8666 endif
8668 &
id%COMM,
id%MYID )
8669 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8670 endif
8671 CASE("PTR_LEAFS_L0_OMP")
8672 nbrecords(i1)=2
8673 if(trim(mode).EQ."memory_save") then
8674 IF(
associated(
id%PTR_LEAFS_L0_OMP))
THEN
8675 size_gest(i1)=size_int
8676 size_variables(i1)=
8677 &
size(
id%PTR_LEAFS_L0_OMP,1)*size_int
8678 ELSE
8679 size_gest(i1)=size_int*2
8680 size_variables(i1)=0_8
8681 ENDIF
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)
8685 if(err.ne.0) then
8689 endif
8691 &
id%COMM,
id%MYID )
8692 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8693 write(unit,iostat=err)
id%PTR_LEAFS_L0_OMP
8694 ELSE
8695 write(unit,iostat=err) -999
8696 if(err.ne.0) then
8700 endif
8702 &
id%COMM,
id%MYID )
8703 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8704 write(unit,iostat=err) -999
8705 ENDIF
8706 if(err.ne.0) then
8710 endif
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
8717 if(err.ne.0) THEN
8721 endif
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
8729 else
8730 size_gest(i1)=size_int
8731 size_variables(i1)=size_array1*size_int
8732 allocate(
id%PTR_LEAFS_L0_OMP(size_array1),
8733 & stat=allocok)
8734 if (allocok .GT. 0) THEN
8737 & total_struc_size-size_allocated
8739 endif
8740 read(unit,iostat=err)
id%PTR_LEAFS_L0_OMP
8741 endif
8743 &
id%COMM,
id%MYID )
8744 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8745 if(err.ne.0) THEN
8749 endif
8751 &
id%COMM,
id%MYID )
8752 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8753 endif
8754 CASE("L0_OMP_MAPPING")
8755 nbrecords(i1)=2
8756 if(trim(mode).EQ."memory_save") then
8757 IF(
associated(
id%L0_OMP_MAPPING))
THEN
8758 size_gest(i1)=size_int
8759 size_variables(i1)=
8760 &
size(
id%L0_OMP_MAPPING,1)*size_int
8761 ELSE
8762 size_gest(i1)=size_int*2
8763 size_variables(i1)=0_8
8764 ENDIF
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)
8768 if(err.ne.0) then
8772 endif
8774 &
id%COMM,
id%MYID )
8775 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8776 write(unit,iostat=err)
id%L0_OMP_MAPPING
8777 ELSE
8778 write(unit,iostat=err) -999
8779 if(err.ne.0) then
8783 endif
8785 &
id%COMM,
id%MYID )
8786 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8787 write(unit,iostat=err) -999
8788 ENDIF
8789 if(err.ne.0) then
8793 endif
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
8800 if(err.ne.0) THEN
8804 endif
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
8812 else
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
8821 endif
8822 read(unit,iostat=err)
id%L0_OMP_MAPPING
8823 endif
8825 &
id%COMM,
id%MYID )
8826 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8827 if(err.ne.0) THEN
8831 endif
8833 &
id%COMM,
id%MYID )
8834 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8835 endif
8836 CASE("SINGULAR_VALUES")
8837 CASE("NB_SINGULAR_VALUES")
8838 nbrecords(i1)=1
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
8843 if(err.ne.0) then
8847 endif
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
8854 if(err.ne.0) THEN
8858 endif
8860 &
id%COMM,
id%MYID )
8861 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8862 endif
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
8870 endif
8871 CASE("SAVE_DIR")
8872 nbrecords(i1)=1
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
8877 if(err.ne.0) then
8881 endif
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
8888 if(err.ne.0) THEN
8892 endif
8894 &
id%COMM,
id%MYID )
8895 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8896 endif
8897 CASE("SAVE_PREFIX")
8898 nbrecords(i1)=1
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
8903 if(err.ne.0) then
8907 endif
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
8914 if(err.ne.0) THEN
8918 endif
8920 &
id%COMM,
id%MYID )
8921 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8922 endif
8923 CASE("MPITOOMP_PROCS_MAP")
8924 nbrecords(i1)=2
8925 if(trim(mode).EQ."memory_save") then
8926 IF(
associated(
id%MPITOOMP_PROCS_MAP))
THEN
8927 size_gest(i1)=size_int
8928 size_variables(i1)=
8929 &
size(
id%MPITOOMP_PROCS_MAP,1)*size_int
8930 ELSE
8931 size_gest(i1)=size_int*2
8932 size_variables(i1)=0_8
8933 ENDIF
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)
8937 if(err.ne.0) then
8941 endif
8943 &
id%COMM,
id%MYID )
8944 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8945 write(unit,iostat=err)
id%MPITOOMP_PROCS_MAP
8946 ELSE
8947 write(unit,iostat=err) -999
8948 if(err.ne.0) then
8952 endif
8954 &
id%COMM,
id%MYID )
8955 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8956 write(unit,iostat=err) -999
8957 ENDIF
8958 if(err.ne.0) then
8962 endif
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
8969 if(err.ne.0) THEN
8973 endif
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
8981 else
8982 size_gest(i1)=size_int
8983 size_variables(i1)=size_array1*size_int
8984 allocate(
id%MPITOOMP_PROCS_MAP(size_array1),
8985 & stat=allocok)
8986 if (allocok .GT. 0) THEN
8989 & total_struc_size-size_allocated
8991 endif
8992 read(unit,iostat=err)
id%MPITOOMP_PROCS_MAP
8993 endif
8995 &
id%COMM,
id%MYID )
8996 IF (
id%INFO(1) .LT. 0 )
GOTO 100
8997 if(err.ne.0) THEN
9001 endif
9003 &
id%COMM,
id%MYID )
9004 IF (
id%INFO(1) .LT. 0 )
GOTO 100
9005 endif
9006 CASE("METIS_OPTIONS")
9007 nbrecords(i1)=1
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
9012 if(err.ne.0) then
9016 endif
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
9023 if(err.ne.0) THEN
9027 endif
9029 &
id%COMM,
id%MYID )
9030 IF (
id%INFO(1) .LT. 0 )
GOTO 100
9031 endif
9032 CASE("pad0","pad1","pad2","pad3","pad4","pad5","pad6","pad7",
9033 & "pad11","pad111", "pad12","pad13","pad14","pad15","pad16")
9034 CASE DEFAULT
9035 END SELECT
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
9040 ENDIF
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)
9047#endif
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)
9054 size_read=size_read
9055 & +int(2*
id%KEEP(34)*nbrecords(i1),kind=8)
9056#endif
9057 elseif(trim(mode).EQ."fake_restore") then
9058 endif
9059 ENDDO
9060 200 continue
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
9070 & +size_gest_l0fac
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)
9080 ELSE
9081 gest_size=gest_size+int(2*size_int,kind=8)
9082 ENDIF
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)
9086#endif
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.
9095 endif
9096 elseif(trim(mode).EQ."fake_restore") then
9097 elseif(trim(mode).EQ."restore_ooc") then
9098 endif
9099 100 continue
9100 deallocate(variables, variables_root)
9101 RETURN
subroutine blacs_gridinit(cntxt, c, nprow, npcol)
subroutine, public dmumps_save_restore_l0facarray(l0_omp_factors, unit, myid, mode, size_gest, size_variables, size_int, size_int8, size_arith_dep, total_file_size, total_struc_size, size_read, size_allocated, size_written, info)