166
167
168
169 USE connectivity_mod
170 USE nodal_arrays_mod
171 USE python_funct_mod
179 USE multi_fvm_mod
182 USE mat_elem_mod
186 USE sensor_mod
187 USE ebcs_mod
189 USE pblast_mod
195 USE output_mod
196 USE interfaces_mod
197 USE sensor_mod
198 USE loads_mod
200 USE bcs_mod , ONLY : bcs
201 USE skew_mod
207 use read_inivel_mod, only : read_inivel
208 use glob_therm_mod
209 use read_ale_grid_mod, only : read_ale_grid
210 use read_bcs_wall_mod, only : read_bcs_wall
211 use read_bcs_nrf_mod, only : read_bcs_nrf
212 use rbe3_mod
213 use restart_rbe3pen_mod, only : get_nrbe3pen_l,read_rrbe3pen
214 use checksum_output_option_mod
215 use element_mod , only : nixc
216 use rwall_mod
217 use restart_rwallpen_mod, only : get_nrwallpen_l,read_rrwallpen
218
219
220
221#include "implicit_f.inc"
222
223
224
225#include "mvsiz_p.inc"
226
227
228
229#include "com01_c.inc"
230#include "com04_c.inc"
231#include "com_xfem1.inc"
232#include "couple_c.inc"
233#include "intstamp_c.inc"
234#include "param_c.inc"
235#include "parit_c.inc"
236#include "remesh_c.inc"
237#include "scr06_c.inc"
238#include "scr03_c.inc"
239#include "scr05_c.inc"
240#include "scr07_c.inc"
241#include "scr14_c.inc"
242#include "scr16_c.inc"
243#include "scr19_c.inc"
244#include "scrcut_c.inc"
245#include "scrfs_c.inc"
246#include "scrnoi_c.inc"
247#include "scr_fac_c.inc"
248#include "sms_c.inc"
249#include "sphcom.inc"
250#include "spmd_c.inc"
251#include "tabsiz_c.inc"
252#include "task_c.inc"
253
254
255
256 INTEGER IAF(*),LVARREA,LEN_G,LEN_M, IRUNN
258 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
259 TYPE(H3D_DATABASE) :: H3D_DATA
260 TYPE(PINCH) :: PINCH_DATA
261 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
262 TYPE(MONVOL_STRUCT_),DIMENSION(NVOLU), INTENT(INOUT) :: T_MONVOL
263 TYPE(t_ebcs_tab), INTENT(INOUT) :: EBCS_TAB
264 TYPE(DYNAIN_DATABASE) ,INTENT(INOUT) :: DYNAIN_DATA
265 TYPE(USER_WINDOWS_) ,INTENT(INOUT) :: USER_WINDOWS
266 TYPE(OUTPUT_) ,INTENT(INOUT) :: OUTPUT
267 TYPE(INTERFACES_) ,INTENT(INOUT) :: INTERFACES
268 TYPE(SENSORS_) ,INTENT(INOUT) :: SENSORS
269 TYPE(LOADS_) ,INTENT(INOUT) :: LOADS
270 TYPE(MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
271 TYPE(PYTHON_) ,INTENT(INOUT) :: PYTHON
272 TYPE(SKEW_) ,INTENT(INOUT) :: SKEWS
273 TYPE(UNIT_TYPE_) ,INTENT(INOUT) :: UNITAB
274 TYPE (STACK_PLY) ,INTENT(INOUT) :: STACK
275 TYPE(DRAPE_) ,INTENT(INOUT) :: DRAPE_SH3N(NUMELTG_DRAPE),DRAPE_SH4N(NUMELC_DRAPE)
276 TYPE(DRAPEG_) ,INTENT(INOUT) :: DRAPEG
277 TYPE(GLOB_THERM_) ,INTENT(INOUT) :: GLOB_THERM
278 TYPE(PBLAST_) ,INTENT(INOUT) :: PBLAST
279 TYPE(connectivity_) ,INTENT(INOUT) :: ELEMENT
280 TYPE(nodal_arrays_) ,INTENT(INOUT) :: NODES
281 TYPE(RBE3_) ,INTENT(INOUT) :: RBE3
282 TYPE(RWALL_) ,INTENT(INOUT) :: RWALL
283 INTEGER, INTENT(IN) :: LIFLOW
284 INTEGER, INTENT(IN) :: LRFLOW
285 my_real,
INTENT(INOUT) :: forneqs(3,numnod)
286 INTEGER, INTENT(INOUT) :: IFLOW(LIFLOW)
287 my_real,
INTENT(INOUT) :: rflow(lrflow)
288 INTEGER, INTENT(IN) :: IMPL_S0
289 INTEGER, INTENT(IN) :: NDRAPE
290
291
292
293 INTEGER IDUMM(MVSIZ)
294 INTEGER I,J,LMXVREA, LEN,MY_ILEN,MY_RLEN,ISTAT,II,NS_DIFF
295 parameter(lmxvrea=1000+30*maxlaw+30)
297 INTEGER, DIMENSION(:), ALLOCATABLE::IBID
298 my_real,
DIMENSION(:),
ALLOCATABLE::rbid
299 DOUBLE PRECISION, DIMENSION(:),ALLOCATABLE :: XDPDUM
300 INTEGER, DIMENSION(NVOLU) :: NTRI
301 INTEGER, DIMENSION(:), ALLOCATABLE :: INTEGER_DATA
302 INTEGER :: INT1, INT2, INT3, INT0, ITMP
303 INTEGER :: MY_SIZE
304 INTEGER :: PYTHON_LEN
305 INTEGER, DIMENSION(:), ALLOCATABLE :: BUFFER
306 INTEGER :: SKEW_LEN
307 LOGICAL :: IS_EBCS_PARALLEL
308 INTEGER :: NPT,NRBE3PEN_L
309
310
311
312 DO i=1,lmxvrea
313 tabvrea(i)=zero
314 ENDDO
315 IF(lvarrea>lmxvrea)THEN
316 CALL ancmsg(msgid=33,anmode=aninfo,i1=lvarrea,i2=lmxvrea)
318 ENDIF
319
320
321
322
323 len_g = npropgi*numgeo
324 len_m = npropmi*nummat
325
327
328 CALL checksum_restart_read(output%CHECKSUM)
329
330 CALL read_i_c(nodes%NODGLOB,snodglob)
331
332 CALL read_i_c(nodes%MAIN_PROC,sweight)
333
335
337
339
341
343
345
347
349
351
353
354
355 ALLOCATE(buffer(python_len))
356 buffer(1) = python_len
357 CALL read_i_c(buffer(2:python_len), python_len-1)
358 CALL python_deserialize(python, buffer)
359 DEALLOCATE(buffer)
360
362
364
366
368
370
371 CALL read_i_c(element%shell%ixc,sixc)
372 DO i = 1, sixc / nixc
373 element%shell%nodes(1:4,i) = element%shell%ixc(2:5, i)
374 element%shell%pid(i) = element%shell%ixc(6, i)
375 element%shell%matid(i) = element%shell%ixc(1, i)
376 element%shell%user_id(i) = element%shell%ixc(7, i)
377 ENDDO
378 CALL init_global_shell_id(element%SHELL)
379
381
383
385
387
388 CALL init_global_node_id(nodes,numnod)
389
391
393
394 CALL read_i_c(ale_connectivity%NALE,
ale%GLOBAL%SNALE)
395
396 IF (iale + ieuler + ialelag + glob_therm%ITHERM /= 0) THEN
398 ALLOCATE(ale_connectivity%ee_connect%iad_connect(itmp))
399 CALL read_i_c(ale_connectivity%ee_connect%iad_connect, itmp)
400
402 ALLOCATE(ale_connectivity%ee_connect%connected(itmp))
403 CALL read_i_c(ale_connectivity%ee_connect%connected, itmp)
404
406 ALLOCATE(ale_connectivity%ee_connect%type(itmp))
407 CALL read_i_c(ale_connectivity%ee_connect%type, itmp)
408
410 ALLOCATE(ale_connectivity%ee_connect%iface2(itmp))
411 CALL read_i_c(ale_connectivity%ee_connect%iface2, itmp)
412 ENDIF
413
415
417
418 IF(ale_connectivity%has_ne_connect) THEN
425 ELSE
428 ENDIF
429 IF (iale > 0 .AND.
ale%GRID%NWALE_RST >= 0)
THEN
430 IF(ale_connectivity%has_nn_connect)THEN
431 ALLOCATE(ale_connectivity%NN_CONNECT%IAD_CONNECT(numnod + 1))
432 CALL read_i_c(ale_connectivity%NN_CONNECT%IAD_CONNECT, numnod + 1)
433 ALLOCATE(ale_connectivity%NN_CONNECT%CONNECTED(ale_connectivity%NN_CONNECT%IAD_CONNECT(numnod + 1)))
434 CALL read_i_c(ale_connectivity%NN_CONNECT%CONNECTED, ale_connectivity%NN_CONNECT%IAD_CONNECT(numnod + 1))
435 ENDIF
436 ENDIF
437 IF(ale_connectivity%has_ne_connect)THEN
438 ALLOCATE(ale_connectivity%NE_CONNECT%IAD_CONNECT(numnod + 1))
439 CALL read_i_c(ale_connectivity%NE_CONNECT%IAD_CONNECT, numnod + 1)
440 ALLOCATE(ale_connectivity%NE_CONNECT%CONNECTED(ale_connectivity%NE_CONNECT%IAD_CONNECT(numnod + 1)))
441 CALL read_i_c(ale_connectivity%NE_CONNECT%CONNECTED, ale_connectivity%NE_CONNECT%IAD_CONNECT(numnod + 1))
442 ENDIF
443
445 multi_fvm%NS_DIFF = .false.
446 IF (ns_diff == 1) THEN
447 multi_fvm%NS_DIFF = .true.
448 ale_connectivity%HAS_IDGLOB = .true.
449 IF (.NOT. ALLOCATED(ale_connectivity%IDGLOB%ID)) THEN
450 ALLOCATE(ale_connectivity%IDGLOB%ID(numels + nsvois + numelq + nqvois + numeltg + ntgvois))
451 ENDIF
452 IF (.NOT. ALLOCATED(ale_connectivity%IDGLOB%UID)) THEN
453 ALLOCATE(ale_connectivity%IDGLOB%UID(numels + nsvois + numelq + nqvois + numeltg + ntgvois))
454 ENDIF
455 IF (.NOT. ALLOCATED(multi_fvm%ELEM_DATA%CENTROID)) THEN
456 ALLOCATE(multi_fvm%ELEM_DATA%CENTROID(3, numels + nsvois + numelq + nqvois + numeltg + ntgvois))
457 ENDIF
458 IF (.NOT. ALLOCATED(multi_fvm%FACE_DATA%CENTROID)) THEN
459 ALLOCATE(multi_fvm%FACE_DATA%CENTROID(3, 6, numels + nsvois + numelq + nqvois + numeltg + ntgvois))
460 ENDIF
461 IF (.NOT. ALLOCATED(multi_fvm%VOL)) THEN
462 ALLOCATE(multi_fvm%VOL(numels + nsvois + numelq + nqvois + numeltg + ntgvois))
463 ENDIF
464 CALL read_i_c(ale_connectivity%IDGLOB%ID, numels + nsvois + numelq + nqvois + numeltg + ntgvois)
465 CALL read_i_c(ale_connectivity%IDGLOB%UID, numels + nsvois + numelq + nqvois + numeltg + ntgvois)
466 ENDIF
467
469
471
473
475
477
479
481
483
485
487
489
491
493
495
497
499
501
502 IF(nsphsol/=0)THEN
503
505
507
509
511 END IF
512
514
515 IF (nintloadp>0) THEN
518 ENDIF
519
521
523
525
526
527
532
533 ebcs_tab%nebcs = int0
534 ebcs_tab%nebcs_fvm = int1
535 ebcs_tab%nebcs_parallel = int2
536 ebcs_tab%nebcs_loc = int3
537
538 IF (int0 > 0) THEN
539 ALLOCATE(integer_data(int0))
540 CALL ebcs_tab%read_type_data(int0, integer_data)
541 ALLOCATE(ebcs_tab%my_typ(int0))
542 ALLOCATE(ebcs_tab%need_to_compute(int0))
543
544 ebcs_tab%my_typ(1:int0) = integer_data(1:int0)
545
546
547
548
549 DO ii=1,int0
550 ebcs_tab%need_to_compute(ii) = .false.
551 IF(ispmd /= 0) THEN
552 is_ebcs_parallel = .false.
553 IF(ebcs_tab%my_typ(ii) == 10 .or. ebcs_tab%my_typ(ii) == 11)is_ebcs_parallel = .true.
554 IF(is_ebcs_parallel) ebcs_tab%need_to_compute(ii) = .true.
555 ELSE
556 ebcs_tab%need_to_compute(ii) = .true.
557 ENDIF
558 ENDDO
559
560
561 CALL ebcs_tab%create_from_types(int1 + int2 + int3 , integer_data(1:int1 + int2 + int3 ))
562 ENDIF
563 !
read the data of /ebcs options
564 IF (int1 + int2 + int3 > 0) THEN
565 DO ii = 1, int1 + int2 + int3
566 CALL ebcs_tab%tab(ii)%poly%read_common_data()
567 CALL ebcs_tab%tab(ii)%poly%read_data()
568 ENDDO
569 ENDIF
570
571 ALLOCATE( ebcs_parithon(ebcs_tab%nebcs) )
572
573
575
577
579
581
583
585
587
589
591
593
595
597
599
601
602 CALL read_i_c(rbe3%IRBE3,rbe3%nrbe3*irbe3_variables)
603
604 CALL get_nrbe3pen_l(rbe3%nrbe3,irbe3_variables,rbe3%IRBE3,nrbe3pen_l)
605
606 CALL read_i_c(rbe3%LRBE3,rbe3%lrbe3_sz)
607
609
611
613
615
617
619
620
621
623
624
626
627 CALL read_i_c(rwall%NPRW,rwall%NNPRW*rwall%NRWALL)
628
629 CALL read_i_c(rwall%LPRW,rwall%SZ_LPRW)
630
632
634
636
638
640
642
644
646
648
650
652
654
656
658
660
662
664
666
668
670 DO ii = 1, nvolu
671 t_monvol(ii)%NB_FILL_TRI = ntri(ii)
672 IF (ntri(ii) > 0) THEN
673 ALLOCATE(t_monvol(ii)%FILL_TRI(3 * ntri
674 CALL read_i_c(t_monvol(ii)%FILL_TRI(1:3 * ntri(ii)), 3 * ntri
675 ENDIF
676 ENDDO
677
679
681
682
684
685 CALL thsurf_read_restart(output%TH%TH_SURF)
686
688
689 CALL read_i_c(nodes%BOUNDARY_ADD,siad_elem)
690
692
694
696
698
700
702
704
705 CALL read_i_c(rbe3%mpi%IAD_RBE3,nspmd+1)
706
708
710
712
714
715 CALL read_i_c(nodes%BOUNDARY,sfr_elem)
716
718
719 CALL read_i_c(rwall%FR_WALL,sfr_wall)
720
722
724
726
728
730
732
734
735 CALL read_i_c(rbe3%mpi%FR_RBE3,rbe3%mpi%fr_rbe3_sz)
736
737 CALL read_i_c(rbe3%mpi%FR_RBE3MP,rbe3%mpi%fr_rbe3_sz)
738
740
742
744
746
748
750
752
754
756
758
760
762
764
765 CALL read_i_c(interfaces%SPMD_ARRAYS%FR_EDG
766
767 CALL read_i_c(interfaces%SPMD_ARRAYS%IAD_FREDG,(nspmd+1)*ninter25)
768
769
771
773
775
777
779
781
783
785
787
789
791
793
795
797
799
801
803
805
807
809
811
813
815
817
818 nodes%WEIGHT_MD = nodes%WEIGHT
819
820
821 IF(icrack3d > 0)THEN
825 ENDIF
826
829
830
831
832
833 IF(iparit==1) THEN
834 CALL read_i_c(element%PON%ADSKY,numnod+1)
835
836 CALL read_i_c(element%PON%PROCNE,lcne0)
837
838 IF (i2nsnt > 0) THEN
840 ENDIF
842
843 IF(ns10e>0) THEN
845 ENDIF
847
848
849 CALL read_i_c(element%PON%IADS ,
SIZE(element%PON%IADS
850 CALL read_i_c(element%PON%IADS10
SIZE
851 CALL read_i_c(element%PON%IADS20 ,
SIZE(element%PON%IADS20
852 CALL read_i_c(element%PON%IADS16 ,
SIZE(element%PON%IADS16 )
853 CALL read_i_c(element%PON%IADQ ,
SIZE(element%PON%IADQ
854 CALL read_i_c(element%PON%IADC ,
SIZE(element%PON%IADC ))
855 CALL read_i_c(element%PON%IAD_TRUSS ,
SIZE(element%PON%IAD_TRUSS))
856 CALL read_i_c(element%PON%IAD_BEAM ,
SIZE(element%PON%IAD_BEAM ))
857 CALL read_i_c(element%PON%IAD_SPRING ,
SIZE(element%PON%IAD_SPRING ))
858 CALL read_i_c(element%PON%IAD_TG ,
SIZE(element%PON%IAD_TG
859 CALL read_i_c(element%PON%IAD_TG6 ,
SIZE(element%PON%IAD_TG6 ))
860 CALL read_i_c(element%PON%IAD_MV ,
SIZE(element%PON%IAD_MV ))
861 CALL read_i_c(element%PON%IAD_CONLD ,
SIZE(element%PON%IAD_CONLD))
862 CALL read_i_c(element%PON%IAD_CONV ,
SIZE(element%PON%IAD_CONV
863 CALL read_i_c(element%PON%IAD_RADIA ,
SIZE(element%PON%IAD_RADIA))
864 CALL read_i_c(element%PON%IAD_LOADP ,
SIZE(element%PON%IAD_LOADP))
865 CALL read_i_c(element%PON%IAD_FXFLUX ,
SIZE(element%PON%IAD_FXFLUX))
866
868
870
872
874
876
878
880
882
884
886
887
888
889 IF(iplyxfem > 0) THEN
891
894 ENDIF
895
896
897
898 IF (icrack3d > 0) THEN
904 ENDIF
905
906 ELSEIF(ipari0==1)THEN
907
908 len = numnod+1+lcne0+(numnod+1)*
min(1,i2nsnt)+lcni2
909 + + nisky0+nskyrw0+nskyrbk0+niskyi2+nskymv0
910 + + nskyll0+nskyrbm0+nskyi18+nskyrbe30+nskyrbmk0
911
912 IF(ns10e>0) len = len +saddcncnd+sprocncnd+siadcnd
913 IF(iplyxfem > 0)len = len
914 DO i = 1,len,mvsiz
916 ENDDO
917 ENDIF
918
919
920
921
922 IF(ebcs_tab%nebcs_parallel > 0) THEN
923 DO i=1,ebcs_tab%nebcs
924 is_ebcs_parallel = .false.
925 IF(ebcs_tab%my_typ(i)==10 .OR. ebcs_tab%my_typ
926 IF(is_ebcs_parallel) THEN
927 my_size = ebcs_tab%tab(i)%poly%nb_elem
928 ALLOCATE(ebcs_parithon(i)%ELEM_ADRESS(4,my_size))
929 CALL read_i_c(ebcs_parithon(i)%ELEM_ADRESS,4*my_size)
930 ENDIF
931 ENDDO
932 ENDIF
933
934
936
938
940
942
943 IF(nadmesh /= 0)THEN
947 len=abs(lsh4trim)
949 len=abs(lsh3trim)
951 END IF
952
953
954
956 . glob_therm%IDT_THERM,glob_therm%INTHEAT)
957
958
959
960
962
963 IF(nintstamp /= 0)THEN
965 END IF
966
967
968
969 IF(ninterfric /= 0)THEN
970 CALL intfric_rresti(interfaces%INTBUF_FRIC_TAB,ninterfric)
971 END IF
972
973
974
975 IF(ntable /= 0)THEN
977 END IF
978
980
981 IF (nloadc>0)THEN
984 ENDIF
985 IF (nloadp>0)THEN
988 ENDIF
989 IF (pblast%NLOADP_B>0)THEN
990 CALL pblast_load(pblast)
991 CALL pblast_init_tables(pblast%PBLAST_DATA)
992 ENDIF
993
994 IF (loads%NLOAD_CYL > 0) THEN
996 ENDIF
997
998 IF(icrack3d > 0)THEN
1004 END IF
1005
1008
1010
1011
1012
1013 IF(nbcscyc > 0)THEN
1016 END IF
1017
1018
1019
1021 bcs%NUM_WALL = itmp
1022 IF(bcs%NUM_WALL > 0)THEN
1023 CALL read_bcs_wall()
1024 ENDIF
1025
1026
1027
1029 bcs%NUM_NRF = itmp
1030 IF(bcs%NUM_NRF > 0)THEN
1031 CALL read_bcs_nrf()
1032 ENDIF
1033
1034
1035
1036
1037
1038
1039
1040
1041
1043
1044
1045 CALL rdcomr(lmxvrea,tabvrea,dynain_data,interfaces%PARAMETERS,
1046 . output,glob_therm)
1047
1048
1049
1055
1057
1059
1061
1063
1064 IF (n2d >0) THEN
1066 ENDIF
1067
1069
1071
1073
1075
1077
1078 skew_len = skews%N_SKEW_VAR*skews%TOTAL_SKEW_NUMBER
1079 CALL read_db(skews%SKEW,skew_len)
1080
1082
1084
1086
1088
1090
1092
1094
1096
1098
1100
1101 IF (multi_fvm%IS_USED) THEN
1102 CALL read_db(multi_fvm%PRES_SHIFT, 1)
1103 IF (n2d == 0) THEN
1104 CALL read_db(multi_fvm%VEL(1, :), numels)
1105 CALL read_db(multi_fvm%VEL(2, :), numels)
1106 CALL read_db(multi_fvm%VEL(3, :), numels)
1107 ELSE
1108 CALL read_db(multi_fvm%VEL(1, :), numelq + numeltg)
1109 CALL read_db(multi_fvm%VEL(2, :), numelq + numeltg)
1110 CALL read_db(multi_fvm%VEL(3, :), numelq + numeltg)
1111 ENDIF
1112 ENDIF
1113
1115
1117
1119
1121
1123
1125
1127
1129
1130 CALL read_db(sphveln,ssphveln)
1131
1133
1135
1137
1139
1141
1143
1144 CALL read_db(tab_mat,stab_mat)
1145
1147
1149
1151
1152 CALL read_db(gauge,llgauge*nbgauge)
1153
1155
1157
1158 CALL read_db(rbe3%FRBE3,rbe3%frbe3_sz)
1159
1160 CALL read_rrbe3pen(rbe3%PEN,nrbe3pen_l)
1161
1162 CALL read_db(factiv,lractiv*nactiv)
1163
1165
1166 CALL read_db(fr_wave,sfr_wave)
1167
1169
1171
1173
1175
1177
1179
1180 CALL read_db(rwall%RWBUF,rwall%nrwlp*rwall%nrwall)
1181
1182 CALL read_db(rwall%RWSAV,rwall%SZ_RWSAV)
1183
1184 CALL get_nrwallpen_l(rwall%nrwall,rwall%nnprw,rwall%nprw,rwall%nrwall_pen,rwall%pen%lnspen)
1185
1186 CALL read_rrwallpen(rwall%nrwall_pen,rwall%pen,rwall%pen%lnspen)
1187
1189
1191
1193
1195
1197
1199
1201
1202 CALL read_db(rcontact ,srcontact)
1203 CALL read_db(acontact ,srcontact)
1204 CALL read_db(pcontact ,srcontact)
1205
1206
1207 IF(irunn>1.OR.mcheck/=0)
CALL spmd_initfi(
ipari,2,h3d_data,interfaces%PARAMETERS,
1208 . glob_therm%IDT_THERM,glob_therm%INTHEAT)
1209
1210
1211
1213
1214
1215
1216 IF (iresmd==0.AND.npsav>=25) THEN
1217 CALL read_db(partsav,npsav*npart)
1218 ENDIF
1219
1220 IF(nnoise>0.AND. (irunn>1 .OR. mcheck/=0))THEN
1221
1223 CALL read_db(af(mf01),sfnoise)
1224 ENDIF
1225
1226 IF (iresp == 1) THEN
1227 IF (irxdp == 1) THEN
1230 ELSE
1231 CALL fillxdp(nodes%X,nodes%XDP,nodes%D,nodes%DDP)
1232
1233 irxdp=1
1234 ENDIF
1235
1236 ELSE
1237 IF (irxdp ==1)THEN
1238
1239 ALLOCATE(xdpdum(3*numnod))
1240
1242
1244 DEALLOCATE(xdpdum)
1245 irxdp=0
1246 ENDIF
1247 ENDIF
1248 npsav = 29
1249
1250
1251 IF(mcheck/=0)THEN
1254 IF(mod(irform,5)>=2.AND.mod(irform,5)<=4) THEN
1259
1265 ENDIF
1266 ELSE
1269 ALLOCATE(ibid(my_ilen),stat=istat)
1270 IF(istat/=0)THEN
1271 CALL ancmsg(msgid=20,anmode=aninfo)
1273 END IF
1274 ALLOCATE(rbid(my_rlen),stat=istat)
1275 IF(istat/=0)THEN
1276 CALL ancmsg(msgid=20,anmode=aninfo)
1278 END IF
1281 ENDIF
1282
1283 IF(nadmesh /= 0 .OR. irest_mselt /= 0)THEN
1289 END IF
1290
1291 IF(irest_mselt /= 0)THEN
1296 END IF
1297
1298 IF(nadmesh /= 0)THEN
1299 CALL read_db(padmesh,kpadmesh*npart)
1300 IF(glob_therm%ITHERM_FE > 0)THEN
1303 END IF
1304 END IF
1305
1311 ENDIF
1312
1313 IF(istatcnd /= 0)THEN
1316 ENDIF
1317
1318 IF(nintstamp /= 0)THEN
1320 END IF
1321 IF(nintskidold > 0) THEN
1322 IF(nintstamp/=0) THEN
1323 CALL read_db(pskids, nintskidold*numnodg)
1324 ELSE
1325 CALL read_db(pskids, nintskidold*numnod)
1326 ENDIF
1327 ENDIF
1329 IF(nintstamp/=0.AND.nspmd > 1 ) THEN
1330 IF(ispmd == 0)
CALL read_db(fcont_max, 3*numnodg)
1331 ELSE
1332 CALL read_db(fcont_max, 3*numnod)
1333 ENDIF
1334 ENDIF
1338 ENDIF
1340 CALL read_db(fcont2_max, 3*numnod)
1341 ENDIF
1343 CALL read_db(fncont2_max, 3*numnod)
1344 CALL read_db(ftcont2_max, 3*numnod)
1345 CALL read_db(npcont2_max, 3*numnod)
1346 ENDIF
1348 CALL read_db(fcont2_min, 3*numnod)
1349 ENDIF
1351 CALL read_db(fncont2_min, 3*numnod)
1352 CALL read_db(ftcont2_min, 3*numnod)
1353 CALL read_db(npcont2_min, 3*numnod)
1354 ENDIF
1355
1356 IF(output%DATA%S_EFRICINT >0)THEN
1357 IF(output%DATA%NINEFRIC > 0)
CALL read_db(output%DATA%EFRIC, output%DATA%NINEFRIC*numnod)
1358 IF(output%DATA%NINEFRIC_STAMP > 0)
CALL read_db(output%DATA%EFRIC_STAMP, output%DATA%NINEFRIC_STAMP*numnodg)
1359 ENDIF
1360 IF(output%DATA%S_EFRIC >0)THEN
1361 CALL read_db(output%DATA%EFRICG, numnod)
1362 IF(nintstamp/=0)
CALL read_db(output%DATA%EFRICG_STAMP, numnodg)
1363 ENDIF
1364
1365
1366
1367 IF(ninterfric /= 0)THEN
1368 CALL intfric_rrestr(interfaces%INTBUF_FRIC_TAB,ninterfric)
1369 END IF
1370
1371
1372 CALL read_db(nodes%MS0,numnod)
1374 IF(idtmins_old==1) THEN
1376 ELSEIF(idtmins_old==2) THEN
1383 END IF
1384 IF(idtmins_old/=0.OR.idtmins_int_old/=0)THEN
1385 CALL read_db(res_sms,3*numnod)
1386 END IF
1387 IF(idtmins_old==2.OR.idtmins_int_old/=0) THEN
1388
1389 CALL read_db(diag_sms ,numnod)
1390
1391 CALL read_db(dmint2 ,4*i2nsn25)
1392 END IF
1393 IF (isms_selec /= 0) THEN
1395 ENDIF
1396
1397
1398
1399 IF(ntable /= 0)THEN
1401 END IF
1402
1403
1404
1405#ifdef dnc
1406 CALL eng_read_mds()
1407#endif
1408
1409
1410
1411
1413
1414
1415
1416 CALL read_ale_grid()
1417
1418
1419
1420 IF (nfxbody>0) THEN
1422 ENDIF
1423
1424
1425
1426 IF (neig>0) THEN
1428 ENDIF
1429
1430
1431
1432 DO i = 1, nslipring
1433
1441
1448
1450
1452
1462
1476
1477 ENDDO
1478
1479 ENDDO
1480
1481 DO i = 1, nretractor
1518 DO j=1,2
1523 ALLOCATE (
retractor(i)%TABLE(j)%X(1)%VALUES(npt))
1525 ALLOCATE (
retractor(i)%TABLE(j)%Y%VALUES(npt))
1528 ENDIF
1529 ENDDO
1530 ENDDO
1531
1532 IF (n_anchor_remote > 0) THEN
1535 ENDIF
1536
1537 IF (n_anchor_remote_send > 0) THEN
1540 ENDIF
1541
1542 IF ((nslipring_g + nretractor_g >0).AND.(ispmd == 0)) THEN
1543 ALLOCATE(th_slipring(nslipring_g,6))
1544 ALLOCATE(th_retractor(nretractor_g,3))
1545 th_slipring = 0
1546 th_retractor = 0
1555 ENDDO
1556 ENDIF
1557 ENDIF
1558
1559
1560
1567
1568 IF (nconld > 0) THEN
1569 CALL read_db(dpl0cld,6*nconld)
1570 CALL read_db(vel0cld,6*nconld)
1571 ENDIF
1572
1573
1574
1579 ENDIF
1580 IF (ndamp > 0) THEN
1581 DO i=1,ndamp
1583 ENDDO
1584 ENDIF
1585
1586
1587 IF (nflow>0) THEN
1589 ENDIF
1590
1591
1593
1594
1595 IF (impl_s0>0)
CALL imprrest(impl_s0)
1596
1597
1598 IF(glob_therm%ITHERM_FE > 0 ) THEN
1599 CALL thcrrest(nodes%MCP,nodes%TEMP)
1600 ENDIF
1601
1602
1603 IF(nitsche > 0 ) THEN
1605 ENDIF
1606
1607
1609
1610
1612
1613
1614 IF (glob_therm%NUMCONV > 0)
CALL convrrest(
ibcv, fconv ,glob_therm)
1615 IF (glob_therm%NUMRADIA > 0)
CALL radiarrest(
ibcr, fradia,glob_therm)
1618
1619
1620 IF (iplyxfem > 0) THEN
1623 ENDIF
1626
1627
1630
1631
1632 IF (nintloadp>0) THEN
1633 CALL read_db(dgaploadint, ninter*nloadp_hyd )
1634 ENDIF
1635
1636
1637 IF (loads%NINIVELT>0) THEN
1638 ALLOCATE(loads%INIVELT(loads%NINIVELT))
1639 CALL read_inivel(loads%NINIVELT,loads%INIVELT)
1640 ENDIF
1641
1644
1645
1647
1648
1650
1651 IF(srthbuf > 0)
CALL rthbufrest(rthbuf,srthbuf)
1652
1656 IF(numelig3d > 0)
CALL wigerest(wige)
1657
1658 IF(ipart_stack >0) THEN
1660 ENDIF
1661
1662 IF (ndrape > 0) THEN
1664 ENDIF
1665
1667
1668
1670
1673 ENDIF
1674
1675 RETURN
subroutine decompress_i_nnz(array, len)
subroutine decompress_r_nnz(array, len)
end diagonal values have been computed in the(sparse) matrix id.SOL
subroutine fillxdp(x, xdp, d, ddp)
subroutine fxfluxrrest(ibfflux, fbfflux, glob_therm)
subroutine intbuf_ini(intbuf_tab)
type(alefvm_buffer_), target alefvm_buffer
type(alefvm_param_), target alefvm_param
integer, dimension(:), allocatable id_damp_vrel
integer, dimension(:), allocatable fr_damp_vrel
integer, dimension(:), pointer iadcnd
integer, dimension(:), pointer fr_cndm
integer, dimension(:), pointer procncnd
integer, dimension(:), pointer icnds10
integer, dimension(:), pointer addcncnd
integer, dimension(:), pointer iad_cndm
type(intstamp_data), dimension(:), allocatable intstamp
integer, dimension(:), allocatable poin_ump
integer, dimension(:), allocatable iconx
integer, dimension(:), allocatable, target igrv
integer, dimension(:), allocatable fr_sec
integer, dimension(:), allocatable iad_rby
integer, dimension(:), allocatable id_global_vois
integer, dimension(:), allocatable fr_nbedge
integer, dimension(:), allocatable iadrbmk
integer, dimension(:), allocatable fr_mad
integer, dimension(:), allocatable ibcv
integer, dimension(:), allocatable lagbuf
integer, dimension(:), allocatable ixx
integer, dimension(:), allocatable, target lpby
integer, dimension(:), allocatable fr_rl
integer, dimension(:), allocatable, target ixs
integer, dimension(:), allocatable iad_rbym2
integer, dimension(:), allocatable iad_i2m
integer, dimension(:), allocatable iad_cut
integer, dimension(:), allocatable lgrav
integer, dimension(:), allocatable, target npby
integer, dimension(:), allocatable kxig3d
integer, dimension(:), allocatable iadmv3
integer, dimension(:), allocatable face_vois
integer, dimension(:), pointer iframe
integer, dimension(:), pointer madfail
integer, dimension(:), allocatable lesdvois
integer, dimension(:), allocatable lnrcvois
integer, dimension(:), allocatable nativ0_sms
integer, dimension(:), allocatable newfront
integer, dimension(:), allocatable iadc_crkxfem
integer, dimension(:), allocatable nodpor
integer, dimension(:), allocatable ilink
integer, dimension(:), allocatable llink
integer, dimension(:), allocatable madclnod
integer, dimension(:,:), allocatable ipadmesh
integer, dimension(:), allocatable lbvel
integer, dimension(:), allocatable lprtsph
integer, dimension(:), allocatable nbsdvois
integer, dimension(:), allocatable lnodpor
integer, dimension(:), allocatable ibcr
integer, dimension(:), allocatable ne_nercvois
integer, dimension(:), allocatable iadmv2
integer, dimension(:), allocatable neflsw
integer, dimension(:), allocatable ixig3d
integer, dimension(:), allocatable linale
type(cluster_), dimension(:), allocatable cluster
integer, dimension(:), allocatable iactiv
integer, dimension(:), allocatable crknodiad
integer, dimension(:), allocatable ne_lercvois
integer, dimension(:), allocatable ibcslag
integer, dimension(:), allocatable ibufssg_io
integer, dimension(:,:), allocatable sh4tree
integer, dimension(:), allocatable fr_lagf
integer, dimension(:), allocatable ispsym
integer, dimension(:), allocatable sh4trim
integer, dimension(:), allocatable addcsrect
integer, dimension(:), allocatable ipm
integer, dimension(:), allocatable, target ipart
integer, dimension(:), allocatable iadwal
integer, dimension(:), allocatable fr_nor
integer, dimension(:), allocatable isphio
integer, dimension(:), allocatable fr_i18
integer, dimension(:), allocatable, target ipari
integer, dimension(:), allocatable fr_rbym2
integer, dimension(:), allocatable igaup
integer, dimension(:), allocatable iad_rbm
integer, dimension(:), allocatable iskew_ply
integer, dimension(:), allocatable nnflsw
integer, dimension(:), allocatable nercvois
type(failwave_str_) failwave
integer, dimension(:), allocatable ispcond
integer, dimension(:), allocatable ibordnode
integer, dimension(:), allocatable sh3trim
integer, dimension(:), allocatable iadrbk
integer, dimension(:), allocatable iecran
integer, dimension(:), allocatable, target iedgesh
integer, dimension(:), allocatable fr_i2m
integer, dimension(:), allocatable ixt
integer, dimension(:), allocatable lnlink
integer, dimension(:), allocatable ibftemp
integer, dimension(:), allocatable ibfv
integer, dimension(:), allocatable iaccp
integer, dimension(:), allocatable, target iel_crkxfem
integer, dimension(:), allocatable iadi18
integer, dimension(:), allocatable lsegcom
integer, dimension(:), allocatable iskwp_l
integer, dimension(:), allocatable inod_pxfem
integer, dimension(:), allocatable dd_r2r_elem
integer, dimension(:), allocatable kloadpinter
integer, dimension(:), allocatable ixr
integer, dimension(:,:), allocatable sh3tree
integer, dimension(:), allocatable lonfsph
integer, dimension(:), pointer madnod
integer, dimension(:), allocatable madidx
integer, dimension(:), allocatable iexlnk
integer, dimension(:), allocatable, target ixtg
integer, dimension(:), pointer lpbyl
integer, dimension(:), allocatable nnlink
integer, dimension(:), allocatable, target ibcl
integer, dimension(:), allocatable adsky_crkxfem
integer, dimension(:), pointer madprt
integer, dimension(:), allocatable fr_rbym
integer, dimension(:), allocatable monvol
integer, dimension(:), allocatable ifill
integer, dimension(:), allocatable iskwp
integer, dimension(:), allocatable isensp
integer, dimension(:), allocatable fr_rbe2
integer, dimension(:), allocatable irbe2
integer, dimension(:), allocatable inod_crkxfem
integer, dimension(:), allocatable nporgeo
integer, dimension(:), allocatable procne_crkxfem
integer, dimension(:), allocatable fr_rbm2
integer, dimension(:), allocatable kxsp
integer, dimension(:), allocatable neth
integer, dimension(:), allocatable nodlevxf
integer, dimension(:), allocatable loadpinter
integer, dimension(:), allocatable fr_ll
integer, dimension(:), allocatable iad_sec
integer, dimension(:), allocatable nsensp
integer, dimension(:), allocatable dd_iad
integer, dimension(:), allocatable gjbufi
integer, dimension(:), pointer madsh3
integer, dimension(:), allocatable icut
integer, dimension(:), allocatable fr_cj
integer, dimension(:), allocatable, target iskwn
integer, dimension(:), allocatable nesdvois
integer, dimension(:), allocatable cne_crkxfem
integer, dimension(:), allocatable, target iloadp
integer, dimension(:), allocatable iadcj
integer, dimension(:), allocatable ngaup
integer, dimension(:), allocatable lnrbym
integer, dimension(:), allocatable nod2sp
integer, dimension(:), allocatable adsky_pxfem
integer, dimension(:), allocatable nodglobxfe
integer, dimension(:), allocatable weight_rm
integer, dimension(:), allocatable ixp
integer, dimension(:), allocatable laccelm
integer, dimension(:), allocatable, target nom_opt
integer, dimension(:), allocatable iad_rbe2
double precision, dimension(:), allocatable bufgeo
integer, dimension(:), pointer madsol
integer, dimension(:), allocatable fasolfr
integer, dimension(:), allocatable iadi2
integer, dimension(:), allocatable, target npc
integer, dimension(:), allocatable igeo
integer, dimension(:), allocatable, target ibmpc
integer, dimension(:), allocatable ixtg1
integer, dimension(:), allocatable fr_mv
integer, dimension(:), allocatable ims
integer, dimension(:), allocatable fr_edge
integer, dimension(:), allocatable lercvois
integer, dimension(:), allocatable iadrl
integer, dimension(:), allocatable addcni2
integer, dimension(:), allocatable lbcscyc
integer, dimension(:), allocatable fr_rby2
integer, dimension(:), allocatable iad_frnor
integer, dimension(:), allocatable iadc_pxfem
integer, dimension(:), allocatable ne_lesdvois
integer, dimension(:), allocatable ibvel
integer, dimension(:), allocatable iadrbm
integer, dimension(:), allocatable lrivet
integer, dimension(:), pointer npbyl
integer, dimension(:), allocatable iad_edge
integer, dimension(:), allocatable, target icfield
integer, dimension(:), allocatable lgauge
integer, dimension(:), allocatable nstrf
integer, dimension(:), allocatable ibcscyc
integer, dimension(:), allocatable procnor
integer, dimension(:), allocatable tag_skins6
integer, dimension(:), allocatable fr_rby
integer, dimension(:), allocatable iad_rbm2
integer, dimension(:), allocatable irbym
integer, dimension(:,:), allocatable ixsp
integer, dimension(:), pointer madsh4
integer, dimension(:), allocatable iparg
integer, dimension(:), allocatable ixq
integer, dimension(:), allocatable iedge
integer, dimension(:), allocatable ibfflux
integer, dimension(:), allocatable nodedge
integer, dimension(:), allocatable ilas
integer, dimension(:), allocatable iad_rby2
integer, dimension(:), allocatable icode_ply
integer, dimension(:), allocatable lloadp
integer, dimension(:), allocatable fr_cut
integer, dimension(:), allocatable segquadfr
integer, dimension(:), allocatable procni2
integer, dimension(:), allocatable lcfield
integer, dimension(:), allocatable kxx
integer, dimension(:), allocatable nskwp
integer, dimension(:), allocatable ne_nesdvois
integer, dimension(:), allocatable iad_rbym
integer, dimension(:), allocatable nom_sect
integer, dimension(:), allocatable npsegcom
type(nlocal_str_) nloc_dmg
integer, dimension(:), allocatable rg_cut
integer, dimension(:), allocatable iel_pxfem
integer, dimension(:), allocatable lrbe2
integer, dimension(:), allocatable fr_rbm
integer, dimension(:), allocatable llagf
integer, dimension(:), allocatable nbrcvois
integer, dimension(:), allocatable lnsdvois
integer, dimension(:,:), allocatable tab_ump
integer, dimension(:), allocatable naccp
integer, dimension(:), allocatable procne_pxfem
integer, dimension(:), allocatable ithvar
integer, dimension(:), allocatable dd_r2r
integer, dimension(:), allocatable iadll
integer, dimension(:), allocatable icontact
integer, dimension(:), allocatable ipart_state
integer nseatbelt_th_proc
type(retractor_struct), dimension(:), allocatable retractor
type(seatbelt_remote_nodes_struct) anchor_remote_send
type(seatbelt_remote_nodes_struct) anchor_remote
type(seatbelt_th_exch_struct), dimension(:), allocatable seatbelt_th_exch
type(slipring_struct), dimension(:), allocatable slipring
integer, dimension(:), allocatable sph2sol
integer, dimension(:), allocatable irst
integer, dimension(:), allocatable sol2sph_typ
integer, dimension(:), allocatable sol2sph
integer, dimension(:,:), allocatable ply_info
type(ttable), dimension(:), allocatable table
type(time_type) global_comp_time
subroutine r_bufbric_22()
subroutine rdcomr(lmxvrea, tabvrea, dynain_data, inter_parameters, output, glob_therm)
subroutine alelag_rrest()
subroutine plyxfem_ravuply()
subroutine thcrrest(mcp, temp)
subroutine imprrest(nimpr)
subroutine drape_rrest(drape_sh4n, drape_sh3n, drapeg)
subroutine rthbufrest(rthbuf, srthbuf)
subroutine knotlocpcrest(knotlocpc)
subroutine cfieldrest(cfield)
subroutine knotlocelrest(knotlocel)
subroutine stack_rrest(igeo, geo, pm)
subroutine fvrrest(monvol)
subroutine loadprest(loadp)
subroutine knotrest(knot)
subroutine nitscherrest(forneqs)
subroutine wigerest(wige)
subroutine fxtemprrest(ibftemp, fbftemp, glob_therm)
subroutine ply_info_rest(ply_info)
subroutine rmatrrest(rbym, irbym, lnrbym, weight)
subroutine convrrest(ibcv, fconv, glob_therm)
subroutine plyxfem_rrestanim()
subroutine plyxfem_rrest(ms_layer, zi_layer, inod, iel, icode, iskew, msz2)
subroutine nfrrest(iflow, rflow)
subroutine crkxfem_rrest(inod_crkxfem, iel_crkxfem, nodlevxf)
subroutine crkxfem_rrestanim()
subroutine radiarrest(ibcr, fradia, glob_therm)
subroutine read_cluster(cluster)
subroutine read_dpdb(a, n)
subroutine read_elgroup_param(mat_elem)
subroutine read_failwave(failwave)
subroutine read_matparam(mat_elem)
subroutine read_nloc_struct(nloc_dmg)
subroutine read_pcyl(loads)
subroutine read_sensors(sensors, python)
subroutine read_th_restart(th)
subroutine elbuf_ini(elbuf_tab, mat_param, mlaw_tag, prop_tag, fail_tag, igeo, ipm, iparg, ipart, ipartsp, ixs, ixq, ixc, ixtg, flag_xfem, ipartig3d, stack, igeo_stack, ixt, ixp, ixr, kxx, geo, eos_tag, istr_24, print_flag, defaults)
subroutine group_ini(igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart)
subroutine subset_ini(subset)
subroutine userwi_read(user_windows, ispmd, nspmd, numnod)
subroutine read_units(unitab)