550 SUBROUTINE resol(TIMERS, ELEMENT, NODES, coupling, AF,IAF,
551 1 ISKWN ,NETH ,IPART ,NOM_OPT,KXX ,IXX ,
552 2 IXTG ,IXS ,IXQ ,IXT ,IXP ,IXR ,
555 5 IBFV ,IDUM ,LAS ,LACCELM,NNLINK ,LNLINK ,
556 6 IPARG ,DD_IAD ,IGRV ,IEXLNK ,KINET ,
557 7 IPARI , NPRW ,ICONX ,NPBY ,
558 8 LPBY ,LRIVET ,NSTRF ,LJOINT ,NODPOR ,MONVOL ,
560 A LLINK ,LINALE ,NEFLSW ,NNFLSW ,ICUT ,CLUSTER,
563 D PM ,SKEWS ,GEO ,EANI ,BUFMAT ,BUFGEO ,BUFSF ,
564 E W ,VEUL ,FILL ,DFILL ,ALPH ,WB ,DSAVE ,ASAVE ,
566 F TF ,FORC ,VEL ,FSAV ,FZERO ,XLAS ,ACCELM ,
567 G AGRV ,FR_WAVE,FAILWAVE,PARTS0 ,ELBUF ,RWBUF ,SENSORS,
568 H RWSAV ,RBY ,RIVET ,SECBUF ,VOLMON ,LAMBDA ,
570 J ,UWA ,VAL2 ,PHI ,SEGVAR ,R ,CRFLSW ,
571 K FLSW ,FANI ,XCUT ,ANIN ,TANI ,SECFCUM,BUFNOIS,
573 M IFRAME ,KXSP ,IXSP ,NOD2SP ,ISPSYM ,ISPCOND,
574 N XFRAME ,SPBUF ,XSPSYM ,VSPSYM ,PV ,
575 O FSAVD ,IBVEL ,LBVEL ,WASPH ,W16 ,
576 P ISPHIO ,LPRTSPH,LONFSPH ,VSPHIO ,FBVEL ,LAGBUF ,IBCSLAG,
577 Q IACTIV ,DAMPR ,GJBUFI ,GJBUFR , RBMPC , IBMPC ,SPHVELN,
578 T NBRCVOIS,NBSDVOIS,LNRCVOIS,LNSDVOIS,NERCVOIS,NESDVOIS,LERCVOIS,
579 U LESDVOIS,NPSEGCOM,LSEGCOM ,NPORGEO ,
580 V IXTG1 ,NPBYL ,LPBYL ,RBYL ,IGEO ,IPM ,
581 W MADPRT ,MADSH4 ,MADSH3 ,MADSOL ,MADNOD ,MADFAIL ,
582 X IAD_RBY ,FR_RBY ,FR_WALL ,IAD_RBY2,
583 Y FR_RBY2 ,IAD_I2M ,FR_I2M ,ADDCNI2 ,PROCNI2 ,IADI2 ,FR_MV ,
584 Z IADMV2 ,FR_LL ,FR_RL ,IADCJ ,
586 b IAD_SEC ,IAD_CUT ,FR_CUT ,RG_CUT ,NEWFRONT,FR_MAD ,
587 c FXBIPM ,FXBRPM ,FXBNOD ,FXBMOD ,FXBGLM ,FXBCPM ,FXBCPS ,
588 d FXBLM ,FXBFLS ,FXBDLS ,FXBDEP ,FXBVIT ,FXBACC ,FXBELM ,
589 e FXBSIG ,FXBGRVI ,FXBGRVR ,EIGIPM ,EIGIBUF ,EIGRPM ,
591 g FR_I18 ,GRAPHE ,IFLOW ,RFLOW ,
592 h LGRAV ,DD_R2R ,FASOLFR ,FR_LAGF ,
593 j LLAGF ,LPRW ,ICONTACT,RCONTACT,SH4TREE ,SH3TREE ,
594 k IPADMESH,PADMESH ,MSC ,MSTG ,INC ,INTG ,PTG ,
595 l ISKWP ,NSKWP ,ISENSP ,NSENSP ,IACCP ,NACCP,IPART_STATE,
596 m ACONTACT,PCONTACT,FACTIV
597 p ,SH4TRIM ,SH3TRIM ,MSCND ,INCND ,
598 q IBFFLUX ,FBFFLUX ,RBYM ,IRBYM ,LNRBYM ,ICODRBYM,
599 r IBCV ,FCONV ,IBFTEMP ,FBFTEMP ,IAD_RBYM,FR_RBYM,
600 t WEIGHT_RM,MS_PLY,ZI_PLY,INOD_PXFEM,IEL_PXFEM,IADC_PXFEM,
601 u ADSKY_PXFEM,ICODE_PLY,ICODT_PLY,ISKEW_PLY ,ADMSMS ,
602 v MADCLNOD,NOM_SECT,MCPC ,MCPTG ,DMELC ,DMELTG ,MSSA ,
603 w DMELS ,MSTR ,DMELTR ,MSP ,DMELP ,MSRT ,DMELRT ,
604 x IBCR ,FRADIA ,RES_SMS ,TABLE ,IRBE2 ,LRBE2 ,IAD_RBE2 ,
605 y FR_RBE2 ,PHIE ,MSF ,
606 z PROCNE_PXFEM ,IADSDP_PXFEM,IADRCP_PXFEM,ICFIELD,LCFIELD,CFIELD,
607 1 MSZ2 ,DIAG_SMS,ILOADP ,LLOADP ,LOADP ,
608 2 INOD_CRK,IEL_CRK ,IADC_CRK,ADSKY_CRK,
609 3 CNE_CRK,PROCNE_CRK,IADSDP_CRK,IADRCP_CRK, IBUFSSG_IO,
610 4 IBC_PLY ,DMINT2 ,IBORDNODE,
611 5 ELBUF_TAB,POR ,NODEDGE ,IAD_EDGE,
612 6 FR_EDGE ,FR_NBEDGE,CRKNODIAD,LGAUGE ,GAUGE ,
613 7 IGAUP ,NGAUP ,NODLEVXF,DD_R2R_ELEM,
614 8 NODGLOBXFE,SPH2SOL ,SOL2SPH ,IRST ,
615 9 DMSPH ,WAGAP ,XFEM_TAB,ELCUTC ,NODENR ,
616 A KXFENOD2ELC,ENRTAG,
617 B RTHBU F,KXIG3D ,IXIG3D ,KNOT, WIGE,
619 D CPUTIME_MP_GLOB, CPUTIME_MP ,TAB_UMP,POIN_UMP ,SOL2SPH_TYP,
620 E IRUNN_BIS,ADDCSRECT, IAD_FRNOR,FR_NOR ,PROCNOR,
621 F IAD_FREDG,FR_EDG ,DRAPE_SH4N , DRAPE_SH3N ,TAB_MAT,
622 G NATIV0_SMS,MULTI_FVM,SEGQUADFR,MS_2D ,
623 H H3D_DATA ,SUBSETS,IGRNOD,IGRBRIC,
624 I IGRQUAD,IGRSH4N,IGRSH3N,IGRTRUSS,IGRBEAM,
625 J IGRSPRING,IGRPART,IGRSURF,FORNEQS,
626 K NLOC_DMG ,ISKWP_L,KNOTLOCPC,KNOTLOCEL,PINCH_DATA,TAG_SKINS6, ALE_CONNECTIVITY,
627 L XCELL, XFACE, NE_NERCVOIS, NE_NESDVOIS, NE_LERCVOIS, NE_LESDVOIS,IBCSCYC ,LBCSCYC,
628 M T_MONVOL,ID_GLOBAL_VOIS,FACE_VOIS,DYNAIN_DATA,FCONT_MAX,EBCS_TAB,DIFFUSION,
629 N KLOADPINTER,LOADPINTER,DGAPLOADINT,DRAPEG,USER_WINDOWS,OUTPUT,INTERFACES,
630 O DT ,LOADS , PYTHON, DPL0CLD,VEL0CLD,
631 P NDAMP_VREL,ID_DAMP_VREL,FR_DAMP_VREL,NDAMP_VREL_RBYG,NAMES_AND_TITLES,UNITAB,LIFLOW,LRFLOW ,
632 R GLOB_THERM ,PBLAST,RBE3)
706 USE output_mod ,
ONLY : output_
707 USE output_mod ,
ONLY : noda_pext, noda_surf, output_allocate_noda_pext, output_deallocate_noda_pext
712 USE python_share_memory_mod
713 USE python_register_mod,
ONLY : python_register
714 USE funct_python_update_elements_mod,
ONLY : funct_python_update_elements
715 USE python_monvol_mod ,
ONLY : python_monvol
717 USE force_mod ,
ONLY : force
721 USE bcs_mod ,
ONLY : bcs
722 USE inter_sh_offset_mod ,
only:sh_offset_
723 USE offset_nproj_mod,
only : offset_nproj
724 USE get_neighbour_surface_mod ,
only : get_neighbour_surface
725 USE spmd_mod ,
only : spmd_max,spmd_allreduce,spmd_barrier
728 USE multimat_param_mod ,
ONLY : m51_n0phas, m51_nvphas
729 use init_global_frontier_monvol_mod ,
only : init_global_frontier_monvol
730 use init_monvol_omp_structure_mod ,
only : init_monvol_omp_structure
731 USE inivel_dt2_mod ,
only : inivel_dt2
732 USE inivel_start_mod ,
only : inivel_start
737 USE spmd_xv_inter_type1_mod,
only : spmd_xv_inter_type1
744 use inter_init_component_mod ,
only : inter_init_component
745 use damping_vref_compute_dampa_mod
746 use coupling_adapter_mod
747 use damping_funct_ini_mod ,
only : damping_funct_ini
752#include
"implicit_f.inc"
753#include
"comlock.inc"
757#include "mvsiz_p.inc"
762#include "com01_c.inc"
763#include "com04_c.inc"
764#include "com06_c.inc"
765#include "com08_c.inc"
766#include "com09_c.inc"
767#include "intstamp_c.inc"
769#include "param_c.inc"
770#include "scr02_c.inc"
771#include "scr03_c.inc"
772#include "scr05_c.inc"
773#include
"scr06_c.inc"
774#include "scr07_c.inc"
775#include "scr11_c.inc"
776#include "scr12_c.inc"
777#include "scr14_c.inc"
778#include "scr16_c.inc"
779#include "scr17_c.inc"
780#include "scr18_c.inc"
781#include "scr23_c.inc"
782#include "units_c.inc"
783#include "stati_c.inc"
784#include "statr_c.inc"
785#include "cong2_c.inc"
787#include "parit_c.inc"
788#include "timeri_c.inc"
789#include "couple_c.inc"
790#include "rad2r_c.inc"
791#include "chara_c.inc"
792#include "lagmult.inc"
794#include "impl1_c.inc"
798#include "remesh_c.inc"
799#include "com_xfem1.inc"
800#include "tabsiz_c.inc"
802#include "filescount_c.inc"
803#include "inter22.inc"
804#include "userlib.inc"
805#include "drape_c.inc"
807 COMMON /vglob/dmas,diner
813 INTEGER ISKWN(LISKN,*), NETH(*),
814 . ipart(*),nom_opt(lnopt1,*),ixs(*),
815 . ixq(nixq,*), ixt(nixt,*), ixp(nixp,*),
816 . ixr(nixr,*),ixtg(nixtg,*), ixtg1(4,*),
818 . ifill(numnod,*), ims(*), npc(*), ibcl(*), ibfv(*),
819 . idum(*), las(*),iparg(nparg,*),
820 . nprw(*), lprw(*), iconx(*), npby(nnpby,*),
822 . lrivet(*), nstrf(*), ljoint(*), ilink(*),
823 . llink(*), linale(*), neflsw(*), nnflsw(*),
824 . nodpor(*),icut(*) , inoise(*),monvol(*),
825 . laccelm(3,*),dd_iad(nspmd+1,*),
826 . iad_rby(*),fr_rby(*),nnlink(10,*),lnlink(*),
828 . kxx(nixx,*),ixx(*),iexlnk(nr2r,*),
829 . iframe(liskn,*),kxsp(nisp,*),ixsp(*),nod2sp(*),
830 . ispcond(nispcond,*),ispsym(nspcond,*),ibvel(nbvelp,*),lbvel
831 . isphio(nisphio,*),lprtsph(*),lonfsph(*),lagbuf(*),ibcslag(*),
832 . iactiv(*),gjbufi(lkjni
833 . nbrcvois(*),nbsdvois(*),lnrcvois(*),lnsdvois(*),
834 . nercvois(*),nesdvois(*),lercvois(*),lesdvois(*), nporgeo(*),
835 . npsegcom(*), lsegcom(*), igeo(npropgi,*),
836 . ipm(npropmi,*),madprt(*), madsh4(*), madsh3(*), madsol(*),
837 . madnod(*),madfail(*),
838 . fr_wall(*),iad_rby2(*),
839 . fr_rby2(*),iad_i2m(*),fr_i2m(*),addcni2(*),procni2(*),iadi2(*),
840 . fr_mv(*), iadmv2(*), fr_ll(*), fr_rl(*),
841 . iadcj(*), fr_cj(*),
842 . fr_sec(*), iad_sec(4,*),
843 . iad_cut(nspmd+2,*), fr_cut(*), rg_cut(*), newfront(*),
844 . fr_mad(5,*), lnodpor(*), fr_i18(*),
845 . fxbipm(nbipm,*),fxbnod(*),fxbelm(*), fxbgrvi(*),
846 . eigipm(neipm,*), eigibuf(*), iflow(*), fasolfr(*),
847 . dd_r2r(nspmd+1,*), lgrav(*), fr_lagf(3,*), llagf(*),
848 . icontact(*), sh4tree(*), sh3tree(*), ipadmesh(*),
849 . iskwp(*), nskwp(*), isensp(2,*), nsensp(*), iaccp(*), naccp(*),
850 . ipart_state(*),sh4trim
851 . icodrbym(*),iad_rbym(*),
852 . fr_rbym(*),nom_sect(*), ibcr(*),irbe2(*),lrbe2(*),
853 . iad_rbe2(*),fr_rbe2(*),iadsdp_pxfem(*),
854 . iadrcp_pxfem(*),icfield(*),lcfield(*),iloadp(*),lloadp(*),
855 . iadsdp_crk(*),iadrcp_crk(*),inod_crk(*),iel_crk(*),iadc_crk(*),
856 . adsky_crk(*),procne_crk(*),cne_crk(*),ibordnode(*),
857 . nodedge(*),iad_edge(*),fr_edge(*),fr_nbedge(*),
858 . crknodiad(*), lgauge(3,*), igaup(*), ngaup(*),nodlevxf(*),
859 . nodglobxfe(*),elcutc(2,*),nodenr(*),kxfenod2elc(*),
860 . enrtag(numnod,*),kxig3d(*),ixig3d(*),
861 . nativ0_sms(*), segquadfr(*),
862 . kloadpinter(ninter+1) ,loadpinter(ninter*nloadp_hyd)
863 INTEGER IDATA(*), (*), IBCV(*), IBFFLUX(*), WEIGHT_RM(*),
864 . ICODT_PLY(*), ISKEW_PLY(*),INOD_PXFEM(*),IEL_PXFEM(*),
865 . IADC_PXFEM(*),ADSKY_PXFEM(*),ICODE_PLY(*),MADCLNOD(*),
867 . IBUFSSG_IO(*),IBC_PLY(*),DD_R2R_ELEM(*),
868 . SPH2SOL(*), SOL2SPH(2,*), IRST(3,*), SOL2SPH_TYP(*),IRUNN_BIS,
869 . ADDCSRECT(*), IAD_FRNOR(*), FR_NOR(*), (*),
870 . IAD_FREDG(*), FR_EDG(*),TAG_SKINS6(*),IBCSCYC(*),LBCSCYC(*)
871 integer :: IPARI(NPARI,ninter)
872 INTEGER,
DIMENSION(NUMSKW),
INTENT(IN) :: ISKWP_L
873 INTEGER,
DIMENSION(*),
INTENT(in) :: ID_GLOBAL_VOIS,FACE_VOIS
876 . PM(NPROPM,*),GEO(NPROPG,*),
877 . BUFMAT(*) ,W(3,*) ,VEUL(*),FILL(NUMNOD,*),(NUMNOD,*),
878 . ALPH(*) ,WB(3,*) ,TF(*) ,FORC(*) ,VEL(*),
879 . FSAV(NTHVKI,*) ,FZERO(3,*),XLAS(*) ,ELBUF(*) ,
880 . RWBUF(NRWLP,*),RWSAV(*),RBY(NRBY,*),RIVET(*),WA(*),
881 . FV(*) ,VAL2(*) ,PHI(*),
882 . R(3,*) ,CRFLSW(*),FLSW(*),
883 . FANI(3,*) ,UWA(*) ,PARTSAV(*) ,
884 . DSAVE(3,*),ASAVE(3,*),XCUT(*) ,ANIN(*) ,BUFNOIS(*),
885 . ACCELM(LLACCELM,*),
886 . TANI(*),VOLMON(*),EANI(*),AGRV(*), THKE(*), BUFSF(*),AF(*),
887 . SECBUF(*),SECFCUM(7,,NSECT),LAMBDA(*),
888 . FR_WAVE(*),PARTS0(*),BUFGEO(*),
889 . spbuf(nspbuf,*),xframe(nxframe
890 . wasph(*),w16(*),vsphio(*),fbvel(*),dampr(nrdamp,*),
891 . rdata(*),pv(*),fsavd(nthvki,*),gjbufr(lkjnr,*),rbmpc(*),
892 . sphveln(*),rbyl(nrby,*), msnf(*),
893 . fxbrpm(*), fxbmod(*), fxbglm(*), fxbcpm(*), fxbcps(*),
894 . fxblm(*), fxbfls(*), fxbdls(*), fxbdep(*), fxbvit(*),
895 . fxbacc(*), fxbsig(*), fxbgrvr(*), eigrpm(nerpm,*),
896 . dmsph(*),knot(*),wige(*),ms_2d(*),
897 . knotlocpc(*),knotlocel(*),xcell(*),xface(*),fcont_max(3,*)
899 . rflow(*), rcontact(*),
900 . padmesh(*), msc(*), mstg(*), inc(*) , intg(*), ptg(3,*),
901 . acontact(*), pcontact(*), factiv(*),
902 . mscnd(*), incnd(*), rbym(*), fbfflux(*),
903 . fconv(*), fbftemp(*), ms_ply(*), zi_ply(*), admsms(*),
904 . mcpc(*), mcptg(*), dmelc(*), dmeltg(*), mssa(*), dmels(*),
905 . mstr(*), dmeltr(*), msp(*), dmelp(*), msrt(*), dmelrt(*),
906 . fradia(*), res_sms(*), phie(*),msf(*),
907 . cfield(*),msz2(*), diag_sms(*),loadp(*), dmint2(*),por(*),
908 . gauge(llgauge,*),wagap(2,*),rthbuf(*),forneqs(3,*),
909 . dpl0cld(*),vel0cld(*)
910 my_real ,
INTENT(IN) :: dgaploadint(ninter*nloadp_hyd)
912 TYPE(connectivity_),
INTENT(INOUT) :: ELEMENT
913 TYPE(NODAL_ARRAYS_),
INTENT(INOUT) :: NODES
914 TYPE (CLUSTER_) ,
DIMENSION(*) :: CLUSTER
915 TYPE(PRGRAPH) :: GRAPHE(*)
916 TYPE(TTABLE) :: TABLE(*)
917 TYPE(ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
918 TYPE(ELBUF_STRUCT_),
DIMENSION(:),
ALLOCATABLE :: ELBUF_IMP
919 TYPE(ELBUF_STRUCT_),
DIMENSION(NGROUP,NXEL) :: XFEM_TAB
921 my_real,
DIMENSION(:) ,
POINTER :: BUF
922 END
TYPE SPSYM_STRUCT
923 TYPE (SPSYM_STRUCT) :: XSPSYM,VSPSYM,WSMCOMP
924 TYPE (STACK_PLY) :: STACK
925 TYPE (MPI_MIN_REAL_STRUCT) :: MPI_BUF
926 TYPE(UNIT_TYPE_) :: UNITAB
929 TYPE(coupling_type),
intent(inout) :: coupling
932 INTEGER,
DIMENSION(NUMMAT) :: POIN_UMP
933 my_real,
DIMENSION(NBR_GPMP,NSPMD+1) :: CPUTIME_MP_GLOB
934 my_real,
DIMENSION(TAILLE) :: CPUTIME_MP
935 INTEGER,
DIMENSION(7,TAILLE) :: TAB_UMP
937 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
938 TYPE(H3D_DATABASE) :: H3D_DATA
939 TYPE (FAILWAVE_STR_) :: FAILWAVE
941 TYPE(SUBSET_) ,
DIMENSION(NSUBS) :: SUBSETS
942 TYPE(GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
943 TYPE() ,
DIMENSION(NGRBRIC) :: IGRBRIC
944 TYPE(GROUP_) ,
DIMENSION(NGRQUAD) :: IGRQUAD
945 TYPE(
group_) ,
DIMENSION(NGRSHEL) :: IGRSH4N
946 TYPE(GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N
947 TYPE(GROUP_) ,
DIMENSION(NGRTRUS) :: IGRTRUSS
948 TYPE(GROUP_) ,
DIMENSION(NGRBEAM) :: IGRBEAM
949 TYPE(GROUP_) ,
DIMENSION(NGRSPRI) :: IGRSPRING
950 TYPE(GROUP_) ,
DIMENSION(NGRPART) :: IGRPART
951 TYPE(SURF_) ,
DIMENSION(NSURF) :: IGRSURF
954 TYPE(
pinch) :: PINCH_DATA
956 INTEGER,
INTENT(IN) :: NE_NERCVOIS(*), (*), (*), NE_LESDVOIS(*)
957 TYPE(MONVOL_STRUCT_),
DIMENSION(NVOLU),
INTENT(INOUT) :: T_MONVOL
958 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE) , DRAPE_SH3N(NUMELTG_DRAPE)
959 TYPE(DRAPEG_) :: DRAPEG
960 TYPE (SENSORS_) ,
INTENT(INOUT)
961TYPE(t_ebcs_tab) ,
INTENT(INOUT) :: EBCS_TAB
962 TYPE() ,
INTENT(INOUT) :: DIFFUSION
963 TYPE(t_segvar) :: SEGVAR
964 TYPE(inter_struct_type),
DIMENSION(:),
ALLOCATABLE :: INTER_STRUCT
965 TYPE(sorting_comm_type),
DIMENSION(:),
ALLOCATABLE :: SORT_COMM
966 TYPE () ,
INTENT(INOUT) :: LOADS
967 TYPE (DYNAIN_DATABASE),
INTENT(INOUT) :: DYNAIN_DATA
968 TYPE(USER_WINDOWS_),
INTENT(INOUT) :: USER_WINDOWS
969 TYPE(OUTPUT_),
INTENT(INOUT) :: OUTPUT
970 TYPE (INTERFACES_) ,
INTENT(INOUT) :: INTERFACES
971 TYPE (DT_) ,
INTENT(INOUT) :: DT
972 TYPE(MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
973 TYPE(PYTHON_) ,
INTENT(INOUT) :: PYTHON
974 TYPE(NAMES_AND_TITLES_),
INTENT(INOUT) :: NAMES_AND_TITLES
975 type (glob_therm_) ,
intent(inout) :: glob_therm
976 type (PBLAST_) ,
intent(inout) :: PBLAST
977 type (rbe3_) ,
intent(inout) :: RBE3
979 INTEGER ,
INTENT(IN) :: NDAMP_VREL,NDAMP_VREL_RBYG
980 INTEGER ,
INTENT(IN) :: ID_DAMP_VREL(NDAMP_VREL),FR_DAMP_VREL(NSPMD+2,NDAMP_VREL)
981 TYPE(SKEW_),
INTENT(INOUT) ::
982 INTEGER,
INTENT(IN) :: LIFLOW
983 INTEGER,
INTENT(IN) :: LRFLOW
989 INTEGER NODFT, NODLT, I,J, N,
990 . K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K, ISK, KK1,
991 . N0, N1, N2, NN, NNOD, NSENSOR,
992 . isync, two_ints(2),
993 . neltst,ityptst,nwaft, nbncl, nbikl,
994 . nbnodl, nbnodlr,greftsk,greltsk,
995 . istop, nfia, nfea, nfoa, ndma, ndin,
996 . nfnca, nftca,ndma2, nfnca2, nftca2,
997 . l1,l2,l3,ll1,ll2,ll3,nft2,lisendp_pxfem,
998 . lirecvp_pxfem,ndama2,flg_kj2,ncont,bid,k12,ivad,iad_grel,
999 . flg_kj2_raz,i_exch_flg_raz
1000 INTEGER :: LISENDP_CRK,LIRECVP_CRK
1001 INTEGER :: I13A,,I13C,I13D,I13E,,I13G,I13H,I13I
1002 INTEGER :: I15A,I15B,I15C,I15D,I15E,I15F,I15G,I15H,I15I,I15J,I15K
1003 INTEGER :: I15ATH,I35ATH
1004 INTEGER :: I87A,I87B,I87C,I87D,I87E,I87F,I87G,I87H,I87I,I87J,I87K,
1005 . i87l,i87m,i87n,imsch,iad1b,iad1,iad2,i2msch, ismsch, onofp
1006 INTEGER CPLXIT, ADRNOD, ONOF, ONFELT, ICH,IFLGADM, MADENDREQUEST
1008 INTEGER IDUM1, DIM6, DIM_EXCH
1011 . rdum1,maduf,rbuf(10)
1013 INTEGER KSPH1,KSPH21,KSPH22,KSPH23,IUN,
1014 . kspactiv,ksp2sort,neltsa,ityptsa,idtnod
1017 INTEGER NBINTC, LENR, LENS, LENI, SIZI, ISIZXV ,ILENXV,
1018 . i2size, lsend1, lrecv1, lsend2, lrecv2, npartl,
1019 . islen7, irlen7, islen11, irlen11, lisendp, lirecvp,
1020 . islen17, irlen17,irlen7t,islen7t,lindidel,lbufidel,lbufseglo,
1021 . islen20, irlen20, islen20t, irlen20t, nbint20,
1022 . islen20e, irlen20e,lag_sec,lens1,lenr1,int18kine,
1023 . nrbykin_l, int24use, neleml,i24maxnsne,int24e2euse
1024 INTEGER :: INT7ITIED
1025 INTEGER,
DIMENSION(:,:),
ALLOCATABLE ::
1026 . isendto,ircvfrom,fr_nbcc,fr_nbcci2,fr_nbcc1
1027 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
1028 . intlist,niskyfi,isendp,irecvp, irbkin_l,
1029 . ipartl, niskyfie, tagel,
1030 . isendp_pxfem,irecvp_pxfem,count_remslv,count_remslve,
1032 INTEGER,
DIMENSION(:),
ALLOCATABLE,
TARGET :: CNEL,ADDCNEL,ADDTMPL
1033 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
1034 . ISENDP_CRK,IRECVP_CRK
1035 INTEGER NSPHACTG,SPH_IORD1
1036 INTEGER,
DIMENSION(1),
TARGET :: IMP_DUM
1038 my_real,
DIMENSION(:),
ALLOCATABLE :: dretri, xsec,qfricint,icodr0,icodt0,
1039 . stifn_tmp,stifr_tmp
1040 SAVE isendto, ircvfrom, intlist, fr_nbcc, niskyfi, fr_nbcci2,
1041 . nbintc, i2size, islen7 ,irlen7 ,islen11 ,irlen11,
1042 . ilenxv, isizxv, islen17, irlen17,irlen7t,islen7t,
1043 . islen20, irlen20, islen20t, irlen20t, nbint20, niskyfie,
1044 . islen20e, irlen20e, nrbykin_l, irbkin_l, qfricint,
1046 SAVE dretri, xsec, lisendp, lirecvp, isendp, irecvp,
1047 . cnel, addcnel, addtmpl, ipartl, npartl, lindidel, lbufidel,
1050 . dt2save, mas, bb, wfexc,trest,dtrest,
1051 . dmast, dinert, factb,dampt,
1052 . xsens(12,sensors%NSENSOR),dampa3
1053 my_real fxbmvn(lencp),fxbsv(lenlm),fxbse(15*nfxbody),
1054 . fxbmcd(lenmcd),fxbfp(lenvar),fxbfc(lenlm),fxbefw(nfxbody),
1055 . fxbedp(nfxbody),fxbgrp(lenvar),fxbgrw(nfxbody)
1056 my_real,
DIMENSION(:,:),
ALLOCATABLE :: dxancg
1057 my_real dt2prev, dtmin1_save, target_dt
1058 SAVE imsch, i2msch, ismsch
1060 SAVE nfia, nfea, nfoa, ndma, ndin
1061 . i13a,i13b,i13c,i13d,i13e,i13f,i13g,i13h,i13i,
1062 . i15a,i15b,i15c,i15d,i15e,i15f,i15g,i15h,i15i,i15j,i15k,
1063 . i87a,i87b,i87c,i87d,i87e,i87f,i87g,i87h,i87i,i87j,i87k,i87l,
1064 . i87m,i87n,i15ath,i35ath,lag_sec,nft2,ndama2
1065 INTEGER NDDL0,NNZK0,LENQMV,NV46,(NINTER),NINT7,NT_IMP,
1066 . NNDL,IT,NMC2,LI13,DIRUL(NFXVEL),NUM_IMP1(NINTER),
1067 . FR_RBE2M(SFR_RBE2),R2SIZE,
1068 . NUM_IMPL(NINTER,NTHREAD), I_OPT_STOK(NINTER),IT_T,NTMP
1069 INTEGER IER1,,IBUCK,NMRBE2,NTHOLD
1070 SAVE nmrbe2,r2size,nint7
1071 INTEGER,
DIMENSION(:),
POINTER :: NS_IMP,NE_IMP,IND_IMP
1072 TYPE (IMPBUF_STRUCT_),
TARGET :: IMPBUF_TAB
1073 my_real,
DIMENSION(:) ,
POINTER :: FEXT_IMP,R_IMP
1074 my_real ,DMCP(NUMGEO)
1076 INTEGER LWIBEM, LWRBEM, IERROR, IERROR2, INTER_ERRORS
1077 INTEGER,
DIMENSION(:),
ALLOCATABLE :: WIBEM
1078 my_real,
DIMENSION(:),
ALLOCATABLE :: WRBEM
1080INTEGER NKCOND, NDDLG, NRP, NCP, NKCOND_INI,
1081 INTEGER LWIFLOW, LWRFLOW
1082 INTEGER,
DIMENSION(:),
ALLOCATABLE :: WIFLOW
1083 my_real,
DIMENSION(:),
ALLOCATABLE :: wrflow
1084 SAVE lwiflow, lwrflow, wiflow, wrflow
1086 INTEGER,
DIMENSION(:),
ALLOCATABLE :: CDDLP
1088 TYPE(dmumps_struc) MUMPS_PAR
1092 my_real,
DIMENSION(:,:),
ALLOCATABLE :: madclfrecv,partsav2
1094 INTEGER MADYMO_DEL,MADYMO_DEL_GLOBAL
1095 INTEGER,
DIMENSION(:),
ALLOCATABLE ::MAD_TAG_SOL, MAD_TAG_SH,MAD_TAG_TG,MAD_FAIL_ELEMENTS
1098 INTEGER ITSK, NODFTSK, NODLTSK, NUMNTSK, NDTSK, IPMTSK,
1099 . partftsk, partltsk, nwaftsk, i16tsk,
1100 . neltstt, ityptstt,igmtsk,ngrouc, ngrounc,
1102 . kindrby(nrbykin), nindex1(ninter), nindex2(ninter),
1103 . nindex3(ninter), nindex4(ninter), kindrbym(nrbym),
1104 . omp_get_thread_num,iadisk,rnum_siz,rns,nindexp,ni,lenc,ithout
1105 integer :: omp_address
1106 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IGROUC
1107 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IGROUNC
1109 EXTERNAL omp_get_thread_num
1110 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUFIDEL, INDIDEL,RENUM,IBUFSEGLO,
1112 my_real DT2TT,D_TSTART,D_TSTOP
1113 my_real XSLV(18,NINTER),XMSR(12,NINTER),
1114 . vslv(6,ninter),vmsr(6,ninter),
1118 INTEGER FR_RBY6(SFR_RBY)
1120 . frl6(15,6,nrlink),fnl6(15,6,nlink),
1121 . frwl6(7,6,nrwall),rbym6(6,6,nrbym),sphg_f6(4,6,nbgauge)
1122 DOUBLE PRECISIONDIMENSION(:,:,:)ALLOCATABLE :: RBY6
1123 my_real FRL(4,NRLINK), FNL(4,NLINK)
1127 INTEGER(NSPMD+1), FR_RMS(+1)
1128 INTEGER,
POINTER,
DIMENSION(:) ::
1130 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IKINE
1131 my_real,
DIMENSION(:),
ALLOCATABLE :: stk_sn,stk_sr,fcluster,mcluster
1132 my_real,
DIMENSION(:),
ALLOCATABLE :: noda_fext
1134 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INT18ADD,TAGPENE
1135 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IDAMP_RDOF_TAB
1136 my_real,
DIMENSION(:,:),
ALLOCATABLE :: MTF, CAND_SAV
1139 INTEGER IGROUPFLG(2)
1140 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IGROUPC,IGROUPTG,IGROUPS
1144 my_real,
DIMENSION(:),
ALLOCATABLE :: sfem_nodvar
1145 my_real,
DIMENSION(:),
ALLOCATABLE :: sfem_nodvar_ale
1146 INTEGER S_SFEM_NODVAR
1149 INTEGER,
DIMENSION(:),
ALLOCATABLE :: UNCOMP_FR,FR_LOC,
1150 * UNCOMP_FRI2M,FR_LOCI2M
1151 INTEGER NB_FR,NB_FRI2M
1154 my_real,
DIMENSION(:),
ALLOCATABLE :: mcp_off
1158 INTEGER,
DIMENSION(:),
ALLOCATABLE :: FR_I24
1159 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IAD_I24
1161 . delta_pmax_gap(ninter)
1162 INTEGER DELTA_PMAX_GAP_NODE(NINTER)
1163 INTEGER S_LOADPINTER, NPRESLOAD
1164 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: TAGNCONT
1165 INTEGER,
DIMENSION(:),
ALLOCATABLE :: LOADP_HYD_INTER, LOADP_TAGDEL
1168 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NB25_CANDT
1169 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NB25_IMPCT
1170 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NB25_DST1
1171 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NB25_DST2
1172 SAVE nb25_candt,nb25_impct,nb25_dst1,nb25_dst2
1176 INTEGER,
DIMENSION(:),
ALLOCATABLE :: FR_I25
1177 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IAD_I25
1179 REAL(kind=4),
DIMENSION(:,:),
ALLOCATABLE :: FSKYN25
1181 my_real maxdgap(ninter)
1182 INTEGER :: FLAG_SLIPRING_UPDATE,FLAG_RETRACTOR_UPDATE
1185 INTEGER IDEL7NOK_R2R,IDEL7NOK_SAV,NUMSPH_GLO_R2R,FLG_SPHINOUT_R2R
1186 INTEGER,
DIMENSION(:),
ALLOCATABLE :: OFF_SPH_R2R
1189 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) :: ISENSINT
1192 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ICONTACT_OLD
1195 . ,
DIMENSION(:),
ALLOCATABLE :: waspsym
1197 INTEGER LSKYI_SMS_NEW
1198 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) ::
1199 my_real,
DIMENSION(:),
ALLOCATABLE :: T2FAC_SMS
1200 my_real,
DIMENSION(:),
ALLOCATABLE :: mskyi_fi_sms
1201 INTEGER,
DIMENSION(:),
ALLOCATABLE
1202INTEGER,
DIMENSION(:),
ALLOCATABLE :: LIST_RMS
1203 my_real,
DIMENSION(:,:),
ALLOCATABLE :: CJWORK
1204 my_real,
DIMENSION(:,:),
ALLOCATABLE :: frea
1205 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IRWL_WORK
1206 my_real,
DIMENSION(:,:),
ALLOCATABLE :: sms_vfi
1207 DOUBLE PRECISION,
DIMENSION(:,:),
ALLOCATABLE :: MW6
1212 LOGICAL :: CHECK_NPOLH
1214 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ,TAGTRIMTG
1217 INTEGER :: IFTHE, ICONDN, IDX_FTHE, IDX_CONDN, IDX_PINCH,MSTOP_DT_THERM
1220 my_real,
DIMENSION(:,:),
ALLOCATABLE :: stressmean
1221 my_real,
DIMENSION(:),
ALLOCATABLE :: forneqsky
1223 INTEGER :: ,NUMSKW_L_SEND,NODFTSK_2,NODLTSK_2
1224 INTEGER,
DIMENSION(NUMSKW) :: ISKWP_L_SEND
1225 INTEGER,
DIMENSION(NSPMD) :: RECVCOUNT
1226 INTEGER,
DIMENSION(NTHREAD) :: NODFT_ASSPAR, NODLT_ASSPAR
1228 REAL(kind=8) :: secs
1229 REAL(kind=8) :: tt_double
1231 . dtnod_nlocal,t_kin
1232 INTEGER,
DIMENSION(:),
ALLOCATABLE ::IBUFPDEL, NINDEXPDEL
1234 DOUBLE PRECISION :: argin,argout
1235 DOUBLE PRECISION,
DIMENSION(:,:,:),
ALLOCATABLE :: RBY6_C
1241 INTEGER SIZE_RBY6_C,FL_VREL
1245 type(viper_coupling_) :: VIPER
1248 INTEGER :: SZ_NPCONT2
1249 my_real,
DIMENSION(:,:),
ALLOCATABLE :: NPCONT2
1252 my_real,
TARGET,
DIMENSION(:,:),
ALLOCATABLE :: xyz
1253 my_real,
POINTER,
DIMENSION(:,:),
contiguous :: ptrx, ptrx_offset
1254 TYPE(sh_offset_) :: SH_OFFSET_TAB
1256 INTEGER IFLAG, COMPTREAC
1292 INTEGER :: STATE_H3D, STATE_ANIM
1293 LOGICAL :: BOOL_RESTART
1295 INTEGER :: NATIV_SMS_SIZ
1298 TYPE() :: SHOOT_STRUCT
1299 INTEGER :: S_ELEM_STATE
1300 LOGICAL,
DIMENSION(:),
ALLOCATABLE :: ELEM_STATE
1301 INTEGER :: SIZE_ADDCNEL
1302 INTEGER :: SIZE_CNEL
1303 LOGICAL :: GLOBAL_ACTIVE_ALE_ELEMENT
1305 INTEGER :: SIZE_NPBY
1308 LOGICAL :: NEED_COMM_INTER18
1309 INTEGER :: NUMBER_INTER18
1310 INTEGER,
DIMENSION(NINTER) :: INTER18_LIST
1311 TYPE(
array_type),
DIMENSION(:),
ALLOCATABLE :: XCELL_REMOTE
1313 my_real,
DIMENSION(:),
ALLOCATABLE :: fsky_l
1315 INTEGER :: COMM_INT25_SOLID_EROSION
1317 INTEGER :: CHECK_NEIGH_FLAG,CHECK_NEIGH_FLAG_RES
1319 integer,
dimension(nspmd+2) :: frontier_global_mv
1325 PARAMETER (MAXFUNC = 100)
1326 integer :: numnod_old,numnodm_old
1327 integer :: new_crack
1331 my_real,
DIMENSION(:),
ALLOCATABLE :: thick_sh4
1332 my_real,
DIMENSION(:),
ALLOCATABLE :: thick_sh3
1333 my_real,
DIMENSION(:),
ALLOCATABLE :: thick_nod
1334 my_real,
DIMENSION(:),
ALLOCATABLE :: area_nod
1335 my_real,
DIMENSION(:),
ALLOCATABLE :: area_sh4
1336 my_real,
DIMENSION(:),
ALLOCATABLE :: area_sh3
1340 my_real,
DIMENSION(:),
ALLOCATABLE :: admerr_thick_sh4
1341 my_real,
DIMENSION(:),
ALLOCATABLE :: admerr_thick_sh3
1342 my_real,
DIMENSION(:),
ALLOCATABLE :: admerr_thick_nod
1343 my_real,
DIMENSION(:),
ALLOCATABLE :: admerr_area_nod
1344 my_real,
DIMENSION(:),
ALLOCATABLE :: admerr_area_sh4
1345 my_real,
DIMENSION(:),
ALLOCATABLE :: admerr_area_sh3
1348 type (ams_work_) :: ams_work
1350 type(component_),
dimension(:),
allocatable :: component
1354 double precision :: dt2max_coupling
1356 ELEMENT%SHELL%OFFSET = numels + numelq
1358 interfaces%NINTER = ninter
1359 interfaces%npari = npari
1361 CALL my_alloc(rby6,8,6,nrbykin)
1362 CALL my_alloc(dxancg,3,numnod)
1363 CALL my_alloc(nb25_candt,parasiz)
1364 CALL my_alloc(nb25_impct,parasiz)
1365 CALL my_alloc(nb25_dst1,parasiz)
1366 CALL my_alloc(nb25_dst2,parasiz)
1367 CALL my_alloc(igrouc,ngroup)
1368 CALL my_alloc(igrounc,ngroup)
1370 ALLOCATE(interfaces%PON%ADSKYI(0:numnod+1))
1371 bool_restart = .true.
1374 ALLOCATE(int18add(ninter+1))
1376 int18add(ninter+1) = 0
1378 ALLOCATE (idamp_rdof_tab(sicontact))
1379 ALLOCATE( icontact_old(sicontact))
1382 IF ((nodadt==1).AND.
1383 . (idamp_rdof==ndamp .OR. ndamp>0 .OR. istat==3))
THEN
1389 IF(nint(dampr(21,i))==4) flg_damp_funct=1
1398 nsensor = sensors%NSENSOR
1400 IF(glob_therm%ITHERM_FE>0)
THEN
1424 flag_slipring_update = 0
1425 flag_retractor_update = 0
1426 IF (ndamp_vrel_rbyg > 0)
THEN
1427 size_rby6_c = nrbykin
1431 ALLOCATE(rby6_c(2,6,size_rby6_c))
1435 lmpc = lmpc + ibmpc(i)
1441 size_npby = snpby/nnpby
1466 pblast%PBLAST_DT%IDT = 0
1469 flg_sphinout_r2r = 0
1471 CALL assinit(element%PON%ADSKY,nodes%BOUNDARY_ADD,nodes%BOUNDARY,element%PON%PROCNE,lisendp,lirecvp)
1473 .
CALL assinit_pxfem(adsky_pxfem,inod_pxfem,nodes%BOUNDARY_ADD,nodes%BOUNDARY,
1474 . procne_pxfem,lisendp_pxfem,lirecvp_pxfem)
1477 . nodes%BOUNDARY,procne_crk,lisendp_crk,
1479 ALLOCATE(isendto(ninter+1,nspmd+1))
1480 ALLOCATE(ircvfrom(ninter+1,nspmd+1))
1481 isendto(1:ninter+1, 1:nspmd+1) = 0
1482 ircvfrom(1:ninter+1, 1:nspmd+1) = 0
1484 ALLOCATE(intlist(2*ninter))
1485 ALLOCATE(intlist25(ninter25))
1486 ALLOCATE(niskyfi(ninter))
1487 ALLOCATE(niskyfie(ninter))
1488 ALLOCATE(count_remslv(ninter))
1489 ALLOCATE(count_remslve(ninter))
1490 count_remslv(1:ninter)=0
1491 count_remslve(1:ninter)=0
1492 ALLOCATE(fr_nbcc(2,nspmd+1))
1493 ALLOCATE(fr_nbcci2(2,nspmd+1))
1494 ALLOCATE(dretri(5*ninter))
1495 ALLOCATE(xsec(3*4*nsect))
1496 ALLOCATE(irbkin_l(nrbykin))
1497 ALLOCATE(element%PON%ISENDP(
min(lisendp,1):lisendp))
1498 ALLOCATE(element%PON%IRECVP(
min(lirecvp,1):lirecvp))
1499 ALLOCATE(isendp_pxfem(
min(lisendp_pxfem,1):lisendp_pxfem))
1500 ALLOCATE(irecvp_pxfem(
min(lirecvp_pxfem,1):lirecvp_pxfem))
1501 ALLOCATE(isendp_crk(
min(lisendp_crk,1):lisendp_crk))
1502 ALLOCATE(irecvp_crk(
min(lirecvp_crk,1):lirecvp_crk))
1503 ALLOCATE(fr_nbcc1(2,nspmd+1))
1507 nloadp_hyd_inter = 0
1509 IF(nintloadp > 0 )
THEN
1510 ALLOCATE(loadp_hyd_inter(nloadp_hyd),stat=ierror2)
1511 ierror = ierror + ierror2
1513 IF(iloadp(sizloadp*(k-1)+5) > 0 )
THEN
1515 loadp_hyd_inter(k) = nloadp_hyd_inter
1520 IF(nloadp_hyd_inter > 0)
THEN
1521 ALLOCATE(tagncont(nloadp_hyd_inter,numnod),stat=ierror2)
1522 ierror = ierror + ierror2
1524 CALL ancmsg(msgid=158,anmode=aninfo,
1530 ALLOCATE(tagncont(0,0))
1533 s_loadpinter = ninter*nloadp_hyd
1536 IF(nloadp_hyd > 0 )
THEN
1538 npresload = npresload + iloadp(sizloadp*(k-1)+1)/4
1540 ALLOCATE(loadp_tagdel(npresload),stat=ierror2)
1541 loadp_tagdel(1:npresload) =0
1543 ALLOCATE(loadp_tagdel(0))
1546 IF(interfaces%PARAMETERS%INTCAREA>0)
THEN
1547 ALLOCATE(interfaces%PARAMETERS%INTAREAN(numnod))
1549 ALLOCATE(interfaces%PARAMETERS%INTAREAN(0))
1558 ALLOCATE(output%TH%TH_SURF%CHANNELS(0,0))
1561 IF(output%TH%TH_SURF%IOK > 0 )
THEN
1562 IF(output%TH%TH_SURF%LOADP_FLAG > 0 )
THEN
1563 output%TH%TH_SURF%NSEGLOADPF = 0
1565 output%TH%TH_SURF%NSEGLOADPF = output%TH%TH_SURF%NSEGLOADPF + iloadp(sizloadp*(k-1)+1)/4
1567 output%TH%TH_SURF%NSEGLOADPB = 0
1568 DO k=nloadp_f+1,pblast%NLOADP_B
1569 output%TH%TH_SURF%NSEGLOADPB = output%TH%TH_SURF%NSEGLOADPB + iloadp(sizloadp*(k-1)+1)/4
1571 output%TH%TH_SURF%NSEGLOADP = 0
1572 DO k=nloadp_f+pblast%NLOADP_B+1,nloadp
1573 output%TH%TH_SURF%NSEGLOADP = output%TH%TH_SURF%NSEGLOADP + iloadp(sizloadp*(k-1)+1)/4
1579 IF((idel7ng>0).OR.(irad2r/=0).OR.(
alemuscl_param%IALEMUSCL>0).OR.(pdel>0))
THEN
1580 size_addcnel = numnod+1
1582 neleml = numels+numelq+numelc+numelt+numelp+
1584 s_elem_state = neleml
1591 ALLOCATE(cnel(0:size_cnel))
1592 ALLOCATE(addcnel(0:size_addcnel))
1593 IF((idel7ng>0).OR.(irad2r/=0).OR.(
alemuscl_param%IALEMUSCL>0).OR.(pdel>0))
THEN
1595 ALLOCATE(addtmpl(0:numnod+1))
1596 ierror = ierror + ierror2
1597 neleml = numels+numelq+numelc+numelt+numelp+
1599 ALLOCATE(tagel(1:neleml))
1605 ALLOCATE(addtmpl(0),tagel(0))
1607 ALLOCATE(ipartl(npart))
1608 ALLOCATE(partsav2(2,npart))
1609 ALLOCATE( elem_state(s_elem_state) )
1610 elem_state(1:s_elem_state) = .true.
1614 glob_therm%NODADT_THERM = 0
1615 IF(glob_therm%IDT_THERM == 1)
THEN
1616 IF(ninter>0.OR.nodadt>0) glob_therm%NODADT_THERM = 1
1618 IF(glob_therm%IDT_THERM == 1)
THEN
1619 ALLOCATE(icodt0(numnod))
1620 ALLOCATE(icodr0(numnod))
1626 ALLOCATE(mcp_off(numnod))
1627 mcp_off(1:numnod) = 1.0
1631 IF(glob_therm%ITHERM_FE > 0 )
THEN
1632 IF(iparit == 3 )
THEN
1633 ifthe = numnod+3*numnod*nthread
1634 ALLOCATE(fthe(ifthe), fthesky(lsky))
1635 ELSEIF(iparit /= 0 )
THEN
1637 ALLOCATE(fthe(ifthe), fthesky(lsky
1639 ifthe = numnod*nthread
1640 ALLOCATE(fthe(ifthe), fthesky(0))
1642 ALLOCATE(qfricint(ninter))
1643 qfricint(1:ninter) = zero
1644 IF (glob_therm%NODADT_THERM
THEN
1645 IF(iparit == 0 )
THEN
1646 icondn = numnod*nthread
1647 ALLOCATE (condn(icondn), condnsky(0))
1650 ALLOCATE (condn(icondn),stat=ierr)
1651 ALLOCATE (condnsky(lsky),stat=ierr)
1657 ALLOCATE(fthe(ifthe), fthesky(0))
1658 ALLOCATE(qfricint(ninter))
1659 qfricint(1:ninter) = zero
1660 ALLOCATE(condn(icondn),condnsky(0))
1663 IF (glob_therm%INTHEAT > 0 )
THEN
1664 IF(iparit /= 0 )
THEN
1665 ALLOCATE(ftheskyi(lskyi))
1666 ftheskyi(1:lskyi) = 0
1668 ALLOCATE(ftheskyi(0))
1670 IF (glob_therm%NODADT_THERM == 1)
THEN
1671 IF(iparit /= 0 )
THEN
1672 ALLOCATE(condnskyi(lskyi))
1674 ALLOCATE(condnskyi(0))
1677 ALLOCATE(condnskyi(0))
1680 ALLOCATE(ftheskyi(0))
1681 ALLOCATE(condnskyi(0))
1686 IF(iplyxfem > 0 )
THEN
1688 ALLOCATE(
plysky(nplymax))
1692 ALLOCATE(
ply(i)%A(4,nplyxfe),
1693 .
plysky(i)%FSKY(4,lskypxfem
1696 NULLIFY(
ply(i)%ITAG)
1697 ALLOCATE(
ply(i)%ITAG(nplyxfe))
1704 ALLOCATE(
ply(i)%A(4,nplyxfe*nthread))
1709 IF(anim_ply > 0)
THEN
1710 ALLOCATE(vn_nod(3,nplyxfe))
1713 ALLOCATE(vn_nod(0,0))
1719 IF(intplyxfem > 0 )
THEN
1720 IF(iparit /= 0 )
THEN
1723 ALLOCATE(
plyskyi%FSKYI(lskyi,5))
1731 IF(irigid_mat > 0 )
THEN
1732 ALLOCATE(vrbym(3*nrbym),vrrbym(3*nrbym),
1733 . arbym(3*nrbym),arrbym(3*nrbym))
1739 ALLOCATE(vrbym(0),vrrbym(0),arbym(0),arrbym(0))
1745 IF( ialelag > 0)
THEN
1746 IF(iparit == 0)
THEN
1747 ALLOCATE (aflow(3*numnod*nthread))
1749 ALLOCATE(
ifoam(numnod*nthread))
1752 ALLOCATE (aflow(3*numnod))
1753 ALLOCATE(ffsky(3*lsky))
1754 ALLOCATE(
ifoam(numnod))
1765 ALLOCATE(aflow(0),vflow(0),
1766 . dflow(0),wflow(0),
1767 . ffsky(0),
ifoam(0),
1779 CALL ancmsg(msgid=153,anmode=aninfo,
1788 CALL ancmsg(msgid=153,anmode=aninfo,
1795 ALLOCATE(
ilevnod(0:numnod),stat=ierr)
1797 CALL ancmsg(msgid=20,anmode=aninfo)
1802 IF(istatcnd /= 0)
THEN
1807 CALL ancmsg(msgid=159,anmode=aninfo,
1811 ALLOCATE(acnd(3,numnod),arcnd(3,numnod),
1812 . stcnd(nthread*numnod) ,strcnd(numnod),
1815 CALL ancmsg(msgid=159,anmode=aninfo,
1821 ALLOCATE(acnd(0,0),arcnd(0,0),
1822 . stcnd(0) ,strcnd(0) )
1825 IF( (anim_n(18) /= 0 .OR. h3d_data%N_SCAL_STIFR /= 0) .AND. iroddl /= 0)
THEN
1826 ALLOCATE(stifr_tmp(numnod))
1828 ALLOCATE(stifr_tmp(0))
1830 IF( anim_n(19) /= 0 .OR. h3d_data%N_SCAL_STIFN /= 0)
THEN
1831 ALLOCATE(stifn_tmp(numnod))
1833 ALLOCATE(stifn_tmp(0))
1838 IF(anim_ce(2156)/=0 .OR. iadmerrt/=0 .OR.
1839 . h3d_data%SH_SCAL_ERR_THK /= 0)
THEN
1840 ALLOCATE(err_thk_sh4(numelc))
1841 ALLOCATE(err_thk_sh3(numeltg))
1842 err_thk_sh4(1:numelc) = zero
1843 err_thk_sh3(1:numeltg) = zero
1845 ALLOCATE(err_thk_sh4(0))
1846 ALLOCATE(err_thk_sh3(0))
1849 IF(inter_ithknod/=0)
THEN
1850 ALLOCATE(thksh4(numelc),thksh3(numeltg),
1854 CALL ancmsg(msgid=20,anmode=aninfo)
1863 IF( anim_ce(2156)/=0 .OR. h3d_data%SH_SCAL_ERR_THK /=0)
THEN
1864 CALL my_alloc(area_sh4,numelc)
1865 CALL my_alloc(area_sh3,numeltg)
1866 CALL my_alloc(area_nod,numnod)
1867 CALL my_alloc(thick_sh4,numelc)
1868 CALL my_alloc(thick_sh3,numeltg)
1869 CALL my_alloc(thick_nod,numnod)
1872 IF (iadmerrt/=0)
THEN
1873 CALL my_alloc(admerr_area_sh4,numelc)
1874 CALL my_alloc(admerr_area_sh3,numeltg
1875 CALL my_alloc(admerr_area_nod,numnod)
1876 CALL my_alloc(admerr_thick_sh4,numelc)
1877 CALL my_alloc(admerr_thick_sh3,numeltg)
1878 CALL my_alloc(admerr_thick_nod,numnod)
1885 IF(idtmins /= 0)
THEN
1897 . x_sms(3,numnod), p_sms(3,numnod),
1898 . y_sms(3,numnod), z_sms(3,numnod),
1899 . prec_sms(numnod), xmom_sms(3,numnod),
1900 . prec_sms3(3,numnod),diag_sms3(3,numnod),
1901 . t2main_sms(6,numnod),
1902 . t2fac_sms(numnod),
1905 CALL ancmsg(msgid=19,anmode=aninfo,
1906 . c1=
'(/DT/.../AMS)')
1913 ELSEIF(idtmins_int/=0)
THEN
1925 . x_sms(3,numnod), p_sms(3,numnod),
1926 . y_sms(3,numnod), z_sms(3,numnod),
1927 . prec_sms(numnod), xmom_sms(3,numnod),
1928 . prec_sms3(3,numnod),diag_sms3(3,numnod),
1929 . t2main_sms(6,numnod),
1930 . t2fac_sms(numnod),
1933 CALL ancmsg(msgid=19,anmode=aninfo,
1934 . c1=
'(/DT/.../AMS)')
1954 . x_sms(0,0), p_sms(0,0),
1955 . y_sms(0,0), z_sms(0,0), prec_sms(0),
1956 . xmom_sms(0,0), prec_sms3(0,0),diag_sms3(0,0),
1962 IF(idtmins == 2 .AND. nintstamp /=0)
THEN
1967 CALL ancmsg(msgid=19,anmode=aninfo,
1968 . c1=
'(/DT/.../AMS)')
1976 IF(idtmins /= 0 .OR. idtmins_int /= 0)
THEN
1980 CALL ancmsg(msgid=19,anmode=aninfo,
1981 . c1=
'(/DT/.../AMS)')
1988 IF(idtmins == 2 .OR. idtmins_int
THEN
1989 ALLOCATE(mskyi_sms(lskyi_sms),
iskyi_sms(lskyi_sms,3),
1991 . lti_sms(2*lskyi_sms),
1994 CALL ancmsg(msgid=19,anmode=aninfo,
1995 . c1=
'(/DT/.../AMS)')
2003 IF (ireac == 1 )
THEN
2009 IF (igrelem == 1)
THEN
2012 nelem=numelsg+3*numels16g+numsphg+
2013 . numelcg+numeltgg+numelqg+
2014 . numeltg + numelpg + 2*numelrg
2021 IF (igrelem == 1 )
THEN
2022 ALLOCATE(
grth(nelem+ngrth+1))
2023 ALLOCATE(
igrth(nelem+1))
2037 IF(nvolu > 0) igroupflg(1) = 1
2039 IF(ipm(2,i)/=19.AND.ipm(2,i)/=58) cycle
2040 IF(ipm(4,i) >= 4) igroupflg(1)=1
2042 IF(igroupflg(1) == 1)
THEN
2043 ALLOCATE(igroupc(numelc))
2044 ALLOCATE(igrouptg(numeltg))
2046 ALLOCATE(igroupc(0))
2047 ALLOCATE(igrouptg(0))
2050 ALLOCATE(igroups(numels))
2059 ALLOCATE(renum(rnum_siz))
2065 nisubmax =
max(nisubmax,ipari(36,i))
2067 ALLOCATE(isensint(nisubmax+1,ninter))
2068 isensint(1:nisubmax+1,1:ninter) = 0
2070 idel7nok_sav=idel7nok
2079 l1 = 1+nixs*numels + nsvois*nixs
2083 ll2 = ll1+6*numels10
2084 ll3 = ll2+12*numels20
2085 IF(nadmesh/=0.AND.idel7ng>=1)
THEN
2086 ALLOCATE(tagtrimc(numelc))
2087 ALLOCATE(tagtrimtg(numeltg))
2089 ALLOCATE(tagtrimc(0))
2090 ALLOCATE(tagtrimtg(0))
2098 ALLOCATE(stressmean(6,numels))
2101 IF(iparit /= 0 )
THEN
2102 IF(numels10g ==0)
THEN
2105 forneqsky(1:18*lsky) = zero
2109 forneqsky(1:48*lsky) = zero
2112 ALLOCATE(forneqsky(0))
2114 stressmean(1:6,1:numels)=zero
2116 ALLOCATE(stressmean(0,0))
2117 ALLOCATE( forneqsky(0))
2120 CALL newskw_init(iskwp,numskw_l,nskwp,numskw_l_send,iskwp_l_send,recvcount)
2121 partsav2(1:2,1:npart) = zero
2124 ALLOCATE( inter_struct(ninter) )
2125 ALLOCATE( sort_comm(ninter) )
2132 CALL python_register(python,nodes,numnod,
2133 . ixs, nixs, numels,
2134 . element%SHELL%IXC, nixc, numelc,
2135 . ixp, nixp, numelp,
2136 . ixt, nixt, numelt,
2137 . ixq, nixq, numelq,
2138 . ixtg, nixtg, numeltg,
2139 . ixr, nixr, numelr,
2140 . iparg, ngroup, nparg, mvsiz)
2142 IF(python%NB_FUNCTS > 0)
CALL python_share_memory(python,nodes,numnod,
2143 . ixs, nixs, numels,
2144 . element%SHELL%IXC, nixc, numelc,
2145 . ixp, nixp, numelp,
2146 . ixt, nixt, numelt,
2147 . ixq, nixq, numelq,
2148 . ixtg, nixtg, numeltg,
2149 . ixr, nixr, numelr,
2150 . iparg, ngroup, nparg)
2154 k1=1+lipart1*(npart+nthpart)+2*9*(npart+nthpart)
2163 CALL funct_python_update_elements(python, ispmd,
2164 . n2d, ngroup, nixc, nixtg, nixs,nixq,
2165 . numgeo, numelc, numeltg, numels, numelq, nummat, numnod,
2166 . nparg, npropg, npropm, npropmi, npropgi,
2167 . snercvois, snesdvois, slercvois, slesdvois,
2168 . sthke, seani, npart,
2169 . elbuf_tab ,iparg ,geo ,
2170 . element%SHELL%IXC ,ixtg , ixs, ixq, pm ,bufmat ,
2172 . ipm ,igeo ,thke ,err_thk_sh4 ,err_thk_sh3,
2173 . nodes ,w ,ale_connectivity,
2174 . nercvois ,nesdvois ,lercvois ,lesdvois,
2175 . m51_n0phas, m51_nvphas, stack ,
2176 . ipart(k3:k4-1),ipart(k1:k2-1),ipart(k8:k9-1), ipart(k2:k3-1),
2178 . mat_elem%MAT_PARAM ,
fani_cell,glob_therm%ITHERM)
2185 k1=1+lipart1*(npart+nthpart)+2*9*(npart+nthpart)
2198 . ipart(k3),ipart(k8),ipart(k1),ipart(k2),ipart(k4),
2199 . ipart(k5) ,ipart(k6),sensors,tt ,dt2 ,iout, python ,nthread)
2206 need_comm_int25_solid_erosion = .false.
2207 comm_int25_solid_erosion = 0
2214 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk,
2215 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
2220 2 isendto ,ircvfrom ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,nodes%ITABM1 ,
2221 3 ipari ,iparg ,nodes%ITAB ,ixs(l1) ,ixs(l2) ,
2222 4 i13a ,i13b ,i13c ,i13d ,i13e ,
2223 5 i13f ,i13g ,i13h ,i13i ,i15a ,
2224 6 i15b ,i15c ,i15d ,i15e ,i15f ,
2225 7 i15g ,i15h ,i15i ,i87a ,i87b ,
2226 8 i87c ,i87d ,i87e ,i87f ,i87g ,
2227 9 nfia ,nfea ,nfoa ,ndma ,ndma2 ,
2229 b ixs ,ixq ,element%SHELL%IXC ,ixt ,ixp ,
2230 c ixr ,ixtg ,element%PON, nodes%IKINE ,
2231 d nodes%A ,nodes%AR ,nodes%V ,nodes%VR ,
2232 e nodes%X ,nodes%D ,nodes%MS ,nodes%IN ,nodes%STIFN ,
2233 f nodes%STIFR ,dmas ,diner ,fani ,anin ,
2234 g wa ,uwa ,pm ,geo ,
2235 h partsav ,parts0 ,monvol ,
2236 i i87h ,i87i ,i87j ,i87k ,
2238 k secbuf ,secfcum ,nstrf ,igrnod ,iexlnk ,
2240 m ixtg1 ,ibcl ,nodes%VISCN ,dd_r2r ,
2241 o elbuf ,ipart ,madprt ,madsh4 ,
2242 p madsh3 ,madsol ,madnod ,madfail ,igeo ,
2243 q intlist ,nbintc ,element%PON%PROCNE ,niskyfi ,nodes%WEIGHT ,
2244 r isizxv ,ilenxv ,addcni2 ,procni2 ,iad_i2m ,
2245 s fr_i2m ,fr_nbcci2,i2size ,fr_mad ,lwibem ,
2246 t lwrbem ,fxbfp ,fxbefw ,fxbedp ,fxbgrp ,
2248 v islen7 ,irlen7 ,islen11 ,irlen11 ,
2249 w lwiflow ,lwrflow ,iflow ,addcnel ,cnel ,
2250 x addtmpl ,ipartl ,npartl ,nfnca ,nftca ,
2251 y i15ath ,i35ath ,ipm ,sh4tree ,ipadmesh ,
2252 z msc ,inc ,sh3tree ,mstg ,intg ,
2253 a ptg ,fthe ,fthesky ,ftheskyi ,
nme17 ,
2254 b islen17 ,irlen17 ,irlen7t ,islen7t ,lindidel ,
2255 c lbufidel ,sh4trim ,sh3trim ,mscnd ,incnd ,
2256 d irlen20 ,islen20 ,irlen20t ,islen20t ,nbint20 ,
2257 e irlen20e ,islen20e ,niskyfie ,
2258 f nodes%MCP ,nodes%MS0 ,inod_pxfem,iel_pxfem,iadc_pxfem,
2259 g adsky_pxfem,nodes%ICODT ,nodes%ICODR ,ibfv ,admsms ,
2260 h
nodreac ,igrouc ,ngrouc ,igrounc ,ngrounc ,
2261 i fr_rby ,fr_rby6 ,npby ,
2263 k nelem ,lag_sec ,nprw ,diag_sms ,dmelc ,
2264 l dmeltg ,ngrth ,nft2 ,dmels ,dmeltr ,
2265 m dmelp ,dmelrt ,res_sms ,i87l ,irbe2 ,
2266 n lrbe2 ,nmrbe2 ,iad_rbe2 ,fr_rbe2 ,fr_rbe2m ,
2267 o r2size ,lpby ,procne_pxfem,isendp_pxfem,irecvp_pxfem ,
2268 p iadsdp_pxfem,iadrcp_pxfem,fr_nbcc1,rby ,int18kine ,
2269 q nodes%XDP ,i87m ,inod_crk ,iel_crk ,iadc_crk,
2270 r adsky_crk,procne_crk,isendp_crk,irecvp_crk,
2271 s iadsdp_crk,iadrcp_crk ,int24use,ndama2 ,
2272 t igroupc ,igrouptg ,igroups ,igroupflg ,dmint2 ,irbkin_l ,
2273 u nrbykin_l,kindrby ,elbuf_tab ,sensors ,dd_r2r_elem,
2274 v sdd_r2r_elem,kinet, nodes%WEIGHT_MD ,dmsph ,ioldsect,lbufseglo,
2275 w interfaces%INTBUF_TAB ,numsph_glo_r2r, flg_sphinout_r2r,i15k,
2276 y condn ,condnsky,kxfenod2elc ,elcutc ,nodedge,
2277 z iad_edge ,crknodiad,fr_edge ,fr_nbedge ,nodlevxf,
2278 x
crkedge ,xfem_tab ,isensint ,nisubmax ,
2279 1 intlist25 ,int24e2euse,tabmp_l ,
2280 2 i87n ,tab_mat,h3d_data,tagtrimc,tagtrimtg ,
2281 3 igrbric ,igrquad ,igrsh4n ,igrsh3n ,igrtruss ,
2282 4 igrbeam ,igrspring,igrpart ,forneqs ,int7itied,
2283 5 fxvel_fgeo,failwave,nloc_dmg,pinch_data ,slloadp,
2284 6 nodes%TAG_S_RBY,nfnca2 ,nftca2 ,nodes%IN0 ,sort_comm,stack,output,
2285 7 thke ,nodes%BOUNDARY_SIZE ,sh_offset_tab,
2286 8 need_comm_int25_solid_erosion,comm_int25_solid_erosion ,
2287 9 iskwn ,iframe ,loads ,glob_therm,pblast,rbe3)
2294 CALL split_asspar4(element%PON%ADSKY,numnod,nthread,nodft_asspar,nodlt_asspar,element%PON%SADSKY)
2296 IF (sh_offset_tab%NNSH_OSET
THEN
2297 ALLOCATE(xyz(3,numnod))
2298 xyz(1:3,1:numnod) = nodes%X(1:3,1:numnod)
2303 sh_offset_tab%NNSH_OSET = 0
2306 IF (sh_offset_tab%NNSH_OSET > 0)
THEN
2307 CALL assign_ptrx(ptrx,xyz,numnod)
2309 CALL assign_ptrx(ptrx,nodes%X,numnod)
2314 ALLOCATE( xcell_remote(ninter) )
2315 CALL int18_alloc(number_inter18,inter18_list,multi_fvm,ipari,xcell_remote,nspmd)
2317 1 igroups ,iparg ,elbuf_tab,multi_fvm%FORCE_INT ,
2318 2 ptrx , nodes%V , nodes%MS , kinet ,
2319 3 multi_fvm%X_APPEND,multi_fvm%V_APPEND,multi_fvm%MASS_APPEND,multi_fvm%KINET_APPEND,
2320 4 multi_fvm%FORCE_INT_PON)
2326 global_active_ale_element = .false.
2327 CALL check_ale_comm(iparg,elbuf_tab,global_active_ale_element,glob_therm%ITHERM)
2329 IF(nadmesh/=0.AND.idel7ng>=1) idel7nok = 0
2332 IF (glob_therm%IDT_THERM == 1)
THEN
2333 CALL bcsdtth_copy(nodes%ICODT, nodes%ICODR, icodt0, icodr0 ,1 )
2339 call init_global_frontier_monvol(ispmd,nspmd,nvolu,nsurf,monvol,
2340 . nimv,volmon,nrvolu,
2341 . fr_mv,frontier_global_mv, t_monvol,igrsurf )
2343 frontier_global_mv(1:nspmd+2) = 0
2346 call init_monvol_omp_structure(ispmd,nspmd,nvolu,nsurf,monvol,
2348 . fr_mv,t_monvol,igrsurf )
2351 IF (int24use == 1)
THEN
2352 ALLOCATE(iad_i24(nbintc+1,nspmd))
2355 * nodes%BOUNDARY_ADD, nodes%BOUNDARY,intlist,nbintc,
2356 * iad_i24 , sfr_i24, idum,i24maxnsne)
2357 ALLOCATE(fr_i24(sfr_i24))
2359 * nodes%BOUNDARY_ADD, nodes%BOUNDARY,intlist,nbintc,
2360 * iad_i24 , sfr_i24, fr_i24,i24maxnsne)
2363 * nodes%X,nodes%V,nodes%MS,nodes%ITAB,xyz,numnod,sh_offset_tab%NNSH_OSET)
2366 ALLOCATE(iad_i24(1,1))
2369 CALL init_i25_edge(nledge,ninter,npari,ipari,interfaces%INTBUF_TAB )
2370 IF(ninter25 /= 0)
THEN
2371 ALLOCATE(iad_i25(nbintc+1,nspmd))
2373 * nodes%BOUNDARY_ADD, nodes%BOUNDARY,intlist,nbintc,
2374 * iad_i25 , sfr_i25, idum)
2376 ALLOCATE(fr_i25(sfr_i25))
2378 * nodes%BOUNDARY_ADD, nodes%BOUNDARY,intlist,nbintc,
2379 * iad_i25 , sfr_i25, fr_i25)
2382 ALLOCATE(iad_i25(1,1))
2384 ALLOCATE(fskyn25(3,nbccnor))
2387 IF ((numsph_glo_r2r>0).AND.(flg_sphinout_r2r==1))
THEN
2388 ALLOCATE(off_sph_r2r(numnod))
2393 IF (glob_therm%NFXTEMP > 0 .AND. glob_therm%ITHERM_FE > 0.AND.tt==zero)
THEN
2394 CALL fixtemp(python,ibftemp ,fbftemp ,nodes%TEMP ,npc ,tf ,
2400 IF (anim_v(27)+h3d_data%N_VECT_PCONT2 > 0)
THEN
2402 ALLOCATE(npcont2(3,numnod))
2406 ALLOCATE(npcont2(3,0))
2411 IF(anim_v(5)+outp_v(5)+h3d_data%N_VECT_FINT+
2412 . anim_v(6)+outp_v(6)+h3d_data%N_VECT_FEXT >0 .or. vipercoupling)
THEN
2413 ALLOCATE(noda_fext(3*numnod))
2414 noda_fext(1:3*numnod)=zero
2416 ALLOCATE(noda_fext(3))
2422 CALL output_allocate_noda_pext(numnod, numnodg)
2424 IF (anim_v(19) + h3d_data%N_VECT_CLUST_FORCE > 0)
THEN
2425 ALLOCATE(fcluster(3*numnod))
2426 fcluster(1:3*numnod)=zero
2428 ALLOCATE(fcluster(3))
2431 IF (anim_v(20) + h3d_data%N_VECT_CLUST_MOM > 0)
THEN
2432 ALLOCATE(mcluster(3*numnod))
2433 mcluster(1:3*numnod)=0
2435 ALLOCATE(mcluster(3))
2442 CALL init_nodal_state( ipari,shoot_struct,interfaces%INTBUF_TAB,nodes%BOUNDARY_ADD,nodes%BOUNDARY,
2443 . nodes%ITAB,nodes,geo,addcnel,cnel,
2444 . ixs,element%SHELL%IXC,ixt,ixp,ixr,ixtg,
2445 . size_addcnel,size_cnel ,
2446 . numelsg,numelqg,numelcg,numeltrg,numelpg,
2447 . numelrg,numeltgg ,ixs(l1))
2451 allocate(component(ninter))
2452 call inter_init_component(ninter,npari,numnod,ispmd,nspmd,ipari,nodes%x,interfaces%intbuf_tab,component)
2457 call allocate_sph_work(sph_work,
2459 * sol2sph_flag, numnod,
2460 * nsphact,numnod,nsphact )
2469 IF (icrack3d > 0 .and. tt == zero)
THEN
2470 CALL inixfem(elbuf_tab ,xfem_tab ,
2471 . iparg ,element%SHELL%IXC ,ixtg ,ngrouc ,igrouc ,
2472 . elcutc ,iadc_crk ,iel_crk ,inod_crk ,adsky_crk ,
2473 . nodes%X ,kxfenod2elc ,nodedge ,crknodiad ,iad_edge ,
2480 ALLOCATE(fthreac(6*cptreac))
2482 ALLOCATE(fthdtm(6*cptreac))
2490 IF(comptreac == 1)
THEN
2491 ALLOCATE(freac(6*numnod))
2492 freac(1:6*numnod)=zero
2499 IF (nthpart > 0)
THEN
2500 ALLOCATE(gresav(npsav*ngpe*nthread))
2508 ALLOCATE(ibufidel(lbufidel),stat=ierror2)
2509 ierror = ierror + ierror2
2510 ALLOCATE(indidel(lindidel),stat=ierror2)
2511 ierror = ierror + ierror2
2512 IF(int24use==1.OR.ninter25/=0)
THEN
2513 ALLOCATE (ibufseglo(lbufseglo),stat=ierror2)
2514 ALLOCATE (indseglo(ninter+1),stat=ierror2)
2517 CALL ancmsg(msgid=158,anmode=aninfo,
2522 ALLOCATE(ibufidel(0) ,stat=ierror2)
2523 ALLOCATE(indidel(0) ,stat=ierror2)
2526 IF(nspmd > 1.AND.pdel > 0)
THEN
2527 ALLOCATE(ibufpdel(4*nconld+4*npresload),stat=ierr)
2528 ALLOCATE(nindexpdel(nconld+npresload),stat=ierr)
2536 IF(nadmesh/=0.AND.idel7ng>=1)
THEN
2538 l1 = 1+nixs*numels + nsvois*nixs
2541 IF((int24use==1.OR.ninter25/=0).AND.idel7nok==1)
THEN
2542 indseglo(2:ninter+1)=0
2545 check_neigh_flag_res = 0
2546 IF (sh_offset_tab%NNSH_OSET > 0)
THEN
2547 CALL assign_ptrx(ptrx,xyz,numnod)
2549 CALL assign_ptrx(ptrx,nodes%X,numnod)
2558 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk,
2559 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
2561 omp_address = 1 + itsk * numnod
2563 1 geo ,ixs ,ixs(l1) ,ixs(l1) ,ixs(l3) ,ixq ,
2564 2 element%SHELL%IXC ,ixt ,ixp ,ixr ,ixtg ,
2565 3 nodes%deleted_node,nodftsk ,nodltsk ,iparg ,elbuf ,itsk ,
2566 4 ixtg1 ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,nodes%ITAB ,
2567 5 addcnel ,cnel ,kxsp ,elbuf_tab ,tagel ,iexlnk ,
2568 6 igrnod ,dd_r2r ,dd_r2r_elem,sdd_r2r_elem,idel7nok_sav ,
2569 7 idel7nok_r2r,tagtrimc,tagtrimtg,s_elem_state,elem_state,
2570 8 shoot_struct,shoot_struct%GLOBAL_NB_ELEM_OFF)
2573 CALL check_nodal_state( itsk,nodes%deleted_node,newfront,interfaces%INTBUF_TAB,shoot_struct%SIZE_SEC_NODE,
2574 . shoot_struct%SHIFT_S_NODE,shoot_struct%INTER_SEC_NODE,shoot_struct%SEC_NODE_ID)
2582 . ngroup,nparg,igroups,iparg )
2585 1 element%SHELL%IXC,ixtg,ixq,ixt,ixp,
2586 2 ixr,geo,ngroup,igroups,iparg )
2596 . interfaces%INTBUF_TAB,newfront,
2598 . ixs,element%SHELL%IXC,ixt,ixp,ixr,ixtg,ixs(l1),
2599 . addcnel,cnel,nodes%work_array_node(omp_address),tagel )
2608 . shoot_struct%SHIFT_INTERFACE,interfaces%INTBUF_TAB,
2610 . ixs,element%SHELL%IXC,ixt,ixp,ixr,ixtg,ixs(l1),
2611 . addcnel,cnel,nodes%work_array_node(omp_address),tagel,shoot_struct )
2615 CALL check_edge_state( itsk,shoot_struct%SAVE_M_EDGE_NB,shoot_struct%SAVE_S_EDGE_NB,
2616 . shoot_struct%SAVE_M_EDGE,shoot_struct%SAVE_S_EDGE,
2617 . shoot_struct%SHIFT_INTERFACE,interfaces%INTBUF_TAB,newfront,ipari,geo,
2618 . ixs,element%SHELL%IXC
2619 . addcnel,cnel,nodes%work_array_node(omp_address),tagel,shoot_struct )
2620 ! ---------------------
2625 IF(int24use>0.OR.ninter25/=0)
THEN
2627 . shoot_struct%SHIFT_INTERFACE,interfaces%INTBUF_TAB,
2628 . ipari,nodes%BOUNDARY_ADD,shoot_struct )
2630 IF(ninter25/=0.AND.interfaces%PARAMETERS%INT25_EROSION_SOLID > 0)
THEN
2632 check_neigh_flag = shoot_struct%NUMBER_NEW_SURF + shoot_struct%NUMBER_REMOTE_SURF
2633 IF(need_comm_int25_solid_erosion)
THEN
2634 CALL spmd_allreduce(check_neigh_flag,check_neigh_flag_res,1,spmd_max,comm_int25_solid_erosion)
2635 ELSEIF(nspmd==1)
THEN
2636 check_neigh_flag_res = check_neigh_flag
2638 IF(check_neigh_flag_res > 0 )
THEN
2639 CALL get_neighbour_surface( ispmd,nspmd,ninter25,npari,ninter,
2640 . nbintc,nixs,nixc,nixtg,numnod,
2641 . numels,numelc,numeltg,s_elem_state,
2642 . nbddedgt,nbddedg_max,
2643 . elem_state,ipari,intlist,nodes,
2644 . newfront,ixs,element%SHELL%IXC,ixtg,
2645 . nodes%BOUNDARY_ADD,ptrx,
2646 . interfaces%INTBUF_TAB,interfaces%SPMD_ARRAYS,shoot_struct )
2655 1 ipari ,geo ,ixs ,ixq ,element%SHELL%IXC ,ixt ,
2656 2 ixp ,ixr ,ixtg ,nodes%deleted_node,iparg ,itsk ,
2657 3 newfront,nodes%work_array_node(omp_address) ,nodes%MS ,nodes%IN ,anin(ndma+1),nodes%ITAB ,
2658 4 nodes%ITABM1 ,addcnel , cnel ,indidel ,nindex1 ,nindex2 ,
2659 5 nindex3 ,nindex4 ,tagel ,int24use ,ibufseglo ,indseglo,
2660 6 ibufidel ,interfaces%INTBUF_TAB,nodes%BOUNDARY_ADD)
2670 s_sfem_nodvar = 2*numnod
2674 ALLOCATE(sfem_nodvar(s_sfem_nodvar))
2675 ALLOCATE(sfem_nodvar_ale(s_sfem_nodvar))
2684 IF(idtmins_int /= 0)
THEN
2691 IF(idtmins /= 0)
THEN
2692 l1 = 1+nixs*numels + nsvois*nixs
2703 1 kinet ,nprw ,lprw ,npby , lpby ,
2707 1 ixs ,ixq ,element%SHELL%IXC ,ixt ,ixp ,
2708 2 ixr ,ixtg ,ixtg1 ,ixs(l1) ,ixs(l3) ,
2709 3 ixs(l2) ,iparg ,nodes%MS ,nodes%MS0 ,
tagnod_sms,
2710 4 nodes%ICODT ,nodes%ICODR ,kinet ,
indx1_sms,
2711 5
kad_sms ,ipart(i15a),ipart(i15b),
2712 6 ipart(i15c),ipart(i15d),ipart(i15e),ipart(i15f),ipart(i15g),
2714 8 nodes%WEIGHT ,irbe2 ,rbe3%IRBE3 ,lrbe2 ,rbe3%LRBE3 ,
2715 9 nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,nprw ,lprw ,ipart ,
2720 CALL ancmsg(msgid=19,anmode=aninfo,
2721 . c1=
'(/DT/.../AMS)')
2727 2 element%SHELL%IXC ,iparg ,ixs ,ixt ,ixp ,
2732 7
tagrel_sms,ipart(i15a),ipart(i15b),ipart(i15c),ipart(i15d),
2733 8 ipart(i15e),ipart(i15f),ipart(i15g),ipart(i15h),ipart(i15i),
2734 9 nodes%BOUNDARY_ADD ,nodes%BOUNDARY,npby ,lpby ,kinet ,
2736 b
lad_sms ,ipart,igeo ,nodes%WEIGHT ,
2741 CALL ancmsg(msgid=19,anmode=aninfo,
2742 . c1=
'(/DT/.../AMS)')
2748 2 element%SHELL%IXC ,iparg ,ixs ,ixt ,ixp ,
2753 7
tagrel_sms,ipart(i15a),ipart(i15b),ipart(i15c),ipart(i15d),
2754 8 ipart(i15e),ipart(i15f),ipart(i15g),ipart(i15h),ipart(i15i),
2755 9 nodes%BOUNDARY_ADD ,nodes%BOUNDARY,npby ,lpby ,kinet
2761 ALLOCATE(
jdi_sms(nnz_sms),stat=ierror)
2763 CALL ancmsg(msgid=19,anmode=aninfo,
2764 . c1=
'(/DT/.../AMS)')
2770 2 element%SHELL%IXC ,iparg ,ixs ,ixt ,ixp ,
2774 6
tagrel_sms,ipart(i15a),ipart(i15b),ipart(i15c),ipart(i15d),
2775 7 ipart(i15e),ipart(i15f),ipart(i15g),ipart(i15h),ipart(i15i),
2776 8 nodes%BOUNDARY_ADD ,nodes%BOUNDARY,npby ,lpby ,kinet ,
2781 c igeo ,nodes%WEIGHT ,
nativ_sms,irbe2 ,lrbe2 ,
2784 ALLOCATE(
jdi_sms(nnz_sms),stat=ierror)
2786 CALL ancmsg(msgid=19,anmode=aninfo,
2787 . c1=
'(/DT/.../AMS)')
2790 ALLOCATE(
jsm_sms(nnz_sms),stat=ierror)
2792 CALL ancmsg(msgid=19,anmode=aninfo,
2793 . c1=
'(/DT/.../AMS)')
2799 2 element%SHELL%IXC ,iparg ,ixs
2803 6
tagrel_sms,ipart(i15a),ipart(i15b),ipart(i15c),ipart(i15d),
2804 7 ipart(i15e),ipart(i15f),ipart(i15g),ipart(i15h),ipart(i15i),
2805 8 nodes%BOUNDARY_ADD ,nodes%BOUNDARY,npby ,lpby ,kinet ,
2813 ALLOCATE(ltk_sms(knz_sms),lt_sms(nnz_sms),stat=ierror)
2815 CALL ancmsg(msgid=19,anmode=aninfo,
2816 . c1=
'(/DT/.../AMS)')
2824 CALL ancmsg(msgid=19,anmode=aninfo,
2825 . c1=
'(/DT/.../AMS)')
2834 2 fr_ll ,fr_rl ,nodes%WEIGHT ,nodes%ITAB ,ljoint ,
2835 3 iadcj ,fr_cj ,nprw ,lprw ,fr_wall ,
2836 4
nrwl_sms ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY )
2839 IF(idtmins_int/=0)
THEN
2842 1 kinet ,nprw ,lprw ,npby , lpby ,
2847 1 ipari ,interfaces%INTBUF_TAB ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,intlist,
2850 ELSEIF(idtmins_int/=0)
THEN
2858 CALL ancmsg(msgid=19,anmode=aninfo,
2859 . c1=
'(/DT/.../AMS)')
2864 nsmspcg=
min(nsmspcg,numnodg)
2868 2 fr_ll ,fr_rl ,nodes%WEIGHT ,nodes%ITAB ,ljoint ,
2869 3 iadcj ,fr_cj ,nprw ,lprw ,fr_wall ,
2870 4
nrwl_sms ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY )
2873 1 kinet ,nprw ,lprw ,npby , lpby ,
2877 1 ipari ,interfaces%INTBUF_TAB ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,intlist,
2887 IF (m_vs_sms>0)
THEN
2889 ALLOCATE(proj_s(numnod,lnzm),proj_t(numnod,lnzm),
2891 . proj_w(3*lnzm),proj_k(lnzm,lnzm),
2894 CALL ancmsg(msgid=19,anmode=aninfo,
2895 . c1=
'(/DT/.../AMS)')
2901 ALLOCATE(proj_s(0,0),proj_t(0,0),
2903 . proj_w(0),proj_k(0,0))
2908 IF (idtmins/=0.AND.debug(macro_debug_ams)==1)
THEN
2923 IF(idtmins/=0.AND.iparit==0)
THEN
2924 ALLOCATE(uncomp_fr(numnod))
2925 ALLOCATE(uncomp_fri2m(numnod))
2928 * nodes%BOUNDARY_ADD,nodes%BOUNDARY,nb_fr,uncomp_fr,
2929 * iad_i2m,fr_i2m,nb_fri2m,uncomp_fri2m)
2931 ALLOCATE(fr_loc(nb_fr))
2932 fr_loc(1:nb_fr) = uncomp_fr(1:nb_fr)
2934 ALLOCATE(fr_loci2m(nb_fri2m))
2935 fr_loci2m(1:nb_fri2m) = uncomp_fri2m(1:nb_fri2m)
2938 DEALLOCATE(uncomp_fr)
2939 DEALLOCATE(uncomp_fri2m)
2943 ALLOCATE(fr_loci2m(1))
2952 ALLOCATE(wibem(lwibem), wrbem(lwrbem), stat=ierror)
2954 CALL ancmsg(msgid=160,anmode=aninfo,
2961 ALLOCATE(wiflow(lwiflow), wrflow(lwrflow), stat=ierror)
2963 CALL ancmsg(msgid=160,anmode=aninfo,
2973 ALLOCATE(eminx(
nme17*6))
2981 . iparg , ixs , ixq , element%SHELL%IXC ,
2982 . ixt , ixp , ixr , ixtg , fxbipm(1,n),
2983 . fxbnod(adrnod), onof , wa , onfelt ,elbuf_tab )
2989 IF(mcheck==0) dt2s=0.0
2990 IF(mcheck/=0) dt2save = dt2
2993 nmt0 = rbe3%lrbe3_sz/2
3002 IF (impl_s==1.OR.neig>0)
THEN
3003#if defined(MYREAL8) && !defined(WITHOUT_LINALG)
3004 ALLOCATE (elbuf_imp(ngroup))
3006 IF (imon>0)
CALL startime(timers,34)
3007 IF (imon>0)
CALL startime(timers,31)
3008 l1 = 1+nixs*numels + nsvois*nixs
3012 1 geo ,npby ,lpby ,nodes%ITAB ,
3013 2 ipari ,ixs ,ixq ,element%SHELL%IXC ,ixt ,
3014 4 ixp ,ixr ,ixtg ,ixtg1 ,ixs(l1) ,
3015 5 ixs(l2) ,ixs(l3) ,iparg ,
3016 6 elbuf ,nint7 ,nbintc ,nodes%X ,dmcp ,
3017 7 nodes%BOUNDARY ,nodes%BOUNDARY_ADD ,fr_i2m ,iad_i2m ,
3018 8 nprw ,num_imp1 ,num_impl ,monvol ,igrsurf ,
3019 9 fr_mv ,ipm ,igeo ,iad_rby ,
3020 a fr_rby ,sh4tree ,sh3tree ,rbe3%IRBE3 ,rbe3%LRBE3 ,
3021 b rbe3%mpi%FR_RBE3 ,rbe3%mpi%IAD_RBE3 ,irbe2 ,lrbe2 ,ibfv ,
3022 c vel ,elbuf_tab ,iframe ,interfaces%INTBUF_TAB,
3023 d nddl0 ,nnzk0 ,impbuf_tab)
3024 IF (imon>0)
CALL stoptime(timers,31)
3025 IF (imon>0)
CALL stoptime(timers,34)
3027 ns_imp=>impbuf_tab%CAND_N
3028 ne_imp=>impbuf_tab%CAND_E
3029 ind_imp=>impbuf_tab%INDSUBT
3030 fext_imp=>impbuf_tab%AC
3031 r_imp=>impbuf_tab%R_IMP
3032 ALLOCATE(fac_k(0),
ipiv_k(0))
3033 IF (imumpsv >0.OR.(isolv==7.AND.nspmd>1))
THEN
3037 WRITE(6,*) __line__,
"Fatal error: MUMPS required"
3041 ALLOCATE(cddlp(nddl0))
3052 1 eigipm , eigrpm , nodes%MS ,nodes%IN , eigibuf ,
3053 2 nodes%X ,ixtg1 ,tf , npc , fr_wave ,
3055 4 nodes%ICODT , nodes%ICODR , nodes%ISKEW ,ibfv , vel ,
3056 4 nodes%V , nodes%A , elbuf , ixs , ixq ,
3057 5 element%SHELL%IXC , ixt , ixp , ixr , ixtg ,
3058 6 pm , geo , fani , icut , skews%SKEW ,
3059 7 xcut ,fani(1,1+nfia
3060 8 anin , lpby , npby , nstrf , rwbuf ,
3061 9 nprw , tani , elbuf_tab ,mat_elem%MAT_PARAM, dd_iad ,
3062 a nodes%BOUNDARY_ADD , nodes%BOUNDARY , nodes%WEIGHT , eani , ipart ,
3063 b rby , nom_opt , igrsurf ,
3064 c bufsf , idata , rdata , bufmat , bufgeo ,
3065 d kxx , ixx , kxsp , ixsp , nod2sp ,
3066 e spbuf , ixs(l1) , ixs(l2) , ixs(l3) , nodes%VR ,
3067 f monvol , volmon , ipm , igeo , iparg ,
3068 g nodes%NODGLOB , nodes%BOUNDARY_ADD , nodes%BOUNDARY , fr_sec , fr_rby2 ,
3069 h iad_rby2 , fr_wall , ipari ,
3070 i interfaces%INTBUF_TAB , nodes%D ,partsav ,
3071 j fsav(1,nfnca+1),fsav(1,nftca
3072 k err_thk_sh4 , err_thk_sh3 , irbe2 , rbe3%IRBE3 ,lrbe2 ,
3073 l rbe3%LRBE3 , rbe3%FRBE3 ,fr_rbe2 , rbe3%mpi%fr_rbe3 , iad_rbe2,
3074 m nodes%WEIGHT_MD , cluster , fcluster , mcluster , xfem_tab,
3075 o w , nv46 , nercvois , nesdvois,
3077 q
xedge3n ,stack ,sph2sol ,nodes%STIFN ,nodes%STIFR ,
3078 r drape_sh4n , drape_sh3n ,h3d_data ,subsets ,igrnod ,
3079 s fcont_max ,fani(1,nfnca2+1),fani(1,nftca2+1), ale_connectivity ,
3080 t itask ,nddl0 ,nnzk0 ,impbuf_tab , drapeg,
3081 u glob_therm, output ,multi_fvm)
3083 dt2 =
max(em20,tstop-tt)
3110 iad1b = iad1+numnod+1
3114 iad2 = iad1b+numnod+1
3118 IF(scodver>=44.AND.sminver<3)
3119 .
CALL sphres44b(kxsp ,ixsp ,nod2sp ,iparg ,spbuf )
3126 ksph22 =ksph21+16*numsph
3127 ksph23 =ksph22+
min(iun,nsphio)*3*numsph
3170 ALLOCATE(mad_tag_sol(numels))
3171 ALLOCATE(mad_tag_sh(numelc))
3172 ALLOCATE(mad_tag_tg(numeltg))
3173 ALLOCATE(mad_fail_elements(nmadsol+nmadsh4+nmadsh3))
3174 mad_tag_sol(1:numels)=0
3175 mad_tag_sh(1:numelc)=0
3176 mad_tag_tg(1:numeltg)=0
3177 mad_fail_elements(1:nmadsol+nmadsh4+nmadsh3) = 0
3179 ALLOCATE(madclfrecv(3,madclnods))
3181 CALL initial_data_exch_madcpl(nodes%X,nodes%A,nodes%V,nodes%MS,madclnod)
3184 CALL dummy_cycle_madcpl(nodes%X,madclnod)
3189 IF(ninter25 /= 0)
THEN
3196 check_npolh = .false.
3205 IF( ninter /= 0 )
THEN
3221 CALL python_update_time(tt,dt2
3222 CALL python_update_nodal_entities(numnod, nodes, x=nodes%X,a=nodes%A,v=nodes%V
3223 CALL python_sync(python%CONTEXT)
3225 IF(python%NB_FUNCTS > 0)
THEN
3230 t_monvol(i)%temperature = volmon(kk1+13)
3231 t_monvol(i)%area = volmon(kk1+18)
3236 CALL python_monvol(t_monvol)
3241 IF(coupling%active)
THEN
3243 ALLOCATE(nodes%FORCES(3,numnod))
3245 call coupling_set_interface(coupling, igrnod, ngrnod, igrsurf, nsurf, nodes)
3246 CALL coupling_initialize(coupling,nodes%X,numnod,ispmd,nspmd)
3247 CALL coupling_ongoing(coupling,ongoing)
3251 CALL init_ghost_shells(nodes, element,ispmd,nspmd,nodes%boundary_add,nodes%boundary_size,nodes%boundary)
3255 IF (vipercoupling)
THEN
3256 call viper_coupling_initialize(viper, nodes, element, numnod,
3257 . nixs, numels, ixs, nixc, numelc,nixtg, numeltg,ixtg,
3258 . istdo, neleml, numelq, numelt, numelp, numelr,
3259 . dtmin, tstop, dtanim, tt, nparg, ngroup, iparg, elbuf_tab,
3278 IF (rns > rnum_siz)
THEN
3281 ALLOCATE(renum(rnum_siz))
3287 CALL data_send_madcpl(nodes%X,madclnod,
3288 * madymo_del_global,mad_fail_elements)
3298 IF(imonm > 0)
CALL startime(timers,47)
3300 CALL manctr(sensors,h3d_data)
3304 IF(numskw/=0)
CALL newskw(skews%SKEW ,iskwn ,nodes%X ,iskwp_l ,nskwp,
3305 1 numskw_l,numskw_l_send,iskwp_l_send,recvcount,iskwp)
3320 glob_therm%DT_THERM = ep06
3325 IF (imon>0)
CALL startime(timers,timer_integ)
3326 CALL imp_fanie(fani ,fext_imp,nfia ,nfea ,nodft ,nodlt,
3328 IF (imon>0)
CALL stoptime(timers,timer_integ)
3333 IF(ncycle==1.AND.interfaces%PARAMETERS%ISTIF_DT>0)
3334 . interfaces%PARAMETERS%DT_STIFINT = dt1
3336 IF(imonm > 0)
CALL stoptime(timers,47)
3344 IF(inter_ithknod/=0)
THEN
3346 thknod(nodft:nodlt)=zero
3349 CALL thickvar(iparg,elbuf_tab,element%SHELL%IXC,ixtg,thksh4,
3350 . thksh3,thknod,thke,sh4tree,sh3tree)
3354 lenr = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
3356 + thknod,nodes%BOUNDARY_ADD ,nodes%BOUNDARY,length,lenr)
3364 IF(ilag+iale+ieuler/=0)
THEN
3381 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk ,
3382 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
3384 CALL zero1(nodes%MS(nodftsk),numntsk)
3393 DO i=1+nfoa,nfoa+2*(nsect+nrbody+nrwall)
3398 IF(anim_v(13)+h3d_data%N_VECT_CONT2 > 0)
THEN
3405 IF(h3d_data%N_VECT_CONT2M==1)
THEN
3420 IF (imon>0)
CALL startime(timers,timer_contsort)
3421 CALL i14ist(ipari,interfaces%INTBUF_TAB,igrsurf,bufsf)
3422 IF (imon>0)
CALL stoptime(timers,timer_contsort)
3433 k1=1+lipart1*(npart+nthpart)+2*9*(npart+nthpart)
3448 IF (iale+ieuler+glob_therm%ITHERM+numsph/=0)
THEN
3449 IF(nbgauge/=0)
CALL agauge0(lgauge,gauge,nodes%X,element%SHELL%IXC,igaup,ngaup
3453 IF (imon>0)
CALL startime(timers,6)
3454 IF (imonm > 0)
CALL startime(timers,49)
3456 IF(numgeo>0.AND.nodadt==0)
THEN
3458 IF(geo(5,i)>zero.AND.dtfac1(3)*geo(5,i)<dt2t)
THEN
3459 dt2t= dtfac1(3)*geo(5,i)
3468 IF(user_windows%HAS_USER_WINDOW /= 0 )
THEN
3472 1 user_windows ,rad_inputname ,len_rad_inputname,
3473 2 numnod ,ncycle ,nodes%ITAB ,
3474 3 tt ,dt1 ,output%TH%WFEXT ,
3475 4 nodes%D ,nodes%X ,nodes%V ,
3476 5 nodes%VR ,nodes%MS ,nodes%IN ,
3477 6 nodes%STIFN ,nodes%STIFR ,nodes%A ,
3487 IF(nfunct /= 0.AND.iale+ieuler+glob_therm%ITHERM+nebcs>0)
THEN
3488 CALL timfun(python,fv, npc, tf)
3489 IF(ebcs_tab%nebcs_loc/=0)
THEN
3505 IF(glob_therm%ITHERM_FE > 0 .AND. nspmd > 1 )
THEN
3507 nodes%MCP(i) = nodes%MCP(i) * nodes%WEIGHT(i)
3508 nodes%STIFN(i) = nodes%STIFN(i) * nodes%WEIGHT(i)
3511 CALL desacti(ixs ,ixq ,element%SHELL%IXC ,ixp ,ixt ,
3513 . nsensor ,sensors%SENSOR_TAB,element%PON%FSKY ,nodes%X ,elbuf_tab,
3514 . ibcv ,fconv ,ibcr ,fradia ,igroups ,
3515 . factiv ,nodes%TEMP ,nodes%MCP ,pm ,mcp_off ,
3516 . igrbric ,igrquad ,igrsh4n ,igrsh3n ,igrtruss ,
3517 . igrbeam ,igrspring,glob_therm)
3519 IF(glob_therm%ITHERM_FE > 0 .AND. nspmd > 1 .AND. iparit == 0)
THEN
3521 nodes%MCP(i) = nodes%MCP(i) * nodes%WEIGHT(i)
3525 IF (imonm > 0)
CALL stoptime(timers,49)
3530 IF (nconld/=0 .AND. impl_s/=1)
THEN
3532 IF (imon>0)
CALL startime(timers,timer_kin)
3533 IF (imonm > 0)
CALL startime(timers,41)
3535 1 nibcld ,ibcl ,lfaccld ,forc ,snpc ,
3536 2 npc ,stf ,tf ,nodes%A ,nodes%V ,
3537 3 nodes%X ,skews ,nodes%AR ,
3538 4 nodes%VR ,nsensor ,sensors%SENSOR_TAB ,wfexc ,element%PON%IAD_CONLD ,
3539 5 lsky ,element%PON%FSKY ,noda_fext ,h3d_data ,cptreac ,
3540 6 fthreac ,
nodreac ,output%TH%TH_SURF ,
3541 7 dpl0cld ,vel0cld ,nodes%D ,nodes%DR ,nconld ,
3542 8 numnod ,nfunct ,anim_v ,outp_v ,
3543 9 iparit ,tt ,dt1 ,n2d ,output%TH%WFEXT ,
3544 a impl_s ,python=python, nodes=nodes)
3547 CALL forcepinch(ibcl ,forc ,npc ,tf ,nodes%A ,
3548 2 nodes%V ,nodes%X ,skews%SKEW ,nodes%AR ,nodes%VR ,
3549 3 nsensor,sensors%SENSOR_TAB ,nodes%WEIGHT ,wfexc ,element%PON%IAD_CONLD,
3550 4 element%PON%FSKY , element%PON%FSKY ,noda_fext ,h3d_data,
3551 5 pinch_data%APINCH, pinch_data%VPINCH, python, output%TH%WFEXT)
3554 IF (imonm > 0)
CALL stoptime(timers,41)
3555 IF (imon>0)
CALL stoptime(timers,timer_kin)
3559 IF(nfxvel/=0.AND.impl_s/=1)
THEN
3563 IF(imonm > 0)
CALL startime(timers,44)
3565 CALL forcefingeo(ibfv ,npc ,tf ,nodes%A ,nodes%V ,nodes%X ,
3566 2 vel ,sensors%SENSOR_TAB ,element%PON%FSKY ,noda_fext ,nodes%ITABM1,
3567 3 h3d_data,nsensor,python,output%TH%WFEXT,nodes)
3579 IF (imon>0)
CALL startime(timers,timer_kin)
3580 IF (imonm > 0)
CALL startime(timers,41)
3582 CALL pfluid(iloadp ,loadp ,npc ,tf ,nodes%A ,
3583 2 nodes%V ,nodes%X ,xframe ,nodes%MS ,
3584 3 nsensor ,sensors%SENSOR_TAB,wfexc ,output%TH%WFEXT,element%PON%IAD_LOADP ,
3585 4 element%PON%FSKY , element%PON%FSKY ,lloadp ,noda_fext
3586 5 output%TH%TH_SURF, python)
3588 IF (imonm > 0)
CALL stoptime(timers,41)
3596 IF(pblast%NLOADP_B/=0.AND.impl_s/=1)
THEN
3598 IF (imon>0)
CALL startime(timers,timer_kin)
3599 IF (imonm > 0)
CALL startime(timers,41)
3601 1 pblast ,iloadp ,loadp
3602 2 element%PON%IAD_LOADP ,element%PON%FSKY ,lloadp ,noda_fext ,noda_surf ,noda_pext,
3603 3 nodes%ITAB ,h3d_data ,output%TH%TH_SURF
3605 IF (imon>0)
CALL stoptime(timers,timer_kin)
3607 IF(pblast%PBLAST_DT%DT<dt2t)
THEN
3609 dt2t = pblast%PBLAST_DT%DT
3611 neltst = pblast%PBLAST_DT%IDT
3612 pblast%PBLAST_DT%DT = ep20
3618 IF (loads%NLOAD_CYL > 0)
THEN
3620 . loads ,table ,sensors%NSENSOR,sensors%SENSOR_TAB,iframe ,
3621 . dt1 ,nodes%X ,nodes%V ,nodes%A ,noda_fext ,
3622 . h3d_data ,cptreac ,fthreac ,
nodreac ,element%PON%FSKY ,output%TH%WFEXT )
3627 IF (sh_offset_tab%NNSH_OSET > 0)
THEN
3629 CALL offset_nproj(nspmd
3632 IF( glob_therm%NUMCONV + glob_therm%NUMRADIA > 0 .AND. glob_therm%ITHERM_FE > 0 )
THEN
3642 IF (glob_therm%NUMCONV > 0 .AND. glob_therm%ITHERM_FE > 0)
THEN
3643 IF (imon>0)
CALL startime(timers,timer_kin)
3644 IF (imonm > 0)
CALL startime(timers,41)
3645 CALL convec(ibcv ,fconv ,npc ,tf , nodes%X ,
3646 1 nodes%TEMP ,nsensor,sensors%SENSOR_TAB,fthe, element%PON%IAD_CONV,
3647 2 fthesky, python,glob_therm
3649 IF (imon>0)
CALL stoptime(timers,timer_kin)
3654 IF (glob_therm%NUMRADIA > 0 .AND. glob_therm%ITHERM_FE > 0)
THEN
3655 IF (imon>0)
CALL startime(timers,timer_kin)
3656 IF (imonm > 0)
CALL startime(timers,41)
3657 CALL radiation(ibcr, fradia, npc, tf, nodes%X ,
3658 1 nodes%TEMP, nsensor,sensors%SENSOR_TAB, fthe, element%PON%IAD_RADIA,
3661 IF (imon>0)
CALL stoptime(timers,timer_kin)
3673 IF (glob_therm%NFXFLUX > 0 .AND. glob_therm%ITHERM_FE > 0)
THEN
3674 IF (imon>0)
CALL startime(timers,timer_kin)
3675 IF (imonm > 0)
CALL startime(timers,41)
3676 CALL fixflux(ibfflux, fbfflux, npc, tf, nodes%X, ixs,
3677 . nsensor,sensors%SENSOR_TAB, fthe, element%PON%IAD_FXFLUX, fthesky, python,
3679 IF (imonm > 0)
CALL stoptime(timers,41)
3680 IF (imon>0)
CALL stoptime(timers,timer_kin)
3684 icontact_old(1:sicontact) = icontact(1:sicontact)
3686 IF (imonm > 0)
CALL startime(timers,50)
3688 nn = numelc+numeltg+ibagsurf
3695 sporo = numelc+numeltg
3697 n=1+ninter+nrwall+nrbody+nsect+njoint+nrbag
3698 IF (impl_s > 0 .AND. ismdisp >0)
THEN
3699 CALL assign_ptrx(ptrx,impbuf_tab%X_A,numnod)
3701 CALL assign_ptrx(ptrx,nodes%X,numnod)
3704 1 monvol ,volmon ,ptrx ,nodes%A ,
3705 2 npc ,tf ,nodes%V ,wa ,
3706 3 fsav(1,n) ,nsensor ,sensors%SENSOR_TAB ,igrsurf ,
3707 4 fr_mv ,element%PON%IAD_MV ,sicontact ,sporo ,
3709 6 elbuf_tab ,geo ,igeo ,
3710 7 pm ,ipm ,ipart ,ipart(k3) ,
3711 8 ipart(k8) ,igroupc ,igrouptg ,noda_fext ,
3712 9 1 ,h3d_data ,t_monvol ,frontier_global_mv,
3715 IF (imonm > 0)
CALL stoptime(timers,50)
3720 CALL flow0(iflow, rflow, wiflow, wrflow, nodes%X,
3721 . nodes%V, nodes%A, npc, tf, sensors%SENSOR_TAB,
3722 . nbgauge,lgauge, gauge , nsensor,
3723 . igrv, agrv ,nfunct ,python, output%TH%WFEXT)
3729 IF (imon>0)
CALL startime(timers,13)
3730 IF (imonm > 0)
CALL startime(timers,24)
3732 l1 = 1+nixs*numels + nsvois*nixs
3736 1 ipari ,nodes%X ,nodes%V ,nodes%MS ,
3737 2 imsch ,i2msch ,dt2prev ,intlist ,nbintc ,
3739 4 irlen17 ,ixs ,ixs(l3) ,nsensor ,
3740 5 igrbric ,nodes%TEMP ,2 ,irlen7t ,islen7t ,
3741 6 irlen20 ,islen20 ,irlen20t,islen20t,irlen20e,
3742 7 islen20e,nodes%IKINE ,diag_sms,sensors%SENSOR_TAB,interfaces%INTBUF_TAB
3743 8 forneqs ,multi_fvm,interfaces)
3745 IF (imonm > 0)
CALL stoptime(timers,24)
3746 IF (imon>0)
CALL stoptime(timers,13)
3753 IF (int24use == 1)
THEN
3754 IF (imon>0)
CALL startime(timers,timer_contfor)
3755 CALL spmd_exch_i24(ipari ,interfaces%INTBUF_TAB ,nodes%ITAB ,
3756 * nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,intlist ,nbintc,
3757 * iad_i24 ,fr_i24 ,sfr_i24,i24maxnsne,4,
3759 IF (imon>0)
CALL stoptime(timers,timer_contfor)
3765 IF(nsect>0.AND.nspmd>1)
THEN
3766 lsend1 = iad_sec(1,nspmd+1)
3767 lrecv1 = iad_sec(2,nspmd+1)
3768 lsend2 = iad_sec(3,nspmd+1)
3769 lrecv2 = iad_sec(4,nspmd+1)
3770 CALL spmd_exch_sec(nstrf ,nodes%X ,nodes%MS ,nodes%WEIGHT,xsec ,
3771 2 fr_sec,iad_sec,lsend1,lrecv1,lsend2,
3772 3 lrecv2,nodes%WEIGHT_MD)
3784 IF(glob_therm%ITHERM == 0)
THEN
3785 l1 = 1+nixs*numels + nsvois*nixs
3786 CALL s4lagsfem(iparg, ixs, nodes%X, nodes%V, elbuf_tab, sfem_nodvar, s_sfem_nodvar,
3787 . nodes%BOUNDARY_ADD, nodes%BOUNDARY, ixs(l1), nodes%XDP, sxdp,
3788 . numnod, nodes%BOUNDARY_SIZE , nspmd, numels, numels8, numels10, nparg, ngroup, iresp)
3798 l1 = 1+nixs*numels + nsvois*nixs
3805 nativ_sms_siz = numnod
3810 IF(coupling%active .AND. tt > zero) dt2t =
min(dt2t,coupling%DT_LIMIT)
3815 IF (sh_offset_tab%NNSH_OSET > 0)
THEN
3816 CALL assign_ptrx(ptrx,xyz,numnod)
3817 ELSEIF (impl_s > 0 .AND. ismdisp >0)
THEN
3818 CALL assign_ptrx(ptrx,impbuf_tab%X_A,numnod)
3820 CALL assign_ptrx(ptrx,nodes%X,numnod)
3828 itsk = omp_get_thread_num()
3830 1 ipari ,ptrx ,w , inter_errors,
3831 2 nodes%V ,nodes%MS ,nodes%IN ,nodes%BOUNDARY_ADD ,
3832 3 nodes%BOUNDARY ,nodes%VR ,isendto ,ircvfrom
3833 4 newfront ,itsk ,wa ,dt2tt ,
3834 5 nodes%ITAB ,neltstt ,ityptstt,nodes%WEIGHT ,
3835 6 intlist ,nbintc ,kinet ,dretri ,
3836 7 islen7 ,irlen7 ,islen11 ,irlen11 ,
3837 8 nodes%TEMP ,igrbric ,igrsh3n ,eminx ,
3839 a irlen17 ,irlen7t ,islen7t ,num_imp1 ,
3840 b ind_imp ,
intstamp,thknod ,irlen20 ,
3841 c islen20 ,irlen20t,islen20t
3842 d islen20e ,renum ,nsnfiold,xslv ,
3843 e xmsr ,vslv ,vmsr ,size_t ,
3844 f
nativ_sms ,dxancg ,nodes%IKINE ,diag_sms ,
3845 g count_remslv,count_remslve ,ale_connectivity,
3846 h ixtg ,sensors,delta_pmax_gap,interfaces%INTBUF_TAB,
3847 i delta_pmax_gap_node,iad_frnor,fr_nor,
3848 j nb25_candt,nb25_impct,nb25_dst1,nb25_dst2,intlist25,
3849 k interfaces%SPMD_ARRAYS%IAD_FREDG,interfaces%SPMD_ARRAYS%FR_EDG,nodes%MAIN_PROC
3850 l multi_fvm,iparg ,elbuf_tab, h3d_data, t2main_sms,
3851 m lskyi_sms_new ,forneqs ,int7itied,idel7nok_sav,maxdgap,
3852 n t2fac_sms,nodes%ICODT,nodes%ISKEW ,fskyn25 ,addcsrect,procnor,
3853 o inter_struct,sort_comm,rnum_siz,nativ_sms_siz,temp_siz,
3854 p interfaces,glob_therm,component)
3856#include "lockon.inc"
3862#include "lockoff.inc"
3865 IF(inter_errors > 0)
THEN
3878 IF(
SIZE(interfaces%PON%ADSKYI,1) < numnod+2)
then
3879 deallocate(interfaces%PON%ADSKYI)
3880 allocate(interfaces%PON%ADSKYI(0:numnod+1))
3882 IF ( nisky+lskyi_count > sisky)
THEN
3883 CALL reallocate_i_skyline(lskyi_count,1,glob_therm%INTHEAT,glob_therm%nodadt_therm,interfaces%PON)
3889 CALL upgrade_rem_2ry(ipari,count_remslv,count_remslve,glob_therm%nodadt_therm)
3890 count_remslv(1:ninter)= 0
3891 count_remslve(1:ninter)= 0
3896 IF (imon > 0)
CALL stoptime(timers,timer_contsort)
3905 IF ((idtmins == 2.OR.idtmins_int/=0).AND.(ninter > 0))
THEN
3907 IF (lskyi_sms_new > lskyi_sms)
THEN
3911 lskyi_sms = nint(lskyi_sms_new*1.2)
3912 ALLOCATE(mskyi_sms(lskyi_sms),
iskyi_sms(lskyi_sms,3),
3917 CALL ancmsg(msgid=19,anmode=aninfo,
3918 . c1=
'LSKYI_SMS RESIZE')
3928 IF(ninter25 /= 0)
THEN
3931 IF (imon>0)
CALL startime(timers,timer_exfor)
3932 CALL spmd_exch_i25(ipari ,interfaces%INTBUF_TAB ,nodes%ITAB ,
3933 * nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,intlist ,nbintc,
3934 * iad_i25 ,fr_i25 ,sfr_i25 ,1 )
3935 CALL spmd_exch_i25(ipari ,interfaces%INTBUF_TAB ,nodes%ITAB ,
3936 * nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,intlist ,nbintc,
3937 * iad_i25 ,fr_i25 ,sfr_i25 ,2 )
3938 IF (imon>0)
CALL stoptime(timers,timer_exfor)
3948 IF(nadmesh > 0.AND.impl_s==0)
THEN
3949 IF (imon>0)
CALL startime(timers,36)
3955 IF(tt >= tadmesh
THEN
3956 tadmesh=tadmesh+dtadmesh
3960 IF(ichkadm/=0 .AND. iadmerrt/=0)
THEN
3963 . element%SHELL%IXC ,ixtg ,nodes%X ,iparg ,elbuf_tab ,
3964 . ipart ,ipart(k3),ipart(k8),err_thk_sh4 ,err_thk_sh3 ,
3965 . nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,nodes%WEIGHT ,sh4tree ,sh3tree ,
3966 . admerr_area_sh4, admerr_area_sh3, admerr_area_nod,
3967 . admerr_thick_sh4,admerr_thick_sh3,admerr_thick_nod )
3975 itsk = omp_get_thread_num()
3976 nodftsk = 1+itsk*numnod/ nthread
3977 nodltsk = (itsk+1)*numnod/nthread
3979 CALL admdiv(element%SHELL%IXC ,ipart(k3),ixtg ,ipart(k8),ipart,
3980 . itsk ,icontact ,iparg,nodes%X ,nodes%MS ,
3981 . nodes%IN ,rcontact ,elbuf_tab,nodftsk ,nodltsk,
3982 . igeo ,ipm ,sh4tree,padmesh,msc ,
3983 . inc ,sh3tree ,mstg ,intg ,ptg ,
3984 . acontact,pcontact,err_thk_sh4,err_thk_sh3,mscnd,
3985 . incnd,pm ,nodes%MCP ,mcpc ,mcptg,
3986 . glob_therm%ITHERM_FE)
3991 IF(iadmrule /= 0)
THEN
3993 CALL admregul(element%SHELL%IXC ,ipart(k3),ixtg ,ipart(k8),ipart,
3994 . itsk ,iparg ,nodes%X ,nodes%MS ,nodes%IN ,
3995 . elbuf_tab,nodftsk ,nodltsk,igeo ,ipm ,
3996 . sh4tree,msc ,inc ,sh3tree,mstg ,
3997 . intg ,ptg ,mscnd ,incnd ,pm ,
3998 . nodes%MCP ,mcpc ,mcptg ,glob_therm%ITHERM_FE)
4007 CALL admordr(sh4tree,sh3tree,element%SHELL%IXC,ixtg)
4008 IF(istatcnd /= 0)
CALL cndordr(ipart,ipart(k3),ipart(k8),
4013 1 iparg ,elbuf_tab ,element%PON%FSKY ,element%PON%FSKY ,fthesky,
4014 2 element%PON%IADC,element%PON%IAD_TG,iflgadm,igrouc,ngrouc ,
4015 3 condnsky ,glob_therm%NODADT_THERM)
4019 rcontact(nodftsk:nodltsk)=ep30
4020 acontact(nodftsk:nodltsk)=ep30
4021 pcontact(nodftsk:nodltsk)=zero
4024 IF (imon>0)
CALL stoptime(timers,36)
4030 IF(anim_v(5)+outp_v(5)+h3d_data%N_VECT_FINT+
4031 . anim_v(6)+outp_v(6)+h3d_data%N_VECT_FEXT>0
4032 . .AND.impl_s==0)
THEN
4041 itsk = omp_get_thread_num()
4042 nodftsk = 1+itsk*numnod/ nthread
4043 nodltsk = (itsk+1)*numnod/nthread
4044 CALL forani1(fani,nodes%A ,nfia,nfea,nfoa,nodftsk,nodltsk,noda_fext,h3d_data)
4052 IF (iale+ieuler+glob_therm%ITHERM/=0.AND.global_active_ale_element)
THEN
4053 CALL startime(timers,macro_timer_alemain)
4059 IF(trimat>0)lenqmv =
min(1,trimat)*(numels+numelq)
4061 IF(n2d /= 0) nv46 = 4
4075 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk ,
4076 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
4081 IF(iparit == 1) ndtsk = 1
4085 1 pm ,geo ,nodes%X ,nodes%A(1,ndtsk) ,nodes%V ,
4086 2 nodes%MS ,wa ,elbuf_tab ,bufmat ,partsav(ipmtsk) ,tf,
4087 3 val2 ,veul ,fv ,nodes%STIFN(ndtsk),element%PON%FSKY,eani,
4088 4 phi ,fill ,dfill ,alph ,skews%SKEW ,w,
4089 5 nodes%D ,dsave ,asave ,dt2tt ,dt2save ,xcell,
4090 6 iparg ,npc ,ixs ,ixq, ixtg ,element%PON%IADS,
4091 7 ifill ,nodes%ICODT,nodes%ISKEW ,ims ,element%PON%IADQ ,
4092 8 neltstt ,ityptstt ,ipart(k1) ,ipart(k2) ,itsk ,
4093 a nodftsk ,nodltsk ,nbrcvois ,nodes%TEMP ,output%TH%TH_SURF%CHANNELS,
4094 b nbsdvois ,lnrcvois ,lnsdvois ,nercvois ,nesdvois ,lercvois ,
4095 c lesdvois ,isizxv ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY,element%PON%FSKYM,msnf ,
4096 d ipari ,segvar ,nodes%ITAB
4097 e volmon ,fsav ,igrsurf ,neltsa ,
4098 f ityptsa ,nodes%WEIGHT ,npsegcom ,lsegcom ,ipm ,igeo,
4099 g nodes%ITABM1 ,lenqmv ,nv46 ,nodes%A ,gresav ,
4101 i dmels ,igaup ,ngaup ,table ,nodes%MS0 ,
4102 j nodes%XDP ,igrnod ,sfem_nodvar_ale ,interfaces%PON%FSKYI,interfaces%PON%ISKY, s_sfem_nodvar,
4103 k interfaces%INTBUF_TAB ,ixt ,igrv ,agrv ,sensors ,
4104 l lgrav ,condnsky ,condn ,ms_2d ,multi_fvm ,igrtruss ,
4105 m igrbric ,nloc_dmg ,id_global_vois,face_vois ,ebcs_tab ,ale_connectivity,
4106 n mat_elem ,h3d_data ,dt ,output ,need_comm_inter18 ,idtmins ,
4107 o idtmin ,maxfunc ,imon_mat ,userl_avail ,
4108 p impl_s ,idyna ,python ,mat_elem%MAT_PARAM,glob_therm)
4111#include "lockon.inc"
4119 IF(idt_int22 /= 0)
THEN
4133#include "lockoff.inc"
4137 IF(need_comm_inter18)
THEN
4139 . xcell,multi_fvm,xcell_remote,interfaces%INTBUF_TAB,ale_connectivity)
4142 CALL stoptime(timers,macro_timer_alemain)
4153 IF(
ale%SUB%IALESUB ==2 .AND.
ale%SUB%IFSUB==2)
GOTO 22
4156 IF (imon>0)
CALL startime(timers,6)
4157 IF (imonm > 0)
CALL startime(timers,51)
4162 1 pm ,geo ,nodes%X ,nodes%A ,nodes%AR ,
4163 2 nodes%V ,nodes%VR ,nodes%MS ,nodes%IN ,w ,
4164 3 elbuf ,val2 ,veul ,fv ,
4165 4 nodes%STIFN ,nodes%STIFR ,element%PON%FSKY ,tf ,bufmat ,
4166 5 partsav ,fani(1,nfoa+1),fsav ,
4168 7 element%PON%IADS ,iparg ,npc ,ixs ,
4169 8 neltst ,ityptst ,ipart ,ipart(k1) ,nodes%ITAB ,
4170 9 interfaces%PON%FSKYI ,bufgeo ,kxx ,ixx ,interfaces%PON%ISKY ,
4171 a ipart(k9) ,gresav ,
grth ,
4172 b
igrth ,elbuf_tab )
4173 IF (imonm > 0)
CALL stoptime(timers,51)
4174 IF (imon>0)
CALL stoptime(timers,6)
4186 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk ,
4187 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
4195 .
ifoam_cont(nodftsk:nodltsk)= icontact(nodftsk:nodltsk)
4197 icontact(nodftsk:nodltsk)=0
4200 IF(istatcnd /= 0)
THEN
4203 stcnd(ndtsk+n-1) = zero
4206 DO n=nodftsk,nodltsk
4212 IF(intplyxfem > 0)
THEN
4213 DO n=nodftsk,nodltsk
4221 IF(anim_ply > 0) vn_nod = zero
4225 IF(nloadp_hyd_inter > 0 )
THEN
4232 itsk = omp_get_thread_num()
4233 nodftsk = 1+itsk*numnod/ nthread
4234 nodltsk = (itsk+1)*numnod/nthread
4235 DO k=1,nloadp_hyd_inter
4236 tagncont(k,nodftsk:nodltsk) = 0
4248 IF (imon>0)
CALL startime(timers,timer_contsort)
4258 IF (sh_offset_tab%NNSH_OSET > 0)
THEN
4259 CALL assign_ptrx(ptrx,xyz,numnod)
4260 ELSEIF (impl_s > 0 .AND. ismdisp >0)
THEN
4261 CALL assign_ptrx(ptrx,impbuf_tab%X_A,numnod)
4263 CALL assign_ptrx(ptrx,nodes%X,numnod)
4266 1 ipari ,ptrx ,nodes%A ,
4267 2 nodes%ICODT ,fsav ,wa(1),nodes%V ,nodes%MS ,
4268 3 dt2tt ,neltstt ,ityptstt ,nodes%ITAB ,nodes%STIFN ,
4269 4 npc ,tf ,interfaces%PON%FSKYI ,interfaces%PON%ISKY ,nodes%VR ,
4270 5 fani ,nodes%IN ,bufsf ,fani(1,nfnca+1) ,nsensor,
4271 6 fani(1,nftca+1) ,icontact ,rcontact ,num_impl(1,1),
4272 7 ns_imp(iadisk),ne_imp(iadisk),nt_imp ,sensors%SENSOR_TAB,interfaces%INTBUF_TAB ,
4273 8 h3d_data ,pskids ,tagncont,kloadpinter,loadpinter,
4294 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk ,
4295 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
4303 IF(istatcnd /= 0 .AND. iparit == 0)
THEN
4305 stcnd(ndtsk+n-1)=-nodes%STIFN (ndtsk+n-1)
4310 iadisk = 1+itsk*nint7
4314 IF(iparit == 1) ndtsk = 1
4317 1 ipari ,nodes%X ,nodes%A(1,ndtsk) ,
4318 2 nodes%ICODT ,fsav ,wa(nwaftsk),nodes%V ,nodes%MS ,
4319 3 dt2tt ,neltstt ,ityptstt ,nodes%ITAB ,nodes%STIFN(ndtsk) ,
4320 4 npc ,tf ,interfaces%PON%FSKYI ,interfaces%PON%ISKY ,nodes%VR ,
4321 6 fani ,nodes%IN ,igrsurf ,bufsf ,fani(1,nfnca+1) ,
4322 7 fani(1,nftca+1) ,icontact ,rcontact ,num_impl(1,itsk+1),
4323 8 ns_imp(iadisk),ne_imp(iadisk),nt_imp ,sensors%SENSOR_TAB,interfaces%INTBUF_TAB,
4324 9 h3d_data ,nsensor)
4326#include "lockon.inc"
4332#include "lockoff.inc"
4337 CALL re2int5(nt_imp,num_imp,ns_imp,ne_imp,num_impl,ipari,nint7)
4341 IF (imon>0)
CALL stoptime(timers,timer_contsort)
4348 IF (imon>0)
CALL startime(timers,timer_contfor)
4358 IF(ninter25 /= 0)
THEN
4359 IF (imon>0)
CALL startime(timers,timer_exfor)
4360 CALL spmd_exch_i25(ipari ,interfaces%INTBUF_TAB,nodes%ITAB ,
4361 * nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,intlist ,nbintc,
4362 * iad_i25 ,fr_i25 ,sfr_i25 ,3 )
4363 CALL spmd_exch_i25(ipari ,interfaces%INTBUF_TAB,nodes%ITAB ,
4364 * nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,intlist ,nbintc,
4365 * iad_i25 ,fr_i25 ,sfr_i25 ,4 )
4366 IF (imon>0)
CALL stoptime(timers,timer_exfor)
4375 ntmp = nt_imp5 + nt_imp1
4377 IF (sh_offset_tab%NNSH_OSET > 0)
THEN
4378 CALL assign_ptrx(ptrx,xyz,numnod)
4379 ELSEIF (impl_s > 0 .AND. ismdisp >0)
THEN
4380 CALL assign_ptrx(ptrx,impbuf_tab%X_A,numnod)
4382 CALL assign_ptrx(ptrx,nodes%X,numnod)
4392 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk ,
4393 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
4400 iadisk = 1+ntmp+itsk*(nint7-ntmp)
4405 IF(ndtsk>ifthe) idx_fthe = 1
4407 IF(ndtsk>icondn)idx_condn = 1
4409 IF(
npinch == 0 )idx_pinch = 1
4410 IF(iparit == 1) ndtsk = 1
4412 1 ipari ,ptrx ,nodes%A(1,ndtsk) ,igroups ,ale_connectivity,
4413 2 nodes%ICODT ,fsav ,nodes%V ,nodes%MS ,dt2tt ,
4415 4 interfaces%PON%FSKYI ,interfaces%PON%ISKY ,nodes%VR ,fani,secfcum,
4416 5 itsk+1 ,niskyfi ,kinet ,newfront ,nstrf ,
4417 6 icontact ,nodes%VISCN(ndtsk),xcell ,
4418 8 num_impl(1,itsk+1),ns_imp(iadisk) ,ne_imp(iadisk) ,ind_imp(iadisk) ,nt_imp ,
4419 9 fr_i18 ,igrbric ,eminx ,
4420 a ixs ,ixs(l3) ,ixs(l2) ,fani(1,nfnca+1) ,fani(1,nftca+1) ,
4421 b nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,rcontact ,acontact ,pcontact ,
4422 c nodes%TEMP ,fthe(idx_fthe) ,ftheskyi ,iparg ,nsensor ,
4423 d pm ,
intstamp ,nodes%WEIGHT ,niskyfie ,irlen20 ,
4424 e islen20 ,irlen20t ,islen20t ,irlen20e ,islen20e ,
4426 g fncontg ,ftcontg ,nodes%NODGLOB ,nodes%MS0 ,npc ,
4427 h wa ,sensors%SENSOR_TAB,qfricint ,ncont ,
indexcont ,
4428 i
tagcont ,inod_pxfem ,ms_ply ,wagap ,elbuf_tab ,
4429 j condn(idx_condn) ,condnskyi ,nv46 ,
4430 k sensors%SFSAV ,sensors%FSAV ,glob_therm%NODADT_THERM,glob_therm%THEACCFACT,
4431 l isensint ,nisubmax ,nb25_candt ,nb25_impct ,
4432 m nb25_dst1 ,nb25_dst2 ,ixig3d ,kxig3d ,wige ,
4433 n knot ,igeo ,multi_fvm ,h3d_data ,
4434 p pskids ,t2main_sms ,forneqs ,knotlocpc ,knotlocel ,
4435 q pinch_data%APINCH(1,idx_pinch),pinch_data%STIFPINCH(idx_pinch),t2fac_sms,tagncont ,
4436 r kloadpinter ,loadpinter ,loadp_hyd_inter ,dgaploadint ,s_loadpinter ,
4437 s interfaces ,xcell_remote)
4439 IF(nintstamp/=0.AND.(anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT >0.OR.
4440 . anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT >0))
THEN
4443 DO i=itsk+1,ncont,nthread
4449#include "lockon.inc"
4455#include "lockoff.inc"
4457 IF(istatcnd /= 0 .AND. iparit == 0)
THEN
4459 stcnd(ndtsk+n-1) = stcnd(ndtsk+n-1) + nodes%STIFN (ndtsk+n-1)
4462 IF (iparit == 0 .AND. nspmd > 1 .AND. nthread > 1)
THEN
4464 CALL assparxx(itsk, intlist,nbintc,ipari,glob_therm%NODADT_THERM)
4472 IF(impl_s>0)
CALL re2int7(nt_imp,num_imp,ns_imp,ne_imp,
4473 1 ind_imp,num_impl,ipari,nint7 )
4476 CALL stoptime(timers,timer_contfor)
4479 IF (imonm > 0)
CALL startime(timers,21)
4487 IF((anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT >0.AND.
4488 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP) .OR.
4489 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))
4490 . .OR.h3d_data%N_VECT_PCONT_MAX >0)
THEN
4492 1 ipari ,intlist ,nbintc ,fani(1,nfnca+1),
4493 2 fani(1,nftca+1),islen7 ,irlen7 ,irlen7t ,islen7t ,
4494 3 irlen20 ,islen20,irlen20t,islen20t,interfaces%INTBUF_TAB ,
4495 4 h3d_data%N_CSE_FRIC_INTER,h3d_data%N_SCAL_CSE_FRIC)
4496 ELSEIF((h3d_data%N_SCAL_CSE_FRIC+
ninefric>0.AND.
4497 . ((tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP) .OR.
4498 . h3d_data%MH3D/=0 ))
4499 . .OR.(h3d_data%N_SCAL_CSE_FRIC+
ninefric >0.AND.ninter25>0))
THEN
4501 1 ipari ,intlist ,nbintc ,islen7 ,irlen7 ,
4502 2 irlen7t ,islen7t ,irlen20 ,islen20,irlen20t,
4503 3 islen20t ,interfaces%INTBUF_TAB ,h3d_data)
4507 l1 = 1+nixs*numels + nsvois*nixs
4512 1 ipari ,nodes%A ,nodes%STIFN ,nodes%VISCN ,
4513 2 intlist ,nbintc ,nodes%ICODT ,secfcum ,nstrf ,
4514 3 icontact ,fani ,islen7 ,irlen7 ,islen11 ,
4515 4 irlen11 ,islen17 ,irlen17,igrbric ,
4516 5 ixs ,ixs(l3) ,fthe ,irlen7t ,
4517 6 islen7t ,irlen20 ,islen20,irlen20t,islen20t,
4518 7 irlen20e ,islen20e,condn ,1, interfaces%INTBUF_TAB ,
4519 8 h3d_data, multi_fvm,tagncont,kloadpinter,loadpinter,
4520 9 loadp_hyd_inter,fsav ,interfaces,glob_therm%NODADT_THERM)
4524 1 ipari ,intlist ,nbintc ,niskyfi ,nodes%ICODT ,
4525 2 secfcum ,nstrf ,icontact ,fani ,igrbric ,
4526 3 ixs ,ixs(l3) ,niskyfie ,nbint20 ,1 ,
4527 4 interfaces%INTBUF_TAB,sfskyi ,sisky ,h3d_data ,multi_fvm ,
4528 5 tagncont ,kloadpinter,loadpinter,loadp_hyd_inter,fsav,
4529 6 interfaces,glob_therm)
4531 IF(multi_fvm%IS_INT18_LAW151)
THEN
4538 IF (imon>0)
CALL stoptime(timers,timer_exfor)
4539 IF (imonm > 0)
CALL stoptime(timers,21)
4546 IF (int24use == 1)
THEN
4547 IF (imon>0)
CALL startime(timers,timer_contfor)
4548 CALL spmd_exch_i24(ipari ,interfaces%INTBUF_TAB,nodes%ITAB ,
4549 * nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,intlist ,nbintc,
4550 * iad_i24 ,fr_i24 ,sfr_i24,i24maxnsne,1,
4553 IF (imon>0)
CALL stoptime(timers,timer_contfor)
4559 IF(nintstamp /= 0.AND.ftempvar21==1)
THEN
4560 CALL spmd_i21fthecom(ipari ,fthe ,interfaces%INTBUF_TAB,sensors%SENSOR_TAB,niskyfi ,
4561 . ftheskyi,interfaces%PON%ISKY ,interfaces%PON%FSKYI ,condnskyi,nsensor,glob_therm%NODADT_THERM)
4567 IF (ns10e > 0.AND.iparit == 0)
THEN
4575 itsk = omp_get_thread_num()
4576 nodftsk = 1+itsk*numnod/ nthread
4577 nodltsk = (itsk+1)*numnod/nthread
4578 greftsk = 1+itsk*ns10e/ nthread
4579 greltsk = (itsk+1)*ns10e/nthread
4581 2 nodftsk,nodltsk,greftsk,greltsk,itsk ,
4582 3 nodes%STIFN ,stifnd)
4595 IF (imonm > 0)
CALL startime(timers,50)
4597 nn = numelc+numeltg+ibagsurf
4607 CALL fvmesh0(monvol, nodes%X, volmon, ixs)
4609 CALL fvupd0(monvol, nodes%X, nodes%V, volmon, smonvol, svolmon)
4610 n=1+ninter+nrwall+nrbody+nsect+njoint+nrbag
4611 CALL fvbag0(monvol , volmon, nodes%X, sensors%SENSOR_TAB, nodes%V ,
4612 . nodes%A , npc, tf, nsensor ,
4613 . fsav(1,n), ifvmesh, icontact_old, lgauge ,
4614 . gauge , igeo, geo, pm , ipm ,
4615 . iparg , igrouptg, igroupc, elbuf_tab , noda_fext,
4616 . 1 , h3d_data, nodes%ITAB, nodes%WEIGHT , output%TH%WFEXT, python)
4619 IF (imonm > 0)
CALL stoptime(timers,50)
4623 IF(nspmd > 1 .AND. nvolu > 0 .AND. nfvbag0 > 0)
THEN
4653 IF (nslipring + nretractor> 0)
CALL update_slipring(ixr,element%SHELL%IXC,iparg,elbuf_tab,flag_slipring_update,
4654 . flag_retractor_update,nodes%X,npby)
4660 IF (imon>0)
CALL startime(timers,timer_element)
4666 llt1 = i87g+3*numeltg
4674 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk,
4675 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
4681 IF(igrelem == 1)iad_grel = k3-k1+1
4683 IF(ndtsk>ifthe)idx_fthe=1
4685 IF(ndtsk>icondn)idx_condn=1
4687 IF(
npinch == 0 )idx_pinch = 1
4688 IF(iparit == 1) ndtsk = 1
4690 1 pm ,geo ,nodes%X ,nodes%A(1,ndtsk) ,nodes%AR(1,ndtsk) ,
4691 2 nodes%V ,nodes%VR ,nodes%MS ,nodes%IN ,nloc_dmg ,
4692 3 wa(nwaftsk) ,nodes%STIFN(ndtsk) ,nodes%STIFR(ndtsk) ,element%PON%FSKY ,
crksky ,
4693 4 tf ,bufmat ,partsav(ipmtsk) ,nodes%D ,mat_elem ,
4694 5 nodes%DR ,eani ,tani ,fani(1,nfoa+1) ,
4695 6 fsav ,sensors ,skews%SKEW ,anin(ndma2+1) ,failwave ,
4696 7 dt2tt ,thke ,bufgeo ,element%PON%IADC ,element%PON%IAD_TG ,
4697 8 iparg ,npc ,element%SHELL%IXC ,ixtg ,neltstt ,
4698 9 ipari ,ityptstt ,nstrf ,
4699 a ipart ,ipart(k3) ,ipart(k8) ,secfcum ,
4700 b fsavd ,mat_elem%GROUP_PARAM ,
4701 e fzero ,ixtg1 ,element%PON%IAD_TG6 ,igeo ,ipm ,
4702 f madfail ,xsec ,itsk ,nodes%MCP ,
4703 g nodes%TEMP ,fthe(idx_fthe) ,fthesky ,
4705 i iel_pxfem ,iadc_pxfem ,igrouc ,ngrouc ,gresav(igmtsk),
4706 j
grth ,
igrth(iad_grel) ,mstg ,dmeltg ,msc ,
4707 k dmelc ,table ,kxfenod2elc ,ptg ,msz2 ,
4708 l inod_crk ,iel_crk ,iadc_crk ,elcutc ,nodenr ,
4709 m ibordnode ,nodedge ,crknodiad ,elbuf_tab ,
4710 n xfem_tab ,condn(idx_condn),condnsky ,
crkedge ,
4711 o stack ,nodes%ITAB ,glob_therm,
4712 q drape_sh4n ,drape_sh3n ,subsets, nodes%XDP ,pinch_data%VPINCH ,
4713 r pinch_data%APINCH(1,idx_pinch),pinch_data%STIFPINCH(idx_pinch),drapeg ,
4714 s output ,dt ,snpc , stf ,userl_avail ,maxfunc ,
4716#include "lockon.inc"
4722#include "lockoff.inc"
4725 IF (imon>0)
CALL stoptime(timers,timer_element)
4736 IF (imon>0)
CALL startime(timers,timer_element)
4737 l1 = 1+nixs*numels + nsvois*nixs
4741 ll2 = ll1+6*numels10
4742 ll3 = ll2+12*numels20
4755 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk,
4756 2 ipmtsk,partftsk ,partltsk ,nwaftsk,igmtsk ,
4758 IF(iparit == 1) ndtsk = 1
4763 i16tsk = 1+itsk*(sw16/nthread)
4765 IF(ndtsk>ifthe) idx_fthe = 1
4767 IF(ndtsk>icondn)idx_condn = 1
4769 CALL forint(timers, python,
4770 1 pm ,geo ,nodes%X ,nodes%A(1,ndtsk) ,nodes%AR(1,ndtsk) ,
4771 2 nodes%V ,nodes%VR ,nodes%MS ,nodes%IN ,w ,
4772 3 elbuf ,wa(nwaftsk) ,val2 ,veul ,fv ,
4773 4 nodes%STIFN(ndtsk) ,nodes%STIFR(ndtsk) ,element%PON%FSKY ,tf ,bufmat ,
4774 5 partsav(ipmtsk),nodes%D ,nodes%DR ,eani ,elbuf_tab ,
4775 6 tani ,fani(1,nfoa+1),fsav ,sensors ,nloc_dmg ,
4776 7 skews%SKEW ,anin(ndma2+1) ,dt2tt ,bufgeo ,nodes%ITAB ,
4777 8 element%PON%IADS ,element%PON%IADQ ,element%PON%IAD_TRUSS ,element%PON%IAD_BEAM ,mat_elem ,
4779 a ixs ,ixq ,ixt ,ixp ,
4780 b ixr ,neltstt ,ipari ,
4781 c ityptstt ,nstrf ,ipart ,
4782 d ipart(k1) ,ipart(k2)
4783 e ipart(k6) ,ipart(k7) ,fr_wave ,rby ,
4784 f secfcum ,agrv ,igrv ,lgrav ,
4786 h ixs(l2) ,element%PON%IADS10 ,element%PON%IADS20 ,ixs(l3) ,element%PON%IADS16 ,
4787 i w16(i16tsk) ,element%PON%FSKYM ,msnf ,igeo ,ipm ,
4788 j xsec ,itsk ,nodes%TEMP ,
4789 k fthe(idx_fthe) ,fthesky ,igrounc ,ngrounc ,
4790 m gresav(igmtsk) ,
grth ,
igrth ,nodes%XDP ,mssa ,
4791 n dmels ,mstr ,dmeltr ,msp ,dmelp ,
4792 o msrt ,dmelrt ,table ,vflow ,aflow ,
4793 p dflow ,wflow ,ffsky ,aflow ,nbsdvois ,
4794 q nercvois ,nesdvois ,lercvois ,lesdvois ,phi ,
4795 r phie ,msf ,nodftsk ,nodltsk ,
4797 t kxig3d ,ixig3d ,knot ,wige ,condn(idx_condn),
4798 u condnsky ,s_sfem_nodvar,
4800 w knotlocpc ,knotlocel ,subsets ,flag_slipring_update, flag_retractor_update ,
4801 y h3d_data ,ifthe ,icondn ,dt ,output,
4802 z sbufmat ,snpc ,stf ,nodadt ,dtfac1,
4803 . dtmin1 ,idtmin ,iout ,istdo ,idtmins,dtfacs,nsvois,
4804 . iresp ,maxfunc ,userl_avail ,glob_therm,imon_mat,dtmins,sanin)
4806#include "lockon.inc"
4812#include "lockoff.inc"
4816 IF (imon>0)
CALL stoptime(timers,timer_element)
4819 IF (imonm > 0)
CALL startime(timers,48)
4820 IF (imonm > 0)
CALL startime(timers,87)
4833 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk,
4834 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
4839 1 pm ,geo ,nodes%X ,nodes%V ,nodes%MS ,
4840 2 elbuf_tab,wa ,tf ,bufmat ,partsav ,
4841 3 iparg ,npc ,ipart ,nodes%ITAB ,bufgeo ,
4842 4 xframe ,kxsp ,ixsp ,nod2sp ,ipart(k10),
4843 5 spbuf ,ispcond ,ispsym ,xspsym ,vspsym ,
4845 7 isphio ,vsphio ,igrsurf ,nodes%D ,
4846 8 sphveln ,itsk ,nodes%XDP ,ibufssg_io,lgauge ,
4847 9 gauge ,ngrounc ,igrounc ,sol2sph ,sph2sol ,
4848 a ixs ,element%PON%IADS ,element%PON%ADSKY ,element%PON%FSKYD ,dmsph(ndtsk),
4849 b wasph(kspactiv),icontact_old,off_sph_r2r,wsmcomp,irunn_bis,
4850 c sph_iord1,sph_work,output%TH%WFEXT)
4853 IF (imonm > 0)
CALL stoptime(timers,87)
4857 IF (imonm > 0)
CALL startime(timers,88)
4866 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk ,
4867 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
4875 IF(igrelem == 1)iad_grel = k10-k1+1
4876 IF(iparit == 1) ndtsk = 1
4882 1 pm ,geo ,nodes%X ,nodes%A(1,ndtsk) ,nodes%V ,
4883 2 nodes%MS ,w ,elbuf_tab ,wa ,fv ,
4884 3 nodes%STIFN(ndtsk) ,tf ,bufmat ,partsav(ipmtsk) ,nloc_dmg ,
4885 4 fsav ,dt2tt ,element%PON%IADS ,iparg ,npc ,
4886 5 neltstt ,ityptstt ,ipart ,nodes%ITAB ,interfaces%PON%ISKY ,
4887 6 bufgeo ,interfaces%PON%FSKYI ,xframe ,kxsp ,ixsp ,
4888 7 nod2sp ,ipart(k10) ,spbuf ,ispcond ,ispsym ,
4889 8 xspsym%BUF ,vspsym%BUF ,
4890 9 wasph(ksph21) ,lprtsph ,lonfsph ,wasph(kspactiv) ,isphio ,
4891 a vsphio ,sphveln ,itsk ,ipm ,gresav(igmtsk),
4892 b
grth ,
igrth(iad_grel),table ,lgauge ,gauge ,
4893 c ngrounc ,igrounc ,ixs ,irst ,sol2sph ,
4894 d sph2sol ,element%PON%FSKY ,element%PON%FSKY ,igeo ,nodes%TEMP ,
4895 e fthe ,ftheskyi ,sphg_f6 ,wsmcomp%BUF ,sol2sph_typ ,
4896 f mat_elem ,output ,sph_iord1 ,snpc ,stf ,
4897 g sbufmat ,nsvois ,idtmins ,iresp ,maxfunc ,
4898 . imon_mat ,userl_avail ,impl_s ,idyna
4899 . dt ,glob_therm ,sph_work ,output%TH%WFEXT ,sensors )
4900#include "lockon.inc"
4906#include "lockoff.inc"
4919 IF (imonm > 0)
CALL stoptime(timers,88)
4920 IF (imonm > 0)
CALL stoptime(timers,48)
4927 IF ((sdd_r2r_elem>0).AND.(flg_sphinout_r2r>0))
THEN
4928 lenr = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
4929 CALL spmd_exch_r2r_sphoff(off_sph_r2r,nodes%BOUNDARY_ADD,nodes%BOUNDARY,dd_r2r,dd_r2r_elem,lenr)
4930 CALL spmd_exch_r2r_sph(nodes%X,nodes%BOUNDARY_ADD,nodes%BOUNDARY,dd_r2r,dd_r2r_elem,lenr)
4931 CALL spmd_exch_r2r_sph(nodes%D,nodes%BOUNDARY_ADD,nodes%BOUNDARY,dd_r2r,dd_r2r_elem,lenr)
4932 CALL spmd_exch_r2r_sph(nodes%V,nodes%BOUNDARY_ADD,nodes%BOUNDARY,dd_r2r,dd_r2r_elem,lenr)
4938 IF (imonm > 0)
CALL startime(timers,50)
4940 nn = numelc+numeltg+ibagsurf
4947 sporo = numelc+numeltg+ibagsurf
4949 n=1+ninter+nrwall+nrbody+nsect+njoint+nrbag
4950 CALL fvbag0(monvol, volmon, nodes%X, sensors%SENSOR_TAB, nodes%V,
4951 . nodes%A, npc, tf, nsensor ,
4952 . fsav(1,n), ifvmesh, icontact_old,lgauge,
4953 . gauge , igeo, geo, pm, ipm,
4954 . iparg , igrouptg,igroupc, elbuf_tab, noda_fext,
4955 . 2 , h3d_data,nodes%ITAB, nodes%WEIGHT, output%TH%WFEXT, python)
4956 IF (impl_s > 0 .AND. ismdisp >0)
THEN
4957 CALL assign_ptrx(ptrx,impbuf_tab%X_A,numnod)
4959 CALL assign_ptrx(ptrx,nodes%X,numnod)
4962 1 monvol ,volmon ,ptrx ,nodes%A ,
4963 2 npc ,tf ,nodes%V ,wa ,
4964 3 fsav(1,n) ,nsensor ,sensors%SENSOR_TAB ,igrsurf ,
4965 4 fr_mv ,element%PON%IAD_MV ,sicontact ,sporo ,
4966 5 element%PON%FSKY ,icontact ,wa(n0) ,iparg ,
4967 6 elbuf_tab ,geo ,igeo ,
4968 7 pm ,ipm ,ipart ,ipart(k3) ,
4969 8 ipart(k8) ,igroupc ,igrouptg ,noda_fext ,
4970 9 2 ,h3d_data ,t_monvol ,frontier_global_mv,
4974 IF (imonm > 0)
CALL stoptime(timers,50)
4981 IF (ns10e > 0 .AND. iparit==0)
THEN
4985 itsk = omp_get_thread_num()
4986 nodftsk = 1+itsk*numnod/ nthread
4987 nodltsk = (itsk+1)*numnod/nthread
4988 greftsk = 1+itsk*ns10e/ nthread
4989 greltsk = (itsk+1)*ns10e/nthread
4991 2 nodftsk,nodltsk,greftsk,greltsk,itsk ,
4992 3 nodes%STIFN ,stifnd)
5010 IF (imon>0)
CALL startime(timers,timer_exfor)
5011 IF (imonm > 0)
CALL startime(timers,22)
5013 l1 = 1+nixs*numels + nsvois*nixs
5019 1 ipari ,nodes%A ,nodes%STIFN ,nodes%VISCN ,
5020 2 intlist ,nbintc ,nodes%ICODT ,secfcum ,nstrf ,
5021 3 icontact ,fani ,islen7 ,irlen7 ,islen11 ,
5022 4 irlen11 ,islen17 ,irlen17 ,igrbric ,
5023 5 ixs ,ixs(l3) ,fthe ,irlen7t ,
5024 6 islen7t ,irlen20 ,islen20 ,irlen20t,islen20t,
5025 7 irlen20e ,islen20e,condn ,2, interfaces%INTBUF_TAB,
5026 8 h3d_data, multi_fvm,tagncont,kloadpinter,loadpinter,
5027 9 loadp_hyd_inter,fsav ,interfaces,glob_therm%nodadt_therm)
5031 1 ipari ,intlist ,nbintc ,niskyfi ,nodes%ICODT ,
5032 2 secfcum ,nstrf ,icontact ,fani ,igrbric ,
5033 3 ixs ,ixs(l3) ,niskyfie ,nbint20 ,2 ,
5034 4 interfaces%INTBUF_TAB,sfskyi ,sisky ,h3d_data ,multi_fvm ,
5035 5 tagncont ,kloadpinter,loadpinter,loadp_hyd_inter,fsav,
5036 6 interfaces,glob_therm)
5042 IF (imonm > 0)
CALL stoptime(timers,22)
5050 IF(iparit /= 0.AND.nspmd > 1.AND. nloc_dmg%IMOD > 0)
THEN
5053 IF(nspmd > 1.AND. nintloadp > 0)
THEN
5054 lenr = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
5059 IF(nloadp_hyd/=0.AND.impl_s/=1)
THEN
5062 IF (imon>0)
CALL startime(timers,timer_kin)
5063 IF (imonm > 0)
CALL startime(timers,41)
5065 2 nodes%A ,nodes%V ,nodes%X ,skews%SKEW ,sensors%SENSOR_TAB,
5066 3 element%PON%IAD_LOADP,element%PON%FSKY ,fani(1,1+nfea),tagncont ,nsensor ,
5067 4 loadp_hyd_inter,h3d_data , python,
5068 5 npresload ,loadp_tagdel,output%TH%TH_SURF,pblast,output%TH%WFEXT)
5071 IF (imonm > 0)
CALL stoptime(timers,41)
5072 IF (imon>0)
CALL stoptime(timers,timer_kin)
5078 IF(coupling%active)
THEN
5079 nodes%FORCES(1:3,1:numnod) = nodes%A(1:3,1:numnod)
5085 IF(iparit == 0 .AND. nthread > 1)
THEN
5086 IF (imon>0)
CALL startime(timers,timer_asm)
5090 itsk = omp_get_thread_num()
5091 nodftsk = 1+itsk*numnod/ nthread
5092 nodltsk = (itsk+1)*numnod/nthread
5093 partftsk = 1+itsk*npsav*npart/nthread
5094 partltsk = (itsk+1)*npsav*npart/nthread
5095 greftsk = 1+itsk*npsav*ngpe/nthread
5096 greltsk = (itsk+1)*npsav*ngpe/nthread
5101 1 nthread ,numnod,nodftsk,nodltsk,iroddl,
5102 2 npart ,partftsk,partltsk ,nodes%A ,nodes%AR ,
5103 3 partsav ,nodes%STIFN ,nodes%STIFR ,nodes%VISCN , fthe ,
5104 4 glob_therm%ITHERM_FE,glob_therm%NODADT_THERM,stcnd ,greftsk,greltsk ,
5105 5 gresav ,ngpe ,nthpart ,ialelag, aflow,
5107 7 pinch_data%APINCH,pinch_data%STIFPINCH)
5112 IF (nloc_dmg%IMOD > 0)
THEN
5113 nodft_nl = 1+ itsk*nloc_dmg%NNOD/nthread
5114 nodlt_nl = (itsk+1)*nloc_dmg%NNOD/nthread
5116 . nloc_dmg%POSI,nloc_dmg%L_NLOC,nthread )
5118 IF (nodadt > 0)
THEN
5120 . nloc_dmg%POSI,nloc_dmg%L_NLOC,nthread )
5121 CALL nlocal_dtnoda(nodft_nl,nodlt_nl,nloc_dmg,dtnod_nlocal,dt2t)
5125 IF (imon>0)
CALL stoptime(timers,timer_asm)
5131 IF(numsph /= 0 .AND. nsphsol /= 0 )
THEN
5132 IF (imonm > 0)
CALL startime(timers,48)
5133 IF (imonm > 0)
CALL startime(timers,89)
5137 itsk = omp_get_thread_num()
5138 nodftsk = 1+itsk*numnod/ nthread
5139 nodltsk = (itsk+1)*numnod/nthread
5142 1 nodes%A ,spbuf ,ixs ,kxsp ,ipart(k10),
5143 2 nod2sp ,irst ,ngrounc ,igrounc ,iparg ,
5144 3 nodes%STIFN ,sol2sph,sph2sol ,elbuf_tab,itsk ,
5145 4 nodftsk,nodltsk,interfaces%PON%ISKY ,interfaces%PON%FSKYI ,igeo ,
5150 IF (imonm > 0)
CALL stoptime(timers,89)
5151 IF (imonm > 0)
CALL stoptime(timers,48)
5162 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk ,
5163 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
5166 CALL zeror(forneqs(1,nodftsk),numntsk)
5172 IF (int24use == 1)
THEN
5173 IF (sh_offset_tab%NNSH_OSET > 0)
THEN
5174 CALL assign_ptrx(ptrx,xyz,numnod)
5175 ELSEIF (impl_s > 0 .AND. ismdisp >0)
THEN
5176 CALL assign_ptrx(ptrx,impbuf_tab%X_A,numnod)
5178 CALL assign_ptrx(ptrx,nodes%X,numnod)
5180 CALL i24nitschfor3 (ipari ,interfaces%INTBUF_TAB,iparit ,stressmean ,
5181 2 intlist ,nbintc ,ptrx,element%PON%IADS,
5182 3 forneqs ,forneqsky ,nodes%ITAB ,ixs ,
5183 4 element%PON%IADS10,element%PON%IADS20 ,element%PON%IADS16,nfacnit )
5191 IF(int18kine== 1)
THEN
5192 ALLOCATE(mtf(14,numnod))
5193 ALLOCATE(cand_sav(8,int18add(ninter+1)-1))
5195 ALLOCATE(tagpene(numnod))
5197 ALLOCATE(tagpene(1))
5200 int18add(ninter+1) = -iabs(int18add(ninter+1))
5201 int18kine=-iabs(int18kine)
5204 IF (imon>0)
CALL startime(timers,timer_exfor)
5206 length = 4 + iroddl*4
5209 IF(
ale%SUB%IFSUBM == 1) length = length + 1
5210 ELSEIF(
ale%SUB%IFSUBM==1)
THEN
5214 IF(glob_therm%ITHERM_FE > 0 )
THEN
5216 IF (glob_therm%NODADT_THERM == 1 ) length = length + 1
5219 IF(ialelag > 0 )
THEN
5223 IF(sol2sph_flag/=0) length = length + 1
5225 IF(nitsche > 0 )
THEN
5230 IF(anim_v(26)+h3d_data%N_VECT_CONT_MAX /=0.AND.nintstamp==0) lenc = 3
5231 IF(h3d_data%N_VECT_PCONT_MAX /=0.AND.nintstamp==0) lenc = lenc+6
5233 lenr = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
5234 IF(idtmins /= 0)
THEN
5237 1 nodes%A ,nodes%AR ,nodes%STIFN, nodes%STIFR ,nodes%MS ,
5238 2 nodes%BOUNDARY_ADD,nodes%BOUNDARY,msnf ,
ale%SUB%IFSUBM
5240 4 ms_2d ,mcp_off,forneqs ,nfacnit ,
5241 5 lenc ,fani ,h3d_data,fani(1,nfnca+1),
5242 6 fani(1,nftca+1) ,glob_therm)
5245 1 nodes%A , nodes%ACC_DP ,nodes%AR ,nodes%STIFN,nodes%STIFR ,nodes%MS ,
5246 2 nodes%BOUNDARY_ADD,nodes%BOUNDARY,msnf ,
ale%SUB%IFSUBM,length ,
5247 3 lenr ,fthe , nodes%MCP, dmsph,condn,
5249 5 forneqs ,nfacnit,lenc ,fani ,h3d_data,
5250 6 fani(1,nfnca+1) ,fani(1,nftca+1) ,glob_therm)
5255 length = 4 + iroddl*4
5256 IF(
ale%SUB%IFSUBM==1)
THEN
5259 IF(n2d /= 0.AND.
ale%SUB%IFSUBM == 1) length = length + 1
5262 IF (glob_therm%ITHERM_FE > 0 )
THEN
5265 IF (glob_therm%NODADT_THERM == 1 )
THEN
5270 IF(intplyxfem > 0) sizi = sizi + 5
5272 IF(ialelag > 0 )
THEN
5276 lens = fr_nbcc(1,nspmd+1)
5277 lenr = fr_nbcc(2,nspmd+1)
5278 leni = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
5283 IF(iplyxfem > 0)
THEN
5284 lens1 = fr_nbcc1(1,nspmd+1)
5285 lenr1 = fr_nbcc1(2,nspmd+1)
5288 IF(icrack3d > 0)
THEN
5289 lens1 = fr_nbcc1(1,nspmd+1)
5293 IF(sol2sph_flag/=0)
THEN
5298 IF(anim_v(26)+h3d_data%N_VECT_CONT_MAX /=0.AND.nintstamp==0) lenc = 3*leni
5299 IF(h3d_data%N_VECT_PCONT_MAX /=0.AND.nintstamp==0) lenc = lenc+6*leni
5302 1 nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,element%PON%ADSKY ,element%PON%PROCNE ,fr_nbcc ,
5303 2 length ,lenr ,lens ,element%PON%FSKY ,element%PON%FSKY ,
5304 3 element%PON%FSKYM ,
ale%SUB%IFSUBM ,sizi ,leni ,element%PON%IADSDP ,
5305 4 element%PON%IADRCP ,element%PON%ISENDP ,element%PON%IRECVP ,ffsky ,procne_pxfem,
5306 5 fr_nbcc1 ,iadsdp_pxfem,iadrcp_pxfem ,isendp_pxfem,
5307 6 irecvp_pxfem,lenr1 ,lens1 ,iadsdp_crk,iadrcp_crk ,
5308 7 isendp_crk ,irecvp_crk,element%PON%FSKYD ,crknodiad ,
crksky ,
5309 8 forneqsky ,nfacnit ,lenc , fani ,h3d_data ,
5310 9 fani(1,nfnca+1),fani(1,nftca+1) ,glob_therm)
5313 IF (imon>0)
CALL stoptime(timers,timer_exfor)
5321 IF (imon>0)
CALL startime(timers,timer_asm)
5328 IF(iparit==1)
ALLOCATE( fsky_l(nisky) )
5332 itsk = omp_get_thread_num()
5334 nodftsk = 1+itsk*numnod/ nthread
5335 nodltsk = (itsk+1)*numnod/nthread
5336 partftsk = 1+itsk*npsav*npart/nthread
5337 partltsk = (itsk+1)*npsav*npart/nthread
5338 greftsk = 1+itsk*npsav*ngpe/nthread
5339 greltsk = (itsk+1)*npsav*ngpe/nthread
5340 nodftsk_2 = nodft_asspar(itsk+1)
5341 nodltsk_2 = nodlt_asspar(itsk+1)
5349 2 element%PON%FSKY ,element%PON%FSKY ,element%PON%ADSKY ,element%PON%FSKYM ,
5350 3 msnf ,interfaces%PON%ISKY ,interfaces%PON%FSKYI ,fthe ,
5351 4 fthesky,ftheskyi,nodftsk,nodltsk ,interfaces%PON%ADSKYI,
5352 5 partsav,partftsk ,partltsk ,itsk ,greftsk ,
5353 6 greltsk ,gresav ,aflow ,ffsky ,msf ,
5354 7 adsky_pxfem, inod_pxfem ,element%PON%FSKYD ,
5355 8 dmsph ,condn ,condnsky ,condnskyi,
5357 a stifnd ,forneqs ,forneqsky ,nfacnit,nodftsk_2,
5358 b nodltsk_2,fsky_l,glob_therm)
5362 IF (nloc_dmg%IMOD>0)
THEN
5363 nodft_nl = 1+ itsk*nloc_dmg%NNOD/nthread
5364 nodlt_nl = (itsk+1)*nloc_dmg%NNOD/nthread
5365 CALL asspar_sub(nloc_dmg%FNL(:,1) ,nloc_dmg%FSKY,nloc_dmg%ADDCNE,nodft_nl ,
5366 . nodlt_nl ,nloc_dmg%POSI ,nloc_dmg%NNOD, nloc_dmg%L_NLOC)
5368 IF (nodadt > 0)
THEN
5369 CALL asspar_sub(nloc_dmg%STIFNL(:,1),nloc_dmg%STSKY,nloc_dmg%ADDCNE,nodft_nl,
5370 . nodlt_nl,nloc_dmg%POSI,nloc_dmg%NNOD,nloc_dmg%L_NLOC)
5371 CALL nlocal_dtnoda(nodft_nl,nodlt_nl,nloc_dmg,dtnod_nlocal,dt2t)
5377 IF(icrack3d > 0)
THEN
5382 . adsky_crk,inod_crk ,
crksky ,nodftsk ,nodltsk ,
5383 . nodenr ,nodlevxf ,nodes%ITAB )
5385 ELSEIF(iparit==2)
THEN
5390 CALL ancmsg(msgid=165,anmode=aninfo)
5397 2 nodes%A ,nodes%AR ,itsk ,nodftsk ,
5398 3 nodltsk ,nodes%STIFN ,nodes%STIFR ,nodes%ITAB ,element%PON%FSKY ,
5399 4 element%PON%FSKY ,interfaces%PON%ISKY ,element%PON%ADSKY ,interfaces%PON%FSKYI ,
5400 5 wa ,partftsk ,partltsk ,partsav ,nodes%MS ,
5401 6 fthe ,fthesky ,ftheskyi ,greftsk ,greltsk ,
5402 7 gresav ,glob_therm%ITHERM_FE ,glob_therm%INTHEAT )
5404 ELSEIF(iparit==3)
THEN
5409 1 nthread ,numnod ,nodftsk ,nodltsk ,iroddl ,
5410 2 npart ,partftsk ,partltsk ,nodes%A ,nodes%AR ,
5411 3 partsav ,nodes%STIFN ,nodes%STIFR ,nodes%A(1,n1) ,nodes%AR(1,n1) ,
5412 4 nodes%STIFN(n1) ,nodes%STIFR(n1) ,nodes%VISCN ,nodes%VISCN(n1),greftsk ,
5413 5 greltsk ,gresav ,ngpe ,nthpart)
5417 IF(kdtint/=0)
CALL modsti(nodftsk,nodltsk,nodes%STIFN,nodes%VISCN,nodes%MS)
5421 IF(iparit==1)
DEALLOCATE( fsky_l )
5422 IF (imon>0)
CALL stoptime(timers,timer_asm)
5430 IF( debug(macro_debug_nan)/=0 )
CALL check_nan_acc(ncycle,nodes)
5432 IF (debug(macro_debug_acc)==1.AND.(nloc_dmg%IMOD>0))
THEN
5438 IF ( ncycle>=debstart .AND.
5439 . mod(ncycle-debstart,rstfreq)==0 )
THEN
5441 . nloc_dmg%POSI ,nloc_dmg,siz,nodes%NODGLOB,nodes%ITAB )
5456 itsk = omp_get_thread_num()
5457 nodftsk = 1+itsk*numnod/ nthread
5458 nodltsk = (itsk+1)*numnod/nthread
5459 greftsk = 1+itsk*ns10e/ nthread
5460 greltsk = (itsk+1)*ns10e/nthread
5463 2
itagnd ,nodftsk,nodltsk,greftsk,greltsk,
5464 3 itsk ,nodes%ITAB ,nodes%STIFN, stifnd)
5468 IF(sol2sph_flag/=0)
THEN
5474 itsk = omp_get_thread_num()
5476 nodltsk = (itsk+1)*numnod/nthread
5477 DO i=nodftsk,nodltsk
5478 IF(nodes%MS(i)/=zero)
THEN
5479 IF(nodes%MS(i)-dmsph(i) < em03*nodes%MS(i))
THEN
5482 nodes%MS(i)=
max(zero,nodes%MS(i)-dmsph(i))
5494 IF (int24use == 1)
THEN
5495 IF (imon>0)
CALL startime(timers,timer_contfor)
5496 CALL spmd_exch_i24(ipari ,interfaces%INTBUF_TAB,nodes%ITAB ,
5497 * nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,intlist ,nbintc,
5498 * iad_i24 ,fr_i24 ,sfr_i24,i24maxnsne,2,
5500 IF (imon>0)
CALL stoptime(timers,timer_contfor)
5506 IF(nbint20>0.AND.nspmd>1)
THEN
5508 lenr = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
5510 1 interfaces%INTBUF_TAB,ipari,nodes%BOUNDARY_ADD,nodes%BOUNDARY,
5511 2 length ,nbint20,lenr ,intlist ,nbintc )
5516 IF(kcontact/=0.AND.nspmd>1)
THEN
5518 lenr = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
5520 + ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY,length,lenr)
5525 IF(ialelag > 0.AND.nspmd>1)
THEN
5527 lenr = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
5528 CALL spmd_exch_icont(ifoam,nodes%BOUNDARY_ADD ,nodes%BOUNDARY,length,lenr)
5534 CALL data_recv_madcpl(nodes%X,nodes%A,nodes%V,nodes%MS,fani,madclnod,madclfrecv,h3d_data)
5538 IF (vipercoupling)
THEN
5540 CALL radiossviper_receiveaccelerations(numnod,nodes%A,noda_fext,viper%ITABM1)
5544 IF(ale%SUB%IALESUB==2 .AND. ale%SUB%IFSUB==2)
GOTO 23
5551 1 geo ,nodpor ,nodes%MS,nodes%X ,nodes%V ,
5552 2 w ,nodes%A ,nodes%AR,skews%SKEW,nodes%WEIGHT,
5558 IF (debug(macro_debug_acc)==1)
THEN
5559 IF (ncycle>=debstart .AND.
5560 . mod(ncycle-debstart,rstfreq)==0)
THEN
5568 CALL spmd_collect(nodes%A,nodes%ITAB,nodes%WEIGHT,nodes%NODGLOB,siz)
5570 CALL collect(nodes%A,nodes%ITAB,nodes%WEIGHT,nodes%NODGLOB)
5581 lenr = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
5583 CALL spmd_exch_wave(fr_wave,nodes%BOUNDARY_ADD ,nodes%BOUNDARY,length,lenr)
5591 itsk = omp_get_thread_num()
5592 nodftsk = 1+itsk*numnod/ nthread
5593 nodltsk = (itsk+1)*numnod/nthread
5594 DO i=nodftsk,nodltsk
5595 fr_wave(i)=abs(fr_wave(i))
5607 IF (failwave%WAVE_MOD > 0)
THEN
5614 IF (n2d/=0.AND.idel7==2)
THEN
5615 IF (imon>0)
CALL startime(timers,6)
5616 CALL chkstifn(ipari,nodes%MS,interfaces%INTBUF_TAB)
5617 IF (imon>0)
CALL stoptime(timers,6)
5623 ELSEIF(idel7ng>=1.OR.pdel>0)
THEN
5626 IF (nspmd>1.AND.(idel7ng>=1.OR.pdel>0))
THEN
5628 IF (imonm > 0 )
CALL startime(timers,76)
5630 IF (imonm > 0 )
CALL stoptime(timers,76)
5631 idel7nok =
min(1,idel7nok)
5633 idel7nok_sav = idel7nok
5634 IF (r2r_siu==1.AND.idel7ng>=1)
THEN
5636 idel7nok = idel7nok+idel7nok_r2r
5637 idel7nok =
min(1,idel7nok)
5640 IF ((idel7ng>=1.AND.idel7nok==1).OR.(pdel>0.AND.idel7nok==1))
THEN
5641 l1 = 1+nixs*numels + nsvois*nixs
5644 IF((int24use==1.OR.ninter25/=0).AND.(idel7ng>=1.AND.idel7nok==1))
THEN
5645 indseglo(2:ninter+1)=0
5653 IF (imonm > 0 )
CALL startime(timers,29)
5655 check_neigh_flag_res = 0
5660!$omp+ private(itsk,nodftsk,nodltsk,numntsk,ndtsk,ipmtsk,igmtsk)
5664 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk ,
5665 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
5667 omp_address = 1 + itsk*numnod
5669 IF ((idel7ng>=1.AND.idel7nok==1).OR.(pdel>0.AND.idel7nok==1))
THEN
5671 1 geo ,ixs ,ixs(l1) ,ixs(l1) ,ixs(l3) ,ixq ,
5672 2 element%SHELL%IXC ,ixt ,ixp ,ixr ,ixtg ,
5673 3 nodes%deleted_node,nodftsk ,nodltsk ,iparg ,elbuf ,itsk ,
5674 4 ixtg1 ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,nodes%ITAB ,
5675 5 addcnel ,cnel ,kxsp ,elbuf_tab ,tagel ,iexlnk ,
5676 6 igrnod ,dd_r2r ,dd_r2r_elem,sdd_r2r_elem,idel7nok_sav ,
5678 8 shoot_struct,shoot_struct%GLOBAL_NB_ELEM_OFF)
5681 CALL check_nodal_state( itsk,nodes%deleted_node,newfront,interfaces%INTBUF_TAB,shoot_struct%SIZE_SEC_NODE,
5682 . shoot_struct%SHIFT_S_NODE,shoot_struct%INTER_SEC_NODE,shoot_struct%SEC_NODE_ID)
5691 . ngroup,nparg,igroups,iparg )
5693 1 element%SHELL%IXC,ixtg,ixq,ixt,ixp,
5694 2 ixr,geo,ngroup,igroups,iparg )
5700 ! exchange of surfaces(ie. 4 nodes) to deactivate and deactivation
5704 . interfaces%INTBUF_TAB,newfront,
5707 . addcnel,cnel,nodes%work_array_node(omp_address),tagel )
5717 . shoot_struct%SHIFT_INTERFACE,interfaces%INTBUF_TAB,
5720 . addcnel,cnel,nodes%work_array_node(omp_address),tagel,shoot_struct )
5724 CALL check_edge_state( itsk,shoot_struct%SAVE_M_EDGE_NB,shoot_struct%SAVE_S_EDGE_NB,
5725 . shoot_struct%SAVE_M_EDGE,shoot_struct%SAVE_S_EDGE,
5726 . shoot_struct%SHIFT_INTERFACE,interfaces%INTBUF_TAB,newfront,ipari,geo,
5727 . ixs,element%SHELL%IXC,ixt,ixp,ixr,ixtg,ixs(l1),
5728 . addcnel,cnel,nodes%work_array_node(omp_address),tagel,shoot_struct )
5734 IF(int24use>0.OR.ninter25/=0)
THEN
5736 . shoot_struct%SHIFT_INTERFACE,interfaces%INTBUF_TAB,
5737 . ipari,nodes%BOUNDARY_ADD,shoot_struct )
5739 IF(ninter25/=0.AND.interfaces%PARAMETERS%INT25_EROSION_SOLID > 0)
THEN
5741 check_neigh_flag = shoot_struct%NUMBER_NEW_SURF + shoot_struct%NUMBER_REMOTE_SURF
5742 IF(need_comm_int25_solid_erosion)
THEN
5743 check_neigh_flag = shoot_struct%NUMBER_NEW_SURF + shoot_struct%NUMBER_REMOTE_SURF
5744 CALL spmd_allreduce(check_neigh_flag,check_neigh_flag_res,1,spmd_max,comm_int25_solid_erosion)
5745 ELSEIF(nspmd==1)
THEN
5746 check_neigh_flag_res = check_neigh_flag
5748 IF(check_neigh_flag_res > 0 )
THEN
5749 CALL get_neighbour_surface( ispmd,nspmd,ninter25,npari,ninter,
5750 . nbintc,nixs,nixc,nixtg,numnod,
5751 . numels,numelc,numeltg,s_elem_state,
5752 . nbddedgt,nbddedg_max,
5753 . elem_state,ipari,intlist,nodes,
5754 . newfront,ixs,element%SHELL%IXC,ixtg,
5755 . nodes%BOUNDARY_ADD,nodes%X,
5756 . interfaces%INTBUF_TAB,interfaces%SPMD_ARRAYS,shoot_struct
5765 IF (idel7ng>=1.AND.idel7nok==1)
THEN
5767 1 ipari ,geo ,ixs ,ixq ,element%SHELL%IXC ,ixt
5768 2 ixp ,ixr ,ixtg ,nodes%deleted_node,iparg ,itsk ,
5769 3 newfront,nodes%work_array_node(omp_address) ,nodes%MS ,nodes%IN ,anin(ndma
5770 4 nodes%ITABM1 ,addcnel , cnel ,indidel ,nindex1 ,nindex2 ,
5771 5 nindex3 ,nindex4 ,tagel ,int24use ,ibufseglo ,indseglo,
5772 6 ibufidel ,interfaces%INTBUF_TAB,nodes%BOUNDARY_ADD)
5776 IF (pdel>0.AND.idel7nok==1)
THEN
5778 1 ibcl ,ixs ,ixq ,element%SHELL%IXC ,ixt ,ixp ,
5779 2 ixr ,ixtg ,nodes%deleted_node,itsk ,nodes%work_array_node(omp_address),nodes%ITAB ,
5780 3 nodes ,addcnel ,cnel ,tagel ,iparg
5781 4 ibufpdel,nindexpdel,nindexp ,npresload,loadp_tagdel ,
5782 5 iloadp ,lloadp ,nodes%BOUNDARY_ADD)
5787 IF (imonm > 0 )
CALL stoptime(timers,29)
5855 IF (imonm > 0 )
CALL startime(timers,7
5857 IF (imonm > 0 )
CALL stoptime(timers,76)
5886 IF (idel7nok > 0 )
THEN
5889 * mad_tag_sol, mad_tag_sh,mad_tag_tg,
5895 madymo_del_global = madymo_del
5902 IF (imon>0)
CALL stoptime(timers,timer_contfor)
5912 1 nstrf ,nodes%V,nodes%VR,
5913 2 nodes%A ,nodes%AR ,secbuf,nodes%MS,nodes%IN,
5914 3 nodes%WEIGHT,iad_cut,fr_cut, output%TH%WFEXT)
5918 IF (ncluster > 0)
THEN
5919 CALL clusterf(cluster ,elbuf_tab,nodes%X ,nodes%A ,nodes%AR ,
5920 . skews%SKEW ,ixs ,iparg ,fcluster,mcluster
5928 IF (nslipring + nretractor + n_anchor_remote > 0)
THEN
5935 IF(ninter /= 0.and.iale+ieuler /= 0.and.
5936 . int18kine == -1)
THEN
5943 itsk = omp_get_thread_num()
5948 CALL i18main_kine_1(ipari,interfaces%INTBUF_TAB,nodes%X ,nodes%V ,
5949 2 nodes%A ,nodes%ISKEW ,skews%SKEW ,nodes%ICODT ,wa ,
5950 3 nodes%MS ,nodes%ITAB ,itsk+1 ,kinet ,nodes%STIFN ,
5951 4 mtf ,cand_sav ,int18add ,nodes%BOUNDARY_ADD,nodes%BOUNDARY ,
5952 5 tagpene ,h3d_data ,multi_fvm,ale_connectivity%NE_CONNECT,xcell,xcell_remote)
5966 IF (imonm > 0)
CALL startime(timers,28)
5970 1 ipari ,nodes%X ,nodes%V ,nodes%A ,
5971 2 nodes%VR ,nodes%AR ,wa ,nodes%MS ,nodes%IN ,nodes%WEIGHT ,
5972 3 nodes%STIFN ,nodes%STIFR ,k ,nodes%ITAB ,fr_i2m ,iad_i2m ,
5973 4 addcni2,procni2,iadi2 ,i2msch ,dmas
5974 5 skews%SKEW ,i2size ,fr_nbcci2,anin(ndin+1) ,igeo,bufgeo ,
5975 6 fsav ,npc ,tf ,fani(1,nft2+1) ,nodes%BOUNDARY_ADD,nodes%BOUNDARY,
5976 7 nativ_sms,dmint2,anin(ndama2+1),nb_fri2m ,fr_loci2m,
5977 8 dt2t ,neltst ,ityptst ,interfaces%INTBUF_TAB ,nodes%TEMP ,nodes%MCP ,
5978 9 fthe ,condn ,glob_therm,
5979 a h3d_data,t2fac_sms,fani(1,nfnca2+1),npcont2)
5981 IF (imonm > 0)
CALL stoptime(timers,28)
5983 CALL stoptime(timers,timer_contsort)
5987 IF((idtmins/=0.OR.idtmins_int/=0).AND.ncycle==0)ismsch=1
6002 itsk = omp_get_thread_num()
6003 nodftsk = 1+itsk*numnod/ nthread
6004 nodltsk = (itsk+1)*numnod/nthread
6005 greftsk = 1+itsk*ns10e/ nthread
6006 greltsk = (itsk+1)*ns10e/nthread
6007 CALL s10cndf2(icnds10,nodes%WEIGHT ,iad_cndm,fr_cndm,fr_nbcccnd,
6008 1 addcncnd,procncnd,nodes%A ,iadcnd,fskycnd,
6009 2 itagnd ,nodftsk,nodltsk,greftsk,greltsk,
6010 3 itsk ,nodes%ITAB ,nodes%STIFN , stifnd)
6017 IF (ncycle==0.OR.mcheck/=0)
6018 1
CALL cnd_dmasi2(icnds10,nkend,imap2nd,masi2nd0,nodes%MS ,nodes%WEIGHT)
6021 IF(intplyxfem > 0)
THEN
6023 1 ipari ,interfaces%INTBUF_TAB ,wagap,nodes%BOUNDARY_ADD,nodes%BOUNDARY)
6032 IF (imon>0)
CALL startime(timers,timer_kin)
6033 CALL rbe2t1(irbe2 ,lrbe2 ,nodes%X ,nodes%A ,nodes%AR ,
6034 1 nodes%MS ,nodes%IN ,skews%SKEW ,nodes%WEIGHT ,iad_rbe2,
6035 2 fr_rbe2m,nmrbe2,nodes%STIFN ,nodes%STIFR ,r2size )
6036 IF (imon>0)
CALL stoptime(timers,timer_kin)
6044 IF (imon>0)
CALL startime(timers,timer_kin
6045 IF (imonm > 0)
CALL startime(timers,45)
6047 CALL rbe3t1(rbe3 ,nodes ,skews%SKEW,
6048 1 dmas ,anin(ndma+1) ,diner,
6049 2 anin(ndin+1) ,h3d_data , dt1,
6052 IF (imonm > 0)
CALL stoptime(timers,45)
6053 IF (imon>0)
CALL stoptime(timers,timer_kin)
6059 IF(tt==zero.AND.iale+ieuler+glob_therm%ITHERM==0)
THEN
6067 itsk = omp_get_thread_num()
6068 nodftsk = 1+itsk*numnod/ nthread
6069 nodltsk = (itsk+1)*numnod/nthread
6070 CALL chkmsin(nodftsk,nodltsk,nodes%ITAB,nodes%MS,nodes%IN,negmas)
6073 IF(negmas/=0)
CALL arret(2)
6082 IF(nintstamp/=0)
THEN
6083 CALL intstamp_ass(intstamp,nodes%MS ,nodes%IN ,nodes%A ,nodes%AR ,
6084 . nodes%STIFN ,nodes%STIFR ,nodes%WEIGHT, output%TH%WFEXT)
6091 IF (imon>0)
CALL startime(timers,timer_kin)
6092 IF (imonm > 0)
CALL startime(timers,40)
6099 1 iparg,ipari ,nodes%MS ,nodes%IN ,
6100 2 ixs ,ixq ,element%SHELL%IXC ,ixt ,ixp ,
6101 3 ixr ,skews%SKEW ,nodes%ITAB ,nodes%ITABM1,iskwn,
6102 4 npby ,wa ,lpby ,element%PON%FSKY ,nsensor,
6103 5 rby ,nodes%X ,nodes%V ,nodes%VR ,ixtg ,
6104 6 igrv ,lgrav,sensors%SENSOR_TAB,nodes%A ,nodes%AR ,
6105 7 fsav ,nodes%STIFN ,nodes%STIFR,fani(1,1+nfoa),nodes%WEIGHT,
6106 8 dmas ,diner ,bufsf,fr_rby2,partsav ,
6107 9 ipart ,elbuf_tab,icfield,lcfield,nodes%TAG_S_RBY)
6115 1 rby ,nodes%A ,nodes%AR ,nodes%X ,nodes%VR ,
6116 2 fsav ,nodes%IN ,nodes%STIFN ,nodes%STIFR ,fani(1,1+nfoa) ,
6117 3 lpby ,npby ,nodes%WEIGHT ,nodes%MS ,nodes%V ,
6118 4 igrsurf ,bufsf ,nodes%ICODR ,nodes%ISKEW ,skews%SKEW ,
6119 5 kindrby ,iad_rby ,fr_rby6,rby6 ,irbkin_l ,
6120 6 nrbykin_l ,nativ_sms ,sensors%SFSAV ,sensors%FSAV ,sensors%STABSEN,
6121 7 sensors%TABSENSOR,nodreac ,fthreac ,cptreac ,dampr,
6122 8 sdamp ,damp ,ndamp_vrel ,id_damp_vrel ,igrnod ,
6123 9 nodes%TAG_S_RBY ,iparit ,output%TH%WFEXT ,ndamp_vrel_rbyg ,size_rby6_c ,
6127 IF (imon>0)
CALL stoptime(timers,timer_kin)
6128 IF (imonm > 0)
CALL stoptime(timers,40)
6138 CALL fxbyfor(fxbipm, fxbrpm, fxbnod, fxbmod, fxbglm,
6139 . fxbcpm, fxbcps, fxblm , fxbfls, fxbdls,
6140 . fxbdep, fxbvit, fxbacc, nodes%A, nodes%AR,
6141 . nodes%X, fxbmvn, fxbmcd, fxbse, fxbsv,
6142 . fxbelm, fxbsig, elbuf, partsav, elbuf_tab,
6143 . fsav, fxbfp, fxbefw, fxbfc, nodes%D,
6144 . dt2t, ityptst, neltst, fxbgrvi, fxbgrvr,
6145 . igrv, npc, tf , fxbgrp, fxbgrw ,
6146 . iparg , nsensor,sensors%SENSOR_TAB,nodes%BOUNDARY_ADD, nodes%BOUNDARY,
6154 IF (imon>0)
CALL startime(timers,37)
6155 CALL admfor0(element%SHELL%IXC, ipart(k3), ixtg, ipart(k8), ipart,
6156 1 nodes%A , nodes%STIFN , nodes%AR, nodes%STIFR ,nodes%X ,
6157 2 sh4tree,sh3tree,stcnd, fthe,condn,
6158 . glob_therm%NODADT_THERM,glob_therm%ITHERM_FE)
6159 IF (imon>0)
CALL stoptime(timers,37)
6164 IF (irigid_mat > 0)
THEN
6172 1 nodes%A ,nodes%AR ,nodes%X ,nodes%VR ,nodes%IN
6173 2 nodes%STIFN ,nodes%STIFR ,irbym ,lnrbym ,rbym ,
6174 3 icodrbym ,nodes%WEIGHT ,nodes%MS ,nodes%V ,fr_rbym ,
6175 4 iad_rbym ,arbym ,vrbym ,arrbym ,vrrbym ,
6185 IF(nrwall>0)
CALL rgwalf(nodes%A ,rwbuf ,nprw ,nodes%MS )
6190 IF( idtmins == 1 .AND.
6191 . (ismsch/=0.OR.ncycle
THEN
6194 ELSEIF(idtmins == 2.OR.idtmins_int/=0)
THEN
6199 IF (imon>0)
CALL startime(timers,39)
6200 IF (imon>0)
CALL startime(timers,75)
6205 l1 = 1+nixs*numels + nsvois
6213 IF (
ALLOCATED(mskyi_fi_sms))
DEALLOCATE(mskyi_fi_sms)
6214 IF (
ALLOCATED(list_sms))
DEALLOCATE(list_sms)
6215 IF (
ALLOCATED(list_rms))
DEALLOCATE(list_rms)
6216 IF (
ALLOCATED(list_rms))
DEALLOCATE(list_rms)
6217 IF (
ALLOCATED(sms_vfi))
DEALLOCATE(sms_vfi)
6218 CALL my_alloc(mskyi_fi_sms,fr_rms(nspmd+1))
6219 CALL my_alloc(list_sms,fr_sms(nspmd+1))
6220 CALL my_alloc(list_rms,fr_rms(nspmd+1))
6221 CALL my_alloc( sms_vfi,3,fr_rms(nspmd+1)+fr_sms(nspmd+1) )
6223 IF (
ALLOCATED(mw6))
DEALLOCATE(mw6)
6224 if (iparit /=0)
then
6226 CALL my_alloc(mw6,6,sz_mw6)
6229 CALL my_alloc(mw6,6,1)
6232 itsk = omp_get_thread_num()
6233 nodftsk = 1+itsk*numnod/ nthread
6234 nodltsk = (itsk+1)*numnod/nthread
6237 1 itsk ,nodftsk ,nodltsk ,
6238 2 element%SHELL%IXC ,iparg ,ixs ,ixt ,ixp ,
6239 3 ixr ,ixtg ,tagnod_sms,nodes%MS ,nodes%MS0 ,
6240 4 indx1_sms,indx2_sms,jad_sms
6241 . kad_sms ,kdi_sms ,ltk_sms ,pk_sms ,nodii_sms ,
6242 5 jadc_sms ,jads_sms ,jadt_sms ,jadp_sms ,jadr_sms ,
6243 6 jadtg_sms,diag_sms ,tagprt_sms,tagrel_sms,
6244 7 ipart(i15a),ipart(i15b),ipart(i15c),ipart(i15d),ipart(i15e),
6245 8 ipart(i15f),ipart(i15g),ipart(i15h),ipart(i15i),nodes%BOUNDARY_ADD ,
6246 9 nodes%BOUNDARY ,npby ,lpby ,tagslv_rby_sms ,lad_sms ,
6247 a jsm_sms ,dmeltg ,dmelc ,mskyi_sms,
6248 b iskyi_sms,jadi_sms,jdii_sms ,lti_sms ,nodxi_sms
6250 d fr_sms ,fr_rms ,elbuf ,ipari ,interfaces%INTBUF_TAB,
6251 e kinet ,tagslv_i21_sms
6252 f ixs(l1),jads10_sms,ilink ,llink ,nnlink
6253 g lnlink ,tag_lnk_sms,ljoint ,iadcj ,fr_cj ,
6255 i nprw ,lprw ,fr_wall ,nrwl_sms ,rby ,
6256 j nodes%X ,nodes%A ,nodes%AR ,nodes%IN ,nodes%V ,
6257 k nodes%VR ,irbe2 ,lrbe2 ,rbe3%IRBE3 ,rbe3%LRBE3 ,
6258 l rbe3%mpi%IAD_RBE3 ,rbe3%mpi%FR_RBE3 ,nativ_sms,t2main_sms,t2fac_sms
6259 m mskyi_fi_sms, list_sms,list_rms,sz_mw6,mw6)
6263 ptr_sms => nodxi_sms
6266 IF (imon>0)
CALL stoptime(timers,39)
6276 IF (irad2r /= 0)
THEN
6277 IF (nspmd>1)
CALL spmd_barrier()
6279 1 iexlnk ,igrnod ,nodes%D ,nodes%V ,nodes%VR ,
6280 2 nodes%A ,nodes%AR ,nodes%MS ,nodes%IN ,nodes%STIFN ,nodes%STIFR ,
6282 4 nodes%XDP ,nodes%X ,dd_r2r_elem, sdd_r2r_elem,off_sph_r2r,
6283 5 numsph_glo_r2r,nloc_dmg)
6285 IF (flg_sphinout_r2r/=0)
THEN
6287 IF (off_sph_r2r(i)==2)
THEN
6307 IF(nintstamp/=0)
THEN
6308 CALL intstamp_dt(intstamp,ipari,neltst,ityptst,dt2t,
6309 . ptr_sms ,diag_sms,nodes%MS ,nodes%V ,nodes%STIFN,
6315 IF (flg_damp_funct==1)
THEN
6316 CALL damping_funct_ini(dampr, nrdamp, ndamp, tt
6318 IF (flg_dtnodamp==1)
THEN
6320 IF (idamp_rdof==ndamp)
6321 +
CALL dtnodamp(nodes%ITAB ,nodes%MS ,nodes%IN ,nodes%STIFN ,nodes%STIFR ,dt2t ,
6322 1 nodes%WEIGHT ,igrnod
6323 2 idamp_rdof_tab,icontact,element%SHELL%IXC,nodes%X)
6324 IF (ndamp>0 .OR. istat==3)
6325 +
CALL dtnodarayl(nodes%MS ,nodes%IN ,nodes%STIFN ,nodes%STIFR ,dt2t ,
6330 IF (i_exch_flg_raz==0)
THEN
6332 flg_kj2_raz = flg_kj2
6337 IF (flg_kj2==1)
THEN
6340 ALLOCATE(stk_sn(numnod),stk_sr(numnod))
6341 stk_sn(1:numnod)=nodes%STIFN(1:numnod)
6342 stk_sr(1:numnod)=nodes%STIFR(1:numnod)
6346 1 ipart(k6),igeo,geo,npby,iparg,elbuf_tab,
6347 2 dt2t,neltst,ityptst,nrbody,nodes%ITAB)
6353 IF ((ncycle==0).AND.(idt_percent_addmass > 0).AND.(idtmin(11)==3.OR.idtmin(11)==8))
THEN
6355 . percent_addmass,percent_addmass_old,mass0_start,nodes%WEIGHT_MD,igrnod,
6357 dtmin1(11) =
max(dtmin1(11),target_dt)
6358 ELSEIF ((idt_percent_addmass == 2).AND.(idtmin(11) == 8))
THEN
6360 IF (idt_percent_addmass == 2)
THEN
6362 dtmin1(11) = dt_stop_percent_addmass
6369 IF(nspmd > 1 .AND. nvolu > 0 .AND. nfvbag0 > 0)
THEN
6374 CALL mpi_min_real_end(dt2r,min_tab,4,mpi_buf)
6384 dtmin1_save = dtmin1(11)
6385 IF(min_tab(2) == 52) dtmin1(11) =
min(dtmin1_save,dt2r,1.1*dt2old)
6389 dtmin1_save = dtmin1(11)
6390 IF(itypts == 52) dtmin1(11) =
min(dtmin1_save,dt2,1.1*dt2old)
6399 IF (glob_therm%IDT_THERM == 1)
THEN
6400 dt2 = glob_therm%DT_THERM
6405 IF((anim_n(18) /= 0 .OR. h3d_data%N_SCAL_STIFR /= 0) .AND. iroddl /= 0)
6406 . stifr_tmp(1:numnod)=nodes%STIFR(1:numnod)
6407 IF(anim_n(19) /= 0 .OR. h3d_data%N_SCAL_STIFN /= 0)
6408 . stifn_tmp(1:numnod)=nodes%STIFN(1:numnod)
6423 itsk = omp_get_thread_num()
6424 nodftsk = 1+itsk*numnod/ nthread
6425 nodltsk = (itsk+1)*numnod/nthread
6432 stcnd(nodftsk:nodltsk)=nodes%STIFN(nodftsk:nodltsk)
6433 strcnd(nodftsk:nodltsk)=nodes%STIFR(nodftsk:nodltsk)
6439 1 nodftsk,nodltsk ,neltstt,ityptstt ,nodes%ITAB ,
6440 2 nodes%MS ,nodes%IN ,nodes%STIFN ,nodes%STIFR ,dt2tt ,
6441 3 dmast,dinert,anin,anin(ndma+1),imsch ,
6442 4 nodes%WEIGHT,nodes%A ,nodes%AR ,igrnod
6443 5 anin(ndin+1),rbym ,arbym ,arrbym,nodes%WEIGHT_MD,
6444 6 nodes%MCP ,mcp_off,condn ,ale_connectivity%NALE ,h3d_data )
6445 ELSEIF(idtmins/=0)
THEN
6447 1 nodftsk,nodltsk ,neltstt,ityptstt ,nodes%ITAB ,
6448 2 nodes%MS ,nodes%IN ,nodes%STIFN ,nodes%STIFR ,dt2tt ,
6449 3 dmast,dinert,anin,anin(ndma+1),imsch ,
6451 5 anin(ndin+1),rbym ,arbym ,arrbym ,ismsch ,
6456#include "lockon.inc"
6458 diner = diner + dinert
6459 IF (glob_therm%IDT_THERM
THEN
6464 trest=
max(tstop-tt,zero)
6466 dtrest = trest*(one+em10)
6468 dt2t =
min(dt2tt,dtrest)
6479#include "lockoff.inc"
6484 IF ((flg_kj2_raz==1).AND.(i7kglo==0).AND.(idtmins==0).AND.(nodadt==0))
THEN
6485 nodes%STIFN(1:numnod) = em20
6486 IF (iroddl > 0) nodes%STIFR(1:numnod) = em20
6489 dtmin1(11) = dtmin1_save
6495 IF (glob_therm%IDT_THERM == 1)
THEN
6515 IF(ale%SUB%IALESUB==2 .AND.ale%SUB%IFSUB==2)
THEN
6518 IF (ispmd/=0)
CALL spmd_chkw(iwiout,iout)
6520 . tstop,iwiout,mstop, ismsch,
6521 . int24use,nbintc,intlist,ipari,interfaces%INTBUF_TAB)
6524 lenr = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
6525 CALL spmd_exch_icodt(nodes%ICODT,nodes%BOUNDARY_ADD,nodes%BOUNDARY,length,lenr)
6536!$omp+ private(partftsk,partltsk,nwaftsk,dt2tt,neltstt,ityptstt)
6539 CALL smp_init(itsk,nodftsk,nodltsk,numntsk
6544 1 ale_connectivity%NALE,nodes%V ,dsave ,nodes%ICODT ,nodes%ISKEW,
6545 2 skews%SKEW ,asave ,nodes%A ,nodes%D ,neltstt,
6546 3 ityptstt ,itsk ,nodftsk ,nodltsk ,dt2save,
6547 4 dt2tt ,neltsa ,ityptsa ,nelts ,
6548 5 nodes%WEIGHT ,element%PON%FSKY ,element%PON%FSKY )
6549#include "lockon.inc"
6555#include "lockoff.inc"
6565 IF(nspmd>1.AND.iwiout>0)
THEN
6571 IF (imon>0)
CALL startime(timers,6)
6576 IF (imonm > 0)
CALL startime(timers,50)
6578 IF (imonm > 0)
CALL stoptime(timers,50)
6586 IF (imonm > 0)
CALL startime(timers,50)
6587 IF(nspmd>1)
CALL spmd_glob_minv(t_monvol,dt2,itypts,nelts,volmon, fr_mv)
6588 IF(python%NB_FUNCTS > 0)
CALL python_monvol(t_monvol)
6592 IF(ispmd == 0)
CALL mvoludt(monvol,volmon)
6593 IF (imonm > 0)
CALL stoptime(timers,50)
6596 IF (imonm > 0)
CALL startime(timers,52)
6599 dampa3 = two*betate/(one + betate * dt12)
6600 IF (dt2>=ep06) dampa3=zero
6607 bb = (
min(dampb,dt1,dt2) + half*(dampa+dampa3)*dt2*dt2)
6609 IF (dt2>=ep06) bb = zero
6610 dt2 = sqrt(bb*bb + dt2*dt2) - bb
6612 bb = one - dampb - dampb
6615 ELSEIF(ndamp>0)
THEN
6621 d_tstart = dampr(17,i)
6622 d_tstop = dampr(18,i)
6624 IF ((tt>=d_tstart).AND.(tt<=d_tstop).AND.(dt2 < ep06))
6625 . bb=
max(bb,(
min(dampb,dt1,dt2)+half*(dampa+dampa3)*dt2*dt2))
6629 IF (flg_dtnodamp==1)
GOTO 600
6631 dampa =
max(dampr(3,i),dampr(5,i),dampr(7,i
6632 dampa =
max(dampa,dampr(9,i),dampr(11,i),dampr(13,i))
6633 dampb =
max(dampr(4,i),dampr(6,i),dampr(8,i))
6634 dampb =
max(dampb,dampr(10,i),dampr(12,i),dampr
6636 fl_vrel = nint(dampr(21,i))
6637 IF (fl_vrel==2)
THEN
6638 call damping_vref_compute_dampa(i,ndamp,nrdamp,dampr,dt1,tt,damp_a)
6639 dampa =
max(damp_a(1),damp_a(2),damp_a(3))
6643 d_tstart = dampr(17,i)
6644 d_tstop = dampr(18,i)
6646 IF ((tt>=d_tstart).AND.(tt<=d_tstop).AND.(dt2 < ep06))
THEN
6647 dampt =
min(dt1,dt2)*factb
6648 bb=
max(bb,(
min(dampb,dampt)+half*(dampa+dampa3)*dt2*dt2))
6653 dt2 = sqrt(bb*bb + dt2*dt2) - bb
6654 ELSEIF(istat==3)
THEN
6655 bb = half*dampa3*dt2*dt2
6656 dt2 = sqrt(bb*bb + dt2*dt2) - bb
6660 IF (imonm > 0)
CALL stoptime(timers,52)
6666 IF (imonm > 0)
CALL startime(timers,53)
6669 IF (ispmd/=0)
CALL spmd_chkw(iwiout,iout)
6674 IF(dlib_struct(id_engine_user_check)%DLIB_BOOL)
THEN
6678 ncycle_user = ncycle
6679 CALL engine_user_check(ispmd_user,tstop_user,ncycle_user,tt_user,mstop_user)
6680 IF(mstop_user > 0)
THEN
6687 IF(mds_avail==1)
THEN
6692 CALL mds_engine_user_check(ispmd_user,tstop_user,ncycle_user,tt_user,mstop_user)
6693 IF(mstop_user > 0)
THEN
6704 . tstop,iwiout,mstop ,ismsch,
6705 . int24use,nbintc,intlist,ipari,interfaces%INTBUF_TAB)
6714 lenr = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
6715 CALL spmd_exch_icodt(nodes%ICODT,nodes%BOUNDARY_ADD,nodes%BOUNDARY,length,lenr)
6720 IF (glob_therm%IDT_THERM == 0) dt2=
min(dt2,1.1*dt2old,dtmx)
6721 IF (impl_s==1)
CALL imp_dt2(dt2)
6727 IF ((ncycle==0).AND.(flg_kj2==1))
THEN
6729 1 nodes%WEIGHT,ixr,ipart,nodes%X,ipart(k6),
6731 DEALLOCATE(stk_sn,stk_sr)
6737 IF (irad2r /= 0 .AND. r2r_activ == 1)
THEN
6739 IF (nspmd>1)
CALL spmd_barrier()
6741!$omp parallel private(itsk)
6745 IF (imonm > 0)
CALL startime(timers,54)
6746 IF (ncycle == zero) tt_dp = tt
6752 IF ((r2r_siu==1).AND.(iddom/=0))
THEN
6758 IF (r2r_mfilr==1)
THEN
6767 IF (r2r_mfilr==2)
THEN
6781 CALL spmd_ibcast(r2r_th_main,r2r_th_main,10,1,0,2)
6788 IF ((r2r_siu==1).OR.(nspmd==1))
THEN
6792 ELSEIF (ispmd==0)
THEN
6804 CALL r2r_getdata(iexlnk ,igrnod ,nodes%X ,nodes%V ,
6805 . nodes%VR ,nodes%A ,nodes%AR ,nodes%MS ,nodes%IN ,
6806 . nodes%XDP ,nodes%D ,r2r_on ,dd_r2r ,nodes%WEIGHT ,
6807 . nodes%BOUNDARY_ADD,nodes%BOUNDARY ,nodes%STIFN ,nodes%STIFR ,dd_r2r_elem ,
6808 . sdd_r2r_elem,nloc_dmg, output%TH%WFEXT, output%TH%WFEXT_MD)
6810 IF (imonm > 0)
CALL stoptime(timers,54)
6820 IF (imonm > 0)
CALL startime(timers,55)
6822 CALL tstp_exch_madcpl(madendrequest,madclnod,madclfrecv,nodes%V,nodes%A,nodes%MS ,madymo_del_global )
6823 IF (madendrequest == -1)
THEN
6828 IF (imonm > 0)
CALL stoptime(timers,55)
6832 IF (vipercoupling)
THEN
6834 CALL radiossviper_receivesenddt(viper%id,tt,dt2)
6838 IF(loads%NINIVELT_G>0)
CALL inivel_dt2(loads%NINIVELT,loads%INIVELT,sensors,tt , dt2 ,nspmd)
6840 IF (imonm > 0)
CALL startime(timers,53)
6846 IF(ale%SUB%IALESUB==0)dt2s=dt2
6850 IF(nspmd>1.AND.iwiout>0)
THEN
6855 IF (irad2r /= 0)
THEN
6857 r2rfx1 = r2rfx1*dt2 + r2rfx2*dt12*dt2
6861 IF (nconld/=0.AND.impl_s/=1)
THEN
6862 output%TH%WFEXT = output%TH%WFEXT + wfexc*dt2
6865 IF (imonm > 0)
CALL stoptime(timers,53)
6866 IF (imon>0)
CALL stoptime(timers,6)
6871 IF (imon>0)
CALL startime(timers,timer_io)
6875 itsk = omp_get_thread_num()
6876 nodftsk = 1+itsk*numnod/ nthread
6877 nodltsk = (itsk+1)*numnod/nthread
6883 IF(comptreac/=0.AND.(impl_s==0 .OR. inconv==1))
THEN
6890 CALL forani2(fani,nodes%A,nfia,nfea,nodftsk,nodltsk,h3d_data)
6894 IF (imon>0)
CALL stoptime(timers,timer_io)
6898 IF(idtmins == 1)
THEN
6901 ELSEIF(idtmins == 2.OR.idtmins_int /= 0)
THEN
6903 IF (imon>0)
CALL startime(timers,39)
6909 CALL my_alloc(cjwork,18,njoint)
6910 CALL my_alloc(frea,3,numnod)
6911 CALL my_alloc(irwl_work,slprw)
6914 itsk = omp_get_thread_num()
6915 nodftsk = 1+itsk*numnod/ nthread
6916 nodltsk = (itsk+1)*numnod/nthread
6918 1 itsk ,nodftsk ,nodltsk ,nodii_sms ,indx2_sms ,
6919 2 nodxi_sms,nodes%MS ,nodes%MS0 ,nodes%A ,nodes%ICODT ,
6920 3 nodes%ICODR ,nodes%ISKEW ,skews%SKEW,jad_sms ,jdi_sms ,
6921 4 lt_sms ,x_sms ,p_sms ,z_sms ,y_sms ,
6922 5 prec_sms ,indx1_sms ,diag_sms ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,
6923 6 nodes%WEIGHT ,npby ,lpby ,
6924 7 tagslv_rby_sms,lad_sms ,kad_sms ,jsm_sms ,ibfv ,
6925 8 vel ,npc ,tf ,nodes%V ,nodes%X ,
6926 9 nodes%D ,sensors%SENSOR_TAB,nsensor,iframe,xframe,
6927 a jadi_sms ,jdii_sms ,lti_sms ,fr_sms ,fr_rms ,
6928 b iskyi_sms,mskyi_sms,res_sms ,igrv ,agrv ,
6929 c lgrav ,ilink ,llink ,fr_rl ,frl6 ,
6930 d nnlink ,lnlink ,fr_ll ,fnl6 ,tag_lnk_sms,
6932 f nodes%AR ,nodes%VR ,nodes%IN ,frl ,fnl ,
6933 g nprw ,lprw ,rwbuf ,rwsav ,
6934 h fani(1,1+nfoa+2*(nsect+nrbody)),fr_wall ,nrwl_sms ,
6935 i intstamp ,kinet ,element%SHELL%IXC ,ixtg ,sh4tree ,
6936 j sh3tree ,cptreac ,nodreac ,fthreac ,
6937 k frwl6 ,3+iroddl*3,nodes%TAG_S_RBY,dampr , damp ,
6938 l igrnod ,nodes%DR ,rby ,tagmsr_rby_sms,
6939 m jsm_sms ,irbe2 ,lrbe2 ,iad_rbe2 ,fr_rbe2m ,
6940 n nmrbe2 ,r2size ,rbe3%IRBE3 ,rbe3%LRBE3 ,rbe3%FRBE3 ,
6941 o rbe3%mpi%IAD_RBE3 ,rbe3%mpi%FR_RBE3,rbe3%mpi%FR_RBE3MP ,rbe3%RRBE3 ,rbe3%RRBE3_PON,
6942 p prec_sms3 ,diag_sms3,iad_rby ,fr_rby6 ,rby6 ,
6943 q rbe3%irotg_sz ,betate ,ibcscyc ,lbcscyc,
6944 r mskyi_fi_sms, list_sms,list_rms,cjwork,frea,
6945 s irwl_work,sms_vfi,sz_mw6,mw6,output%TH%WFEXT,ams_work)
6949 IF (
ALLOCATED(cjwork))
DEALLOCATE(cjwork)
6950 IF (
ALLOCATED(frea))
DEALLOCATE(frea)
6951 IF (
ALLOCATED(irwl_work))
DEALLOCATE(irwl_work)
6953 IF (imon>0)
CALL stoptime(timers,39)
6960 k1=1+lipart1*(npart+nthpart)+2*9*(npart
6976 IF (impl_s == 1)
THEN
6981 IF (imon>0)
CALL startime(timers,timer_integ)
6983 IF (impl_s==1 .AND. inconv==1)
THEN
6984 CALL thbcs_imp(nodft,nodlt ,nodes%A,nodes%AR,
6985 & fthreac,nodreac,cptreac,fthdtm,dt3)
6992 itsk = omp_get_thread_num()
6993 nodftsk = 1+itsk*numnod/ nthread
6994 nodltsk = (itsk+1)*numnod/nthread
6996 IF (ilag+iale+ieuler/=0)
THEN
7001 CALL bmultn(fill,dfill,ims,nodftsk,nodltsk)
7003 CALL imp_fanii(fani ,nodes%A ,nfia ,nodft ,nodlt ,
7005 IF (impdeb==1.AND.imconv==0)
THEN
7006 IF (ncycle>=ndeb0.AND.ncycle<=ndeb1)
THEN
7008 1 fani ,nodes%A ,nodes%AR ,nfia ,nfea ,
7009 2 nodftsk ,nodltsk ,h3d_data ,impbuf_tab)
7016 IF (imon>0)
CALL startime(timers,timer_io)
7018 1 nstrf,nodes%D,nodes%DR,nodes%V,nodes%VR,fsav(1,1+ninter+nrwall+nrbody),
7019 2 secfcum,nodes%A ,nodes%AR ,secbuf,nodes%MS ,nodes%IN ,
7020 3 nodes%X ,fani(1,nfoa+1),nodes%WEIGHT,xsec ,nodes%BOUNDARY_ADD,nodes%BOUNDARY,
7021 4 rg_cut ,iad_cut ,fr_cut,nodes%WEIGHT_MD,ioldsect,
7022 5 sensors%STABSEN,sensors%SFSAV,sensors%TABSENSOR,sensors%FSAV, output%TH%WFEXT)
7023 IF(imon>0)
CALL stoptime(timers,timer_io)
7029 IF (imon>0)
CALL stoptime(timers,timer_integ)
7031 IF (ilag+iale+ieuler/=0)
THEN
7033 IF(imonm > 0)
CALL startime(timers,40)
7042 1 rby ,nodes%X ,nodes%V ,nodes%VR ,skews%SKEW ,fsav ,
7043 2 lpby,npby,nodes%ISKEW,nodes%ITAB ,nodes%WEIGHT ,nodes%A ,
7044 3 nodes%AR ,nodes%MS ,nodes%IN ,kindrby,irbkin_l,nrbykin_l ,
7045 4 nodes%WEIGHT_MD,ms_2d)
7048 IF(imon>0)
CALL stoptime(timers,timer_kin)
7049 IF(imonm > 0)
CALL stoptime(timers,40)
7055 IF(imon>0)
CALL startime(timers,timer_kin)
7056 IF(imonm > 0)
CALL startime(timers,40)
7060 CALL rbe2cor(irbe2 ,lrbe2 ,nodes%X ,nodes%V ,nodes%VR ,
7061 2 skews%SKEW ,nodes%ISKEW ,nodes%ITAB ,nodes%WEIGHT,nodes%A ,
7062 3 nodes%AR ,nodes%MS0 ,nodes%IN ,nodes%WEIGHT_MD)
7065 IF(imon>0)
CALL stoptime(timers,timer_kin)
7066 IF(imonm > 0)
CALL stoptime(timers,40)
7073 IF (nsensor > 0)
THEN
7074 IF (nspmd > 1 .AND.
THEN
7076 dim_exch = sensors%SFSAV
7081 IF (nsensor > 0 .AND. inconv == 1)
THEN
7085 IF (sensors%COMM_SENS16%BOOL)
THEN
7091 IF(sensors%COMM_SENS17%BOOL)
THEN
7092 CALL sensor_temp0(nsensor,sensors%SENSOR_TAB,igrnod,nodes%TEMP,nodes%WEIGHT,sensors%COMM_SENS17,
7093 * sensors%SENSOR_STRUCT)
7097 CALL sensor_spmd(sensors%SENSOR_TAB,ipari ,nprw ,isensp ,nsensp
7098 . xsens ,nodes%X ,accelm ,iaccp ,naccp ,
7099 . gauge ,igaup ,ngaup ,partsav2,nsensor,
7100 . sensors%COMM_SENS14,sensors%SENSOR_STRUCT)
7105 . xsens ,ipari ,partsav2 ,gauge ,fsav ,
7107 . subsets ,igrsurf ,igrnod
7120 IF (ilag + iale + ieuler /= 0)
THEN
7122 IF (imon>0)
CALL startime(timers,timer_integ)
7129 itsk = omp_get_thread_num
7130 nodftsk = 1+itsk*numnod/ nthread
7131 nodltsk = (itsk+1)*numnod/nthread
7137 CALL bmultn(fill,dfill,ims,nodftsk,nodltsk)
7147 IF ((numsph/=0).OR.(sol2sph_flag==1))
THEN
7151 IF (imonm > 0)
CALL startime(timers,48)
7152 IF (imonm > 0)
CALL startime(timers,89)
7154 ALLOCATE(waspsym(3*nsphsym+1),stat=ierror)
7156 CALL ancmsg(msgid=19,anmode=aninfo,c1=
"WASPSYM")
7164 itsk = omp_get_thread_num()
7165 ipmtsk = 1 + itsk*npsav*npart
7168 1 nodes%X ,nodes%V ,nodes%MS ,nodes%A ,spbuf ,
7169 2 wa ,nodes%ITAB ,kxsp ,ixsp ,nod2sp ,
7170 3 nodes%D ,ispsym ,xspsym%BUF ,vspsym%BUF ,bufmat ,
7171 4 bufgeo ,npc ,tf ,pm ,geo ,
7172 5 ispcond ,xframe ,waspsym,ipart(k10),partsav(ipmtsk),
7173 6 wasph(ksph21) ,wsmcomp%BUF ,wasph(kspactiv) ,ipart,itsk,
7174 7 sph2sol ,sol2sph ,irst ,ixs ,iparg ,
7175 8 ngrounc ,igrounc ,elbuf_tab,nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,
7176 9 igeo ,sol2sph_typ,sph_work)
7185 IF (imonm > 0)
CALL stoptime(timers,48)
7186 IF (imonm > 0)
CALL stoptime(timers,89)
7191 IF (imon>0)
CALL startime(timers,6)
7192 IF (imonm > 0)
CALL startime(timers,48)
7193 CALL spwfvis(spbuf,ipart(k10),partsav,iparg,elbuf_tab,
7194 . kxsp ,wasph(kspactiv))
7195 IF (imonm > 0)
CALL stoptime(timers,48)
7196 IF (imon>0)
CALL stoptime(timers,6)
7208 1 itsk ,nodftsk ,nodltsk
7209 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
7213 2 partftsk,partltsk,partsav,greftsk,greltsk,gresav)
7223 IF (tt==zero.AND.iabs(isigi)==5)
THEN
7225 IF (imon>0)
CALL startime(timers,6)
7226 IF (imonm > 0)
CALL startime(timers,49)
7227 CALL fequilibre(nodes%A,fzero,element%SHELL%IXC,ixtg)
7234 IF(iparit == 0.AND.nspmd > 1.AND. nloc_dmg%IMOD > 0)
THEN
7238 IF(coupling%active)
THEN
7243 CALL coupling_sync(coupling,dt2,nodes,coupling_forces)
7250 itsk = omp_get_thread_num()
7251 nodftsk = 1+itsk*numnod/ nthread
7252 nodltsk = (itsk+1)*numnod/nthread
7261 IF(alefvm_param%IEnabled>0)
THEN
7262 CALL alefvm_accele(nodes%A, nodes%AR, nodftsk, nodltsk, ale_connectivity%NALE)
7265 CALL accele(nodes%A ,nodes%AR ,nodes%V ,nodes%MS ,nodes%IN ,
7266 2 ale%GLOBAL%SNALE ,ale_connectivity%NALE ,ms_2d ,
7270 .
CALL ply_accele(inod_pxfem,ms_ply,zi_ply,nodes%MS,
7271 . nodftsk,nodltsk,nplymax,nplyxfe,numnod,msz2 )
7274 IF(ialelag > 0)
THEN
7275 CALL flow_accele(ale_connectivity%NALE, msf ,aflow ,vflow ,
7279 IF (nloc_dmg%IMOD > 0)
THEN
7280 nodft_nl = 1+ itsk*nloc_dmg%NNOD/nthread
7281 nodlt_nl = (itsk+1)*nloc_dmg%NNOD/nthread
7282 CALL nlocal_acc(nloc_dmg, nodft_nl ,nodlt_nl)
7285 IF (icrack3d > 0)
THEN
7289 CALL crk_accele(adsky_crk,inod_crk,nodlevxf ,nodftsk ,nodltsk ,
7290 . nodenr ,crksky ,nodes%MS ,nodes%IN ,nodes%ITAB )
7294 CALL crk_zero_fsky(crksky,adsky_crk,inod_crk,nodftsk,nodltsk,
7303 1 pinch_data%APINCH, nodes%MS, pinch_data%MSPINCH,
7304 2 pinch_data%STIFPINCH, nodftsk, nodltsk,
7310 IF (glob_therm%ITHERM_FE > 0 )
7311 .
CALL tempur(nodes%TEMP ,nodes%MCP,fthe,nodftsk,nodltsk,nodes%WEIGHT,mcp_off,glob_therm%HEAT_STORED)
7317 IF(ntshegg>0.AND.nspmd > 1)
7318 .
CALL spmd_exch_vmax(iad_stsh ,fr_stsh ,iad_rtsh ,fr_rtsh ,alpha_dc )
7327 itsk = omp_get_thread_num()
7328 greftsk = 1+itsk*ntsheg/ nthread
7329 greltsk = (itsk+1)*ntsheg/nthread
7330 CALL accdtdc(greftsk,greltsk,ienunl ,alpha_dc,nodes%A ,nodes%MS ,nodes%ITAB )
7334 IF(ntshegg>0.AND.nspmd > 1)
7335 .
CALL spmd_exch_fa(iad_stsh ,fr_stsh ,iad_rtsh ,fr_rtsh ,nodes%A )
7339 IF (debug(macro_debug_temp)==1)
THEN
7340 IF (ncycle>=tdebstart .AND.
7341 . mod(ncycle-tdebstart,trstfreq)==0)
THEN
7349 CALL spmd_collectt(nodes%TEMP,nodes%ITAB,nodes%WEIGHT,nodes%NODGLOB
7351 CALL collectt(nodes%TEMP,nodes%ITAB,nodes%WEIGHT,nodes%NODGLOB)
7360 IF (imon>0)
CALL stoptime(timers,timer_integ)
7377 IF (imonm > 0)
CALL startime(timers,48)
7378 IF (imonm > 0)
CALL startime(timers,89)
7380 CALL sponfv (nodes%X ,nodes%V ,nodes%A ,nodes%D ,nodes%MS ,
7381 2 spbuf ,nodes%ITAB ,kxsp ,ixsp ,nod2sp ,
7382 3 npc ,tf ,isphio ,vsphio ,ipart ,
7383 4 ipart(k10),wasph(kspactiv) ,wa,wasph(ksph22) ,sph_work, output%TH%WFEXT
7385 IF (imonm > 0)
CALL stoptime(timers,89)
7386 IF (imonm > 0)
CALL stoptime(timers,48)
7387 IF (imon>0)
CALL stoptime(timers,6)
7398 IF(nsphio/=0.AND.nsphactg/=0)
THEN
7400 IF (imon>0)
CALL startime(timers,6)
7401 IF (imonm > 0)
CALL startime(timers,48)
7402 IF (imonm > 0)
CALL startime(timers,89)
7404 CALL sponfv (nodes%X ,nodes%V ,nodes%A ,nodes%D
7405 2 spbuf ,nodes%ITAB ,kxsp
7406 3 npc ,tf ,isphio ,vsphio
7407 4 ipart(k10),wasph(kspactiv),wa,wasph(ksph22) ,sph_work, output%TH%WFEXT)
7409 IF (imonm > 0)
CALL stoptime(timers,89)
7410 IF (imonm > 0)
CALL stoptime(timers,48)
7418 IF ((sdd_r2r_elem>0).AND.(numsph_glo_r2r>0))
THEN
7419 lenr = nodes%BOUNDARY_ADD(1,nspmd+1)-nodes%BOUNDARY_ADD(1,1)
7427 IF (imon>0)
CALL startime(timers,timer_io)
7429 IF(comptreac/=0.AND.(impl_s==0 .OR. inconv==1))
THEN
7433 itsk = omp_get_thread_num()
7434 nodftsk = 1+itsk*numnod/ nthread
7435 nodltsk = (itsk+1)*numnod/nthread
7443 CALL reaction_forces_2(nodftsk,nodltsk,nodes%A,nodes%AR,nodes%MS,nodes%IN,freac,iflag)
7449 IF (imon>0)
CALL stoptime(timers,timer_io)
7450 CALL python_update_nodal_entities(numnod,nodes,a
7455 IF(ngrav/=0.AND.idtmins==0.AND.idtmins_int==0)
THEN
7456 IF (imon>0)
CALL startime(timers,timer_kin)
7457 IF (imonm > 0)
CALL startime(timers,46)
7464 itsk = omp_get_thread_num()
7465 IF(multi_fvm%IS_USED)
THEN
7467 1 igrv ,agrv ,npc ,tf ,nodes%A ,
7468 2 nodes%V ,nodes%X ,skews%SKEW ,nodes%MS ,sensors%SENSOR_TAB,
7469 3 nodes%WEIGHT ,lgrav ,itsk ,ale_connectivity%NALE,nsensor, python, output%TH%WFEXT)
7472 1 igrv ,agrv ,npc ,tf ,nodes%A ,
7473 2 nodes%V ,nodes%X ,skews%SKEW ,nodes%MS ,sensors%SENSOR_TAB,
7474 3 nodes%WEIGHT ,lgrav ,itsk ,nsensor, python, output%TH%WFEXT)
7486 CALL fxgrvcor(fxbipm, fxbgrvi, nodes%A, igrv, agrv,
7487 . npc, tf, nodes%MS, nodes%V , skews%SKEW,
7488 . fxbgrw, nodes%BOUNDARY_ADD, nodes%BOUNDARY, output%TH%WFEXT
7490 IF (imon>0)
CALL stoptime(timers,46)
7491 IF (imonm > 0)
CALL stoptime(timers,timer_kin)
7497 CALL bcscyc(ibcscyc,lbcscyc,skews%SKEW,nodes%X,nodes%V,nodes%A
7503 IF (imon>0)
CALL startime(timers,timer_kin)
7510 itsk = omp_get_thread_num()
7511 CALL cfield_1(python,icfield ,cfield,npc
7512 2 nodes%V ,nodes%X ,xframe ,nodes%MS,sensors%SENSOR_TAB,
7513 3 nodes%WEIGHT,lcfield,itsk ,iframe,nsensor, output%TH%WFEXT)
7516 IF (imon>0)
CALL stoptime(timers,timer_kin)
7523 IF (imon>0)
CALL startime(timers,timer_io)
7525 IF(comptreac/=0.AND.(impl_s==0 .OR. inconv==1))
THEN
7529 itsk = omp_get_thread_num()
7530 nodftsk = 1+itsk*numnod/ nthread
7531 nodltsk = (itsk+1)*numnod/nthread
7539 CALL reaction_forces_2(nodftsk,nodltsk,nodes%A,nodes%AR,nodes%MS,nodes%IN,freac,iflag)
7545 IF (imon>0)
CALL stoptime(timers,timer_io)
7555 IF (imon>0)
CALL startime(timers,timer_io)
7557 itsk = omp_get_thread_num()
7558 nodftsk = 1+itsk*numnod/ nthread
7559 nodltsk = (itsk+1)*numnod/nthread
7560 CALL forani3(fani,nodes%A,nodes%MS,nfea,nodftsk,nodltsk,h3d_data
7562 IF (imon>0)
CALL stoptime(timers,timer_io)
7572 IF(ninter/=0.AND.iale/=0)
THEN
7576 CALL startime(timers,timer_contsort)
7578 CALL intal1(ipari ,nodes%X ,nodes%V ,
7579 2 nodes%A ,nodes%ISKEW ,skews%SKEW ,nodes%ICODT,wa,
7580 3 nodes%MS ,nodes%ITAB ,fsav ,interfaces%INTBUF_TAB ,
7581 4 fani ,fani(1,nfnca+1) ,h3d_data )
7583 CALL stoptime(timers,timer_contsort)
7589 call spmd_xv_inter_type1(numnod, nodes%BOUNDARY_SIZE, ispmd, nspmd, nodes%BOUNDARY_ADD, nodes%BOUNDARY,
7590 1 nodes%a, nodes%v, ninter, ipari, npari)
7593 IF(ierr == 1)
CALL arret(2)
7595 IF(ninter /= 0 .and. iale+ieuler /= 0 .and. int18kine == -1)
THEN
7600 itsk = omp_get_thread_num()
7604 CALL i18main_kine_2(ipari,interfaces%INTBUF_TAB,nodes%X ,nodes%V ,
7605 2 nodes%A ,nodes%ISKEW,skews%SKEW ,nodes%ICODT,wa,
7606 3 nodes%MS ,nodes%ITAB ,fsav ,itsk+1,kinet,
7607 4 nodes%STIFN,mtf ,cand_sav,fani,int18add,
7608 5 nodes%BOUNDARY_ADD,nodes%BOUNDARY,h3d_data )
7619 IF(ebcs_tab%nebcs_loc>0)
THEN
7622 CALL startime(timers,timer_contsort)
7625 CALL ebcclap(nodes%V,nodes%A,fv,ebcs_tab)
7628 CALL stoptime(timers,timer_contsort)
7636 IF (imon>0)
CALL startime(timers,timer_kin)
7637 IF (imonm > 0)
CALL startime(timers,42)
7639 CALL thbcs(nodft ,nodlt ,nodes%ICODT ,nodes%ICODR,nodes%ISKEW,
7640 2 skews%SKEW ,nodes%A ,nodes%AR ,nodes%MS ,nodes%IN ,
7641 3 fthreac,nodreac,cptreac)
7648 itsk = omp_get_thread_num()
7649 nodftsk = 1+itsk*numnod/ nthread
7650 nodltsk = (itsk+1)*numnod/nthread
7651 CALL bcs10(nodftsk,nodltsk ,nodes%ICODT ,nodes%ICODR,nodes%ISKEW
7652 2 skews%SKEW ,nodes%A ,nodes%AR ,nodes%MS ,nodes%V ,
7656 IF(iplybcs > 0 .AND. iplyxfem > 0 )
7657 .
CALL ply_bcs(nodftsk, nodltsk,icodt_ply,iskew_ply,skews%SKEW,
7658 . inod_pxfem,ms_ply,ibc_ply)
7674 itsk = omp_get_thread_num()
7680 1 nodes%MS ,nodes%IN ,nodes%A ,nodes%AR ,nodes%V ,
7681 2 nodes%VR ,ilink ,llink,skews%SKEW,fr_rl,
7682 3 nodes%WEIGHT,frl6)
7685 2 nodes%VR ,nnlink,lnlink,skews%SKEW ,fr_ll,
7686 3 nodes%WEIGHT,fnl6 ,nodes%X ,xframe)
7692 + nodes%MS ,nodes%IN ,nodes%A ,nodes%AR,nodes%X ,
7693 + lrivet,rivet,geo,nodes%V ,nodes%VR,
7701 CALL cjoint(nodes%A ,nodes%AR ,nodes%V ,nodes%VR,nodes%X ,
7702 2 fsav ,ljoint,nodes%MS,nodes%IN,iadcj,
7703 3 fr_cj,tag_lnk_sms(nrlink+nlink+1),itsk)
7708 IF (imon>0)
CALL stoptime(timers,timer_kin)
7709 IF (imonm > 0)
CALL stoptime(timers,43)
7717 IF (imon>0)
CALL startime(timers,timer_io)
7720 itsk = omp_get_thread_num()
7721 nodftsk = 1+itsk*numnod/ nthread
7722 nodltsk = (itsk+1)*numnod/nthread
7726 IF(tt==zero.AND.(isigi==2.OR.isigi==4))
THEN
7727#include "vectorize.inc"
7728 DO i=nodftsk,nodltsk
7729 fzero(1,i)=-nodes%A(1,i)
7731 fzero(2,i)=-nodes%A(2,i)
7733 fzero(3,i)=-nodes%A(3,i)
7739 IF (imon>0)
CALL stoptime(timers,timer_io)
7745 IF (ns10e>0.AND.(idamp/=0.OR.ndamp>0.OR.istat/=0))
THEN
7753 IF (imon>0)
CALL startime(timers,timer_io)
7755 IF(comptreac/=0.AND.(impl_s==0 .OR. inconv==1))
THEN
7759 itsk = omp_get_thread_num()
7760 nodftsk = 1+itsk*numnod/ nthread
7761 nodltsk = (itsk+1)*numnod/nthread
7769 CALL reaction_forces_2(nodftsk,nodltsk,nodes%A,nodes%AR,nodes%MS,nodes%IN,freac,iflag)
7775 IF (imon>0)
CALL stoptime(timers,timer_io)
7777 IF (imonm > 0)
CALL startime(timers,52)
7781 itsk = omp_get_thread_num()
7782 nodftsk = 1+itsk*numnod/ nthread
7783 nodltsk = (itsk+1)*numnod/nthread
7787 CALL damping(nodftsk,nodltsk,vmd,nodes%VR,nodes%A ,nodes%AR ,damp,nodes%MS,nodes%IN,
7788 . igrnod,3+iroddl*3,itsk,nodes%WEIGHT,nodes%TAG_S_RBY,output%TH%WFEXT)
7790 CALL damping(nodftsk,nodltsk,nodes%V ,nodes%VR,nodes%A ,nodes%AR ,damp,nodes%MS,nodes%IN,
7791 . igrnod,3+iroddl*3,itsk,nodes%WEIGHT,nodes%TAG_S_RBY,output%TH%WFEXT)
7798 . 3+iroddl*3,nodes%V ,
7799 . nodes%VR ,nodes%A ,nodes%AR ,nodes%MS ,nodes%IN ,
7800 . dampr ,damp ,igrnod ,nodes%WEIGHT ,nodes%TAG_S_RBY ,output%TH%WFEXT)
7809 . nodes%VR ,nodes%A ,nodes%AR ,nodes%MS ,nodes%IN ,
7810 . dampr ,damp ,igrnod ,nodes%WEIGHT ,nodes%TAG_S_RBY,
7811 . skews%SKEW ,icontact,idamp_rdof_tab ,ndamp_vrel,id_damp_vrel,
7812 . fr_damp_vrel,iparit,ispmd,output%TH%WFEXT)
7815 . 3+iroddl*3,nodes%V ,
7816 . nodes%VR ,nodes%A ,nodes%AR ,nodes%MS ,nodes%IN ,
7817 . dampr ,damp ,igrnod ,nodes%WEIGHT ,nodes%TAG_S_RBY,
7818 . skews%SKEW ,icontact,idamp_rdof_tab ,ndamp_vrel,id_damp_vrel,
7819 . fr_damp_vrel,iparit,ispmd,output%TH%WFEXT)
7828 IF(imon>0)
CALL stoptime(timers,52)
7830 IF (imon>0)
CALL startime(timers,timer_io)
7832 IF(comptreac/=0.AND.(impl_s==0 .OR. inconv==1))
THEN
7836 itsk = omp_get_thread_num()
7837 nodftsk = 1+itsk*numnod/ nthread
7838 nodltsk = (itsk+1)*numnod/nthread
7860 IF(cptreac/=0.AND.(impl_s==0 .OR. inconv==1))
THEN
7864 itsk = omp_get_thread_num()
7866 nodltsk = (itsk+1)*numnod/nthread
7874 . nodes%IN ,fthreac ,iflag,nodreac)
7880 IF (imon>0)
CALL stoptime(timers,timer_io)
7890 IF (imon>0)
CALL startime(timers,6)
7891 IF (imonm > 0)
CALL startime(timers,49)
7893 CALL static(vmd ,nodes%VR,nodes%A,nodes%AR
7895 CALL static(nodes%V,nodes%VR,nodes%A,nodes%AR,nodes%MS
7897 IF (imonm > 0)
CALL stoptime(timers,49)
7898 IF (imon>0)
CALL stoptime(timers,6)
7911 IF(imonm > 0)
CALL startime(timers,44)
7913 CALL fixvel(ibfv ,nodes%A ,nodes%V ,npc ,tf ,
7914 2 vel ,nodes%MS ,nodes%X ,skews%SKEW ,nodes%AR ,
7915 3 nodes%VR ,nodes%IN ,nsensor,sensors%SENSOR_TAB,
7916 4 nodes%WEIGHT,nodes%D ,rby ,iframe ,
7917 5 xframe,nodes%DR ,ptr_sms, nodes,
7918 6 tt_double,nodes%DDP,python ,output%TH%WFEXT)
7920 IF (fxvel_fgeo ==1)
THEN
7921 CALL fixfingeo(python, nodes, ibfv ,npc ,tf ,
7923 3 cptreac,nodreac,ptr_sms,nsensor ,
7924 4 fthreac, output%TH%WFEXT )
7928 IF(imonm > 0)
CALL stoptime(timers,44)
7938 IF (imon>0)
CALL startime(timers,timer_io)
7940 IF(cptreac/=0.AND.(impl_s==0 .OR. inconv==1))
THEN
7944 itsk = omp_get_thread_num()
7945 nodftsk = 1+itsk*numnod/ nthread
7946 nodltsk = (itsk+1)*numnod/nthread
7953 CALL reaction_forces_th(nodftsk,nodltsk ,nodes%A ,nodes%AR ,nodes%MS ,nodes%IN ,fthreac ,iflag,nodreac)
7959 IF (imon>0)
CALL stoptime(timers,timer_io)
7965 IF (imon>0)
CALL startime(timers,timer_kin)
7966 IF (imonm > 0)
CALL startime(timers,43)
7973 IF(nrwall>0.AND.idtmins==1)
THEN
7976 ELSEIF(nrwall>0.AND.(idtmins==2.OR.idtmins_int/=0))
THEN
7978 1 nodes%X ,nodes%A ,nodes%V ,rwbuf ,lprw,
7979 2 nprw ,nodes%MS ,fsav(1,ninter+1),fr_wall ,
7980 3 fani(1,1+nfoa+2*(nsect+nrbody)),
7981 4 rwsav ,nodes%WEIGHT ,frwl6 ,nodxi_sms, nodes%WEIGHT_MD
7982 5 sensors%SFSAV,sensors%FSAV,sensors%STABSEN,sensors%TABSENSOR, output%TH%WFEXT
7985 1 nodes%X ,nodes%A ,nodes%V ,rwbuf ,lprw,
7986 2 nprw ,nodes%MS ,fsav(1,ninter+1),fr_wall ,
7987 3 fani(1,1+nfoa+2*(nsect+nrbody)),
7988 4 rwsav ,nodes%WEIGHT ,frwl6 ,nativ_sms, nodes%WEIGHT_MD,
7989 5 sensors%SFSAV,sensors%FSAV,sensors%STABSEN,sensors%TABSENSOR, output%TH%WFEXT, output%TH%WFEXT_MD)
7994 IF (imon>0)
CALL stoptime(timers,timer_kin)
7995 IF (imonm > 0)
CALL stoptime(timers,43)
8004 IF (glob_therm%NFXTEMP > 0 .AND. glob_therm%ITHERM_FE > 0)
THEN
8008 IF(imonm > 0)
CALL startime(timers,44)
8010 CALL fixtemp(python,ibftemp ,fbftemp ,nodes%TEMP ,npc ,tf ,
8011 1 nsensor ,sensors%SENSOR_TAB,glob_therm,snpc)
8013 IF(imonm > 0)
CALL stoptime(timers,44)
8020 IF (imon>0)
CALL startime(timers,timer_io)
8022 1 nstrf,nodes%D,nodes%DR,nodes%V,nodes%VR,fsav(1,1+ninter+nrwall+nrbody),
8023 2 secfcum,nodes%A ,nodes%AR ,secbuf,nodes%MS ,nodes%IN ,
8024 3 nodes%X ,fani(1,nfoa+1),nodes%WEIGHT,xsec ,nodes%BOUNDARY_ADD,nodes%BOUNDARY,
8025 4 rg_cut ,iad_cut ,fr_cut,nodes%WEIGHT_MD,ioldsect,
8026 5 sensors%STABSEN,sensors%SFSAV,sensors%TABSENSOR ,sensors%FSAV ,output%TH%WFEXT )
8027 IF(imon>0)
CALL stoptime(timers,timer_io)
8039 IF (imon>0)
CALL startime(timers,38)
8041 itsk = omp_get_thread_num()
8042 nodftsk = 1+itsk*numnod/ nthread
8043 nodltsk = (itsk+1)*numnod/nthread
8044 CALL cndint(element%SHELL%IXC, ipart(k3), ixtg, ipart(k8), ipart,
8045 2 itsk ,nodes%A ,nodes%V ,nodes%AR ,nodes%VR ,
8046 3 nodes%MS ,nodes%IN ,nodftsk,nodltsk ,nodes%X ,
8047 4 sh4tree,sh3tree ,nodes%ITAB ,nodes%STIFN ,nodes%STIFR ,
8051 IF (imon>0)
CALL stoptime(timers,38)
8054 IF (imon>0)
CALL startime(timers,timer_kin)
8055 IF (imonm > 0)
CALL startime(timers,42)
8063 itsk = omp_get_thread_num()
8064 nodftsk = 1+itsk*numnod/ nthread
8065 nodltsk = (itsk+1)*numnod/nthread
8067 CALL bcs10(nodftsk,nodltsk ,nodes%ICODT ,nodes%ICODR,nodes%ISKEW,
8068 2 skews%SKEW ,nodes%A ,nodes%AR ,nodes%MS ,nodes%V ,
8073 IF (imonm > 0)
CALL stoptime(timers,42)
8074 IF (imon>0)
CALL stoptime(timers,timer_kin)
8083 IF (imon>0)
CALL startime(timers,38)
8090 itsk = omp_get_thread_num()
8092 CALL admvit(element%SHELL%IXC, ipart
8093 1 itsk ,nodes%A , nodes%V , nodes%AR , nodes%VR
8094 2 sh4tree,sh3tree ,nodes%TEMP ,glob_therm%ITHERM_FE)
8098 IF (imon>0)
CALL stoptime(timers,38)
8122 2 fsav ,lpby ,npby ,nodes%ISKEW,nodes%ITAB ,
8123 3 nodes%WEIGHT ,nodes%A
8124 4 kindrby,irbkin_l,nrbykin_l,nodreac,fthreac,
8130 IF(imon>0)
CALL stoptime(timers,timer_kin)
8131 IF(imonm > 0)
CALL stoptime(timers,40)
8138 IF(irigid_mat > 0 )
THEN
8146 CALL rmatacce(rbym , arbym, arrbym, vrbym, vrrbym ,
8148 2 nodes%V ,nodes%VR ,kindrbym)
8162 CALL fxbyvit(fxbipm, fxbnod, fxbmod, fxbglm, fxblm ,
8163 . fxbmvn, fxbmcd, fxbse , fxbsv , fxbvit,
8164 . fxbacc, fxbrpm, nodes%V , nodes%VR , nodes%A ,
8165 . nodes%AR , nodes%MS , nodes%IN , nodes%WEIGHT, fsav ,
8166 . fxbfc , fxbedp, nodes%BOUNDARY_ADD, nodes%BOUNDARY)
8172 CALL rbe3v(rbe3,nodes,skews%SKEW )
8179 CALL rbe2v(irbe2 ,lrbe2 ,nodes%X ,nodes%A ,nodes%AR ,
8180 1 nodes%V ,nodes%VR ,skews%SKEW )
8186 IF (nflow>0)
CALL flow1(iflow, rflow, nbgauge, nodes%A)
8198 CALL startime(timers,timer_contsort)
8200 CALL i14wfs(output,ipari,interfaces%INTBUF_TAB,igrsurf,fsav)
8202 CALL stoptime(timers,timer_contsort)
8207 IF (ns10e>0)
CALL s10cndi2a(icnds10 ,itagnd ,nodes%A )
8215 CALL startime(timers,timer_contsort)
8217 IF (imonm > 0)
CALL startime(timers,28)
8220 2 nodes%VR ,nodes%AR ,k ,nodes%MS ,nodes%IN ,nodes%WEIGHT,wa,skews%SKEW,
8221 3 interfaces%INTBUF_TAB)
8223 IF (imonm > 0)
CALL stoptime(timers,28)
8225 CALL stoptime(timers,timer_contsort)
8234 IF (nslipring + nretractor > 0)
CALL kine_seatbelt_vel(nodes%A,nodes%V,nodes%X,nodes%XDP)
8238 IF (ns10e>0)
CALL s10cndi2a1(icnds10 ,itagnd ,nodes%A )
8240 IF(numfram /= 0 .AND. n2d == 0)
THEN
8245 IF (imonm > 0)
CALL startime(timers,49)
8246 CALL movfra1(xframe,iframe ,nodes%X, nodes%V ,nodes%A ,nodes%AR)
8247 IF (imonm > 0)
CALL stoptime(timers,49)
8251 IF (imon>0)
CALL startime(timers,timer_kin)
8252 IF (imonm > 0)
CALL startime(timers,40)
8254 IF(numsph/=0.AND.nsphsol/=0)
THEN
8258 IF (imonm > 0)
CALL startime(timers,48)
8259 IF (imonm > 0)
CALL startime(timers,89)
8266 itsk = omp_get_thread_num()
8269 1 itsk ,nodes%V ,nodes%A ,nodes%MS ,pm ,
8270 2 ipart ,ixs ,ipart(k1) ,kxsp ,ipart(k10) ,
8271 3 irst ,spbuf ,partsav ,sol2sph ,iparg ,
8272 4 ngrounc ,igrounc ,elbuf_tab ,igeo)
8276 IF (imonm > 0)
CALL stoptime(timers,89)
8277 IF (imonm > 0)
CALL stoptime(timers,48)
8287 IF (naccelm > 0)
THEN
8291 IF(iaccp(k)==ispmd+1)
THEN
8293 IF(n > 0 .AND. n/=2*numnodg )
THEN
8297 . accelm(20,k),accelm(23,k),skews%SKEW(1,isk))
8309 IF (nbgauge > 0)
THEN
8316 IF(n < -(numels+numelq
THEN
8318 . gauge(10,k),gauge(9,k),gauge(14,k),gauge(22,k),
8331 IF (nsphio > 0)
THEN
8334 IF (isphio(1,k)>1)
THEN
8337 . vsphio(ivad+13),vsphio(ivad+15),vsphio(ivad+18),vsphio(ivad+20),
8338 . vsphio(ivad+16),1)
8349 2 lpby,npby,nodes%ISKEW,nodes%ITAB ,nodes%WEIGHT ,nodes%A ,
8350 3 nodes%AR ,nodes%MS ,nodes%IN ,kindrby,irbkin_l,nrbykin_l,
8351 4 nodes%WEIGHT_MD,ms_2d)
8356 CALL rbe2cor(irbe2 ,lrbe2 ,nodes%X ,nodes%V ,nodes%VR ,
8357 2 skews%SKEW ,nodes%ISKEW ,nodes%ITAB ,nodes%WEIGHT,nodes%A
8358 3 nodes%AR ,nodes%MS0 ,nodes%IN ,nodes%WEIGHT_MD)
8373 IF (nsensor> 0 )
THEN
8374 IF (nspmd > 1 .AND. sensors%STABSEN > 0)
THEN
8376 dim_exch = sensors%SFSAV
8381 IF (nsensor > 0)
THEN
8385 ! pre-computation and mpi communication
for type 16 sensor
8386 IF (sensors%COMM_SENS16%BOOL)
THEN
8388 * igrsurf,sensors%COMM_SENS16)
8392 IF (sensors%COMM_SENS17%BOOL)
THEN
8393 CALL sensor_temp0(nsensor,sensors%SENSOR_TAB,igrnod,nodes%TEMP,nodes%WEIGHT,sensors%COMM_SENS17,
8394 * sensors%SENSOR_STRUCT)
8398 CALL sensor_spmd(sensors%SENSOR_TAB,ipari ,nprw ,isensp ,nsensp ,
8399 . xsens ,nodes%X ,accelm ,iaccp ,naccp ,
8400 . gauge ,igaup ,ngaup ,partsav2 ,nsensor,
8401 . sensors%COMM_SENS14,sensors%SENSOR_STRUCT )
8406 . xsens ,ipari ,partsav2 ,gauge ,fsav ,
8407 . nodes%X ,nodes%V ,nodes%A ,accelm ,nprw ,
8408 . subsets ,igrsurf ,igrnod ,python)
8416 IF (imonm > 0)
CALL stoptime(timers,40)
8417 IF (imon>0)
CALL stoptime(timers,timer_kin)
8422 IF(lag_ncf+lag_ncl>0)
THEN
8423 l1 = 1+nixs*numels + nsvois*nixs
8427 IF(lag_sec == 1 .AND. nspmd == 1)
THEN
8439 1 itsk ,nodftsk ,nodltsk ,numntsk,ndtsk ,
8440 2 ipmtsk,partftsk,partltsk,nwaftsk,igmtsk ,
8444 1 ipari ,nodes%X ,nodes%A ,
8445 2 wa(nwaftsk),nodes%V ,nodes%MS ,nodes%IN ,nodes%VR ,
8446 3 itsk ,wa ,nodes%ITAB ,ixs ,ixs(l2) ,
8447 4 ixs(l3) ,igrnod ,fani ,fsav ,
8448 5 skews%SKEW ,nodes%AR ,lambda ,lagbuf ,ibcslag ,
8449 6 ixs(l1) ,gjbufi ,gjbufr ,ibmpc ,rbmpc
8450 7 npbyl ,lpbyl ,ibfv ,vel ,npc ,
8451 8 tf ,newfront ,icontact ,rwbuf ,lprw ,
8452 9 nprw ,rbyl ,nodes%D ,nodes%DR ,kinet ,
8453 a nsensor ,sensors%SENSOR_TAB,interfaces%INTBUF_TAB, h3d_data ,igrbric,
8464 nbncl = fr_lagf(1,nspmd+1)
8465 nbikl = fr_lagf(2,nspmd+1)
8466 nbnodl = fr_lagf(3,nspmd+1)
8467 nbnodlr= nbnodl*
max(1,iroddl)
8469 nbncl = fr_lagf(1,ispmd+1)
8470 nbikl = fr_lagf(2,ispmd+1)
8475 1 ipari ,nodes%X ,nodes%A ,
8476 2 wa ,nodes%V ,nodes%MS ,nodes%IN ,nodes%VR ,
8477 3 wa ,nodes%ITAB ,ixs ,ixs(l2) ,
8478 4 ixs(l3) ,fani ,fsav ,
8479 5 skews%SKEW ,nodes%AR ,lambda ,lagbuf ,ibcslag ,
8480 6 ixs(l1) ,gjbufi ,gjbufr ,ibmpc ,rbmpc ,
8481 7 npbyl ,lpbyl ,ibfv ,vel ,npc ,
8482 8 tf ,newfront ,icontact ,rwbuf ,lprw ,
8483 9 nprw ,rbyl ,nodes%D ,nodes%DR ,kinet ,
8484 a nodes%NODGLOB ,nodes%WEIGHT ,nbncl ,nbikl ,nbnodl ,
8485 b nbnodlr ,fr_lagf ,llagf ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,
8486 c interfaces%INTBUF_TAB ,h3d_data, python, nodes)
8494 IF (impdeb==1.AND.imconv==0)
THEN
8495 IF (ncycle>=ndeb0.AND.ncycle<=ndeb1)
THEN
8497 IF ((irad2r==1).AND.(iresp==1))
THEN
8502 tt_double = tt_double + ttmp
8503 IF (impl_s==1.OR.neig>0)
THEN
8507 tt = sngl(tt_double)
8518 IF( ( anim_ce(2156)/=0 .OR. h3d_data%SH_SCAL_ERR_THK /=0)
8519 . .AND.((tt>=tanim .AND. tt<=tanim_stop
8520 . (manim>=4.AND.manim<=15)))
THEN
8528 itsk = omp_get_thread_num()
8529 nodftsk = 1+itsk*numnod/ nthread
8530 nodltsk = (itsk+1)*numnod/nthread
8532 CALL err_thk(element%SHELL%IXC ,ixtg ,iparg ,nodes%BOUNDARY_ADD,nodes%BOUNDARY ,
8533 . nodes%WEIGHT ,nodes%X ,elbuf_tab,ipart ,ipart(k3) ,
8534 . ipart(k8) ,itsk ,nodftsk ,nodltsk ,err_thk_sh4,
8535 . err_thk_sh3,sh4tree,sh3tree,
8536 . area_sh4, area_sh3, area_nod,
8537 . thick_sh4, thick_sh3, thick_nod)
8543 k1=1+lipart1*(npart+nthpart)+2*9*(npart+nthpart)
8552 CALL funct_python_update_elements(python, ispmd,
8553 . n2d, ngroup, nixc, nixtg, nixs,nixq,
8554 . numgeo, numelc, numeltg, numels, numelq, nummat, numnod,
8555 . nparg, npropg, npropm, npropmi, npropgi,
8556 . snercvois, snesdvois, slercvois, slesdvois,
8557 . sthke, seani, npart,
8558 . elbuf_tab ,iparg ,geo ,
8559 . element%SHELL%IXC,ixtg, ixs ,ixq ,pm ,bufmat ,
8562 . nodes ,w ,ale_connectivity,
8567 . mat_elem%MAT_PARAM, fani_cell,glob_therm%ITHERM)
8578 ELSEIF(idtmins==2.OR.idtmins_int/=0)
THEN
8580 IF (imon>0)
CALL startime(timers,39)
8584 itsk = omp_get_thread_num()
8585 nodftsk = 1+itsk*numnod/ nthread
8586 nodltsk = (itsk+1)*numnod/nthread
8589 1 itsk ,nodftsk ,nodltsk ,nodxi_sms
8590 2 nodes%MS ,jad_sms ,jdi_sms ,lt_sms ,indx1_sms,
8591 3 diag_sms ,nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,nodes%WEIGHT
8592 4 nodes%A ,x_sms ,y_sms ,z_sms
8593 5 nodes%ICODT ,nodes%ICODR ,nodes%ISKEW ,skews%SKEW ,ibfv ,
8594 6 vel ,npc ,tf ,nodes%X ,nodes%D ,
8595 7 sensors ,iframe ,xframe ,jadi_sms ,
8596 8 jdii_sms ,lti_sms ,iskyi_sms
8598 a nodreac ,fthreac ,nodes%AR ,nodes%VR ,
8599 b nodes%DR ,nodes%IN ,rby ,irbe2 ,lrbe2 ,
8600 c iad_rbe2 ,fr_rbe2m ,nmrbe2 ,r2size ,rbe3%IRBE3 ,
8601 d rbe3%LRBE3 ,rbe3%FRBE3 ,rbe3%mpi%IAD_RBE3,rbe3%mpi%FR_RBE3 ,rbe3%mpi%FR_RBE3MP ,
8602 e rbe3%RRBE3 ,rbe3%RRBE3_PON,iad_rby ,fr_rby6 ,rby6 ,
8603 f lpby ,tagmsr_rby_sms,rbe3%irotg_sz,nodii_sms,indx2_sms,
8604 g ibcscyc ,lbcscyc ,output, mskyi_fi_sms,list_sms,
8605 h list_rms ,sms_vfi,sz_mw6,mw6)
8609 IF (imon>0)
CALL stoptime(timers,39)
8620 IF (icrack3d > 0 .AND. nlevset > 0)
THEN
8622 . iparg ,element%SHELL%IXC ,ngrouc ,igrouc ,iel_crk ,
8624 . fr_edge,fr_nbedge,nodes%BOUNDARY ,nxlaymax,inod_crk ,
8625 . crkedge,xedge4n ,xedge3n )
8636 IF(alefvm_param%IEnabled>0)
THEN
8644 1 itsk , nodftsk , nodltsk , numntsk, ndtsk ,
8645 2 ipmtsk , partftsk, partltsk, nwaftsk, igmtsk ,
8650 IF(iparit == 1) ndtsk = 1
8652 1 nodes%X , nodes%V ,
8654 3 ale_connectivity , iparg , ixs ,
8655 4 ale_connectivity%NALE ,
8656 5 itsk ,nodftsk , nodltsk ,ipm , nv46 ,msnf )
8664 IF (imon>0)
CALL startime(timers,timer_io
8666 IF(comptreac/=0.AND.(impl_s==0 .OR. inconv==1))
THEN
8670 itsk = omp_get_thread_num()
8671 nodftsk = 1+itsk*numnod
8672 nodltsk = (itsk+1)*numnod/nthread
8677 CALL reaction_forces_3(nodftsk,nodltsk,nodes%A,nodes%AR,nodes%MS,nodes%IN,freac)
8682 IF (imon>0)
CALL stoptime(timers,timer_io)
8688 IF (imon>0)
CALL startime(timers,macro_timer_genh3d1)
8689 l1 = 1+nixs*numels + nsvois*nixs
8692!$omp parallel private(itsk,nodftsk,nodltsk)
8694 itsk = omp_get_thread_num()
8698 CALL upd_tmax(elbuf_tab,iparg ,geo ,pm ,
8700 . element%SHELL%IXC ,ixtg ,ixt ,ixp ,ixr ,
8701 . nodes%X ,nodes%D ,nodes%V ,nodes%BOUNDARY_ADD,nodes%BOUNDARY ,
8702 . nodes%WEIGHT ,ipm ,igeo ,stack ,itsk )
8705 IF (imon>0)
CALL stoptime(timers,macro_timer_genh3d1)
8718 l1 = 1+nixs*numels + nsvois*nixs
8722 IF (tt<=tstop.AND.ilastanim==3)
THEN
8725 IF (tt<=tstop.AND.ilastdynain==3)
THEN
8728 IF (tt<=tstop.AND.ilasth3d==3)
THEN
8732 IF ((tt>tanim .AND. tt<=tanim_stop).AND.ilastanim==0)
THEN
8734 lastanimcycle=ncycle
8737 IF (tt>tstat.AND.ilastanim==0)
THEN
8739 laststatcycle=ncycle
8741 IF (tt>dynain_data%TDYNAIN.AND.ilastdynain==0)
THEN
8745 IF (tt>h3d_data%TH3D.AND.ilasth3d==0)
THEN
8750 IF(debug(macro_debug_chksm) >0)
THEN
8751 IF(mod(ncycle,debug(macro_debug_chksm)) == 0 )
THEN
8752 CALL spmd_flush_accel(ncycle, ispmd, nspmd, numnod,
8753 . numnodg, numnodm, nodes%A, nodes%ITAB,
8754 . nodes%WEIGHT, nodes%NODGLOB)
8758 IF(sh_offset_tab%NNSH_OSET > 0)
THEN
8759 CALL assign_ptrx(ptrx, nodes%X,numnod)
8760 CALL assign_ptrx(ptrx_offset, xyz,numnod)
8761 ELSEIF (impl_s > 0 .AND. ismdisp >0)
THEN
8762 CALL assign_ptrx(ptrx, impbuf_tab%X_A,numnod)
8763 CALL assign_ptrx(ptrx_offset, xyz ,numnod)
8765 CALL assign_ptrx(ptrx, nodes%X,numnod)
8766 CALL assign_ptrx(ptrx_offset, nodes%X,numnod)
8770 1 pm ,nodes%D ,nodes%V ,ale_connectivity ,w ,
8771 2 elbuf ,iparg ,ixs ,ixq ,element%SHELL%IXC,
8772 3 ixt ,ixp ,ixr ,ixtg ,wa ,
8773 4 nodes%ITAB ,ptrx ,geo ,nodes%MS ,nodes%A ,
8774 5 fani ,partsav ,icut ,xcut ,
8775 6 fani(1,1+nfia),fani(1,1+nfea) ,fani(1,1+nfoa) ,anin ,lpby ,
8776 7 npby ,nstrf ,rwbuf ,nprw ,ebcs_tab ,
8777 8 tani ,inoise ,bufnois ,rby ,neflsw ,
8778 9 nnflsw ,crflsw ,flsw ,lout ,nodes
8779 b fsav ,skews%SKEW ,elbuf_tab ,cluster ,
8780 c nodes%VR ,nodes%IN ,nodes%WEIGHT ,fcluster ,mcluster ,
8781 d dd_iad ,dmas ,accelm ,gauge ,
8782 e ipari ,eani ,ipart ,mat_elem%MAT_PARAM ,
8784 g nom_opt ,nodes%AR ,igrsurf ,bufsf ,idata ,
8786 i kxsp ,ixsp ,nod2sp ,spbuf ,nodes%DR,
8787 j fsavd ,lrivet ,rivet ,iskwn ,iframe ,
8788 m xframe ,ixs(l1) ,ixs(l2) ,ixs(l3) ,ndma ,
8789 n monvol ,volmon ,ipm ,igeo
8790 . nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,
8791 u fr_rby2 ,iad_rby2 ,fr_wall ,fr_sec ,fxbipm ,fxbrpm ,
8792 v ndin ,fxbdep ,fxbvit ,fxbacc ,iflow ,
8793 w rflow ,ipartl ,npartl ,iaccp ,naccp ,
8794 x fasolfr ,fani(1,nfnca+1),fani(1,nftca+1),ipart(i15ath) ,
8795 y fr_mv ,ipart_state ,sh4tree ,sh3tree ,nodes%TEMP ,
8796 z thke ,err_thk_sh4 ,err_thk_sh3,
8797 a inod_pxfem ,fthreac ,nodreac ,gresav ,
8798 b diag_sms ,sh4trim ,sh3trim ,fani(1,1+nft2) ,xmom_sms ,
8799 c irbe2 ,rbe3%IRBE3 ,lrbe2 ,rbe3%LRBE3 ,fr_rbe2 ,
8800 d rbe3%mpi%FR_RBE3 ,iad_rbe2 ,dxancg ,iel_pxfem ,zi_ply ,
8801 e vflow ,fcontg ,fncontg ,ftcontg ,freac ,
8802 f inod_crk ,iel_crk ,elcutc ,iadc_crk ,anin(ndama2+1),
8803 g res_sms ,sensors ,
8804 h qfricint ,igaup ,ngaup ,nodes%WEIGHT_MD ,ncont ,
8805 i indexcont ,nodglobxfe ,nodedge ,xfem_tab
8806 j nv46 ,rthbuf ,kxig3d ,ixig3d ,knot ,
8807 k wige ,nercvois ,nesdvois ,lercvois ,lesdvois ,
8808 l crkedge ,stack ,isphio ,vsphio ,nodes%ICODE ,
8809 m indx_crk ,xedge4n ,xedge3n ,sph2sol ,stifn_tmp ,
8810 n stifr_tmp ,drape_sh4n ,drape_sh3n ,ms_2d ,multi_fvm ,
8811 o segquadfr ,h3d_data ,nodes%ISKEW ,pskids ,iskwp ,
8812 p knotlocpc ,knotlocel ,pinch_data ,tag_skins6 ,irunn_bis ,
8813 q tf ,npc ,dynain_data ,fcont_max ,mds_matid ,
8814 r fani(1,nfnca2+1),fani(1,nftca2+1),ibcl ,iloadp ,lloadp ,
8815 s loadp ,tagncont ,loadp_hyd_inter,forc ,drapeg ,
8816 t user_windows ,output ,dt ,output%TH%TH_SURF%CHANNELS ,
8817 u table ,loads ,sfani ,iparit ,ptrx_offset ,
8818 v sz_npcont2 ,npcont2 ,glob_therm ,pblast ,output%TH%WFEXT)
8820 IF((mstop == 1 .AND. ictlstop == 0) .OR. mstop == 2 .OR. dt2<=zero)
THEN
8822 1 nodes%V ,nodes%NODGLOB ,nodes%WEIGHT ,nodes%ITAB ,nodes%MS ,
8830 IF(coupling%active)
CALL coupling_advance(coupling,dt2)
8838 IF (ilastanim==1)
THEN
8841 IF (ilasth3d==1)
THEN
8844 IF(t1s==tt)ncycle=ncycle+1
8846 IF ((irad2r==1).AND.(iresp==1))
THEN
8851 tt_double = tt_double + dt2
8852 IF (impl_s==1.OR.neig>0)
THEN
8856 tt = sngl(tt_double)
8863 IF (imadcpl /= 1)
THEN
8864 IF (dtanim>zero)
THEN
8865 IF (tt>tstop.AND.ilastanim==0
8866 . .AND.abs((tt-tanim)/dtanim)<em03)
THEN
8870 IF (tt>tstop.AND.ilastanim==0.AND.
8871 . (ncycle-lastanimcycle)>=100)
THEN
8877 IF (dtstat>zero)
THEN
8878 IF (tt>tstop.AND.ilastanim==0
8879 . .AND.abs((tt-tstat)/dtstat)<em03)
THEN
8883 IF (tt>tstop.AND.ilastanim==0.AND.
8884 . (ncycle-laststatcycle)>=100)
THEN
8890 IF (dynain_data%DTDYNAIN>zero)
THEN
8891 IF (tt>tstop.AND.ilastdynain==0
8892 . .AND.abs((tt-dynain_data%TDYNAIN)/dynain_data%DTDYNAIN)<em03)
THEN
8894 dynain_data%TDYNAIN=tt-em10
8896 IF (tt>tstop.AND.ilastdynain==0.AND.
8897 . (ncycle-lastdyncycle)>=100)
THEN
8899 dynain_data%TDYNAIN=tt-em10
8903 IF (h3d_data%DTH3D>zero)
THEN
8904 IF (tt>tstop.AND.ilasth3d==0
8907 h3d_data%TH3D=tt-em10
8909 IF (tt>tstop.AND.ilasth3d==0.AND.
8910 . (ncycle-lasth3dcycle)>=100)
THEN
8912 h3d_data%TH3D=tt-em10
8921 IF (impdeb==1.AND.imconv==0)
THEN
8922 IF (ncycle>=ndeb0.AND.ncycle<=ndeb1)
THEN
8923 IF ((irad2r==1).AND.(iresp==1))
THEN
8924 tt_dp=tt_dp-ttmp-dt2
8928 tt_double = tt_double - ttmp - dt2
8929 IF (impl_s==1.OR.neig>0)
THEN
8930 tt = tt - ttmp - dt2
8933 tt = sngl(tt_double)
8943 CALL python_update_time(tt,dt2)
8950 IF (imon>0)
CALL startime(timers,34)
8956 IF (imp_chk > 0)
THEN
8958 1 nodes%ICODE ,nodes%ISKEW ,iskwn ,ipart ,ixtg ,ixs ,ixq ,
8959 2 element%SHELL%IXC,ixt ,ixp
8960 3 npc ,ibcl ,ibfv ,sensors%SENSOR_TAB,nnlink ,lnlink ,iparg ,igrv,
8961 4 ipari ,interfaces%INTBUF_TAB,nprw ,iconx ,npby ,lpby ,lrivet ,
8962 5 nstrf ,ljoint,nodes%ICODT ,nodes%ICODR,interfaces%PON%ISKY,element%PON%ADSKY,element%PON%IAD_CONLD,
8963 6 ilink ,llink ,nodes%WEIGHT,itask ,ibvel ,lbvel ,fbvel,
8964 7 nodes%X ,nodes%D ,nodes%V ,nodes%VR ,nodes%DR ,thke ,damp ,nodes%MS,
8965 8 nodes%IN ,pm ,skews%SKEW ,geo ,eani ,bufmat ,bufgeo ,bufsf,
8966 9 tf ,forc ,vel ,fsav ,agrv ,fr_wave,parts0 ,
8967 a elbuf ,rby ,rivet ,nodes%BOUNDARY ,nodes%BOUNDARY_ADD ,nsensor ,
8968 b wa ,nodes%A ,nodes%AR ,nodes%STIFN ,nodes%STIFR,partsav,element%PON%FSKY,
8969 c interfaces%PON%FSKYI,iframe ,xframe ,w16 ,iactiv ,element%PON%FSKYM,igeo,ipm ,
8970 d output%TH%WFEXT ,nodft ,nodlt ,nt_imp ,num_imp ,ns_imp ,ne_imp,ind_imp,
8973 n dirul ,lgrav ,rbe3%IRBE3 ,rbe3%LRBE3 ,rbe3%FRBE3 ,
8974 o frwl6 ,irbe2 ,lrbe2 ,icfield ,lcfield ,cfield ,elbuf_tab,
8975 p nodes%WEIGHT_MD ,stack,sensors%SFSAV ,sensors%FSAV,sensors%STABSEN ,sensors%TABSENSOR
8976 q drape_sh3n ,h3d_data ,nddl0
8977 r drapeg ,output%TH%TH_SURF ,dpl0cld ,vel0cld ,snpc ,stf , output%TH%WFEXT_MD,igrsurf)
8979 ELSEIF ((tt<=tstop.OR.(tt-tstop)<em10).AND.ibuck==0)
THEN
8985 1 nodes%ICODE ,nodes%ISKEW ,iskwn ,ipart ,ixtg ,ixs ,ixq ,
8986 2 element%SHELL%IXC ,ixt ,ixp ,ixr ,ixtg1 ,nodes%ITAB ,nodes%ITABM1 ,
8987 3 npc ,ibcl ,ibfv ,sensors%SENSOR_TAB,nnlink ,lnlink ,iparg ,igrv ,
8988 4 ipari ,interfaces%INTBUF_TAB,nprw ,iconx ,npby,lpby ,lrivet ,
8989 5 nstrf ,ljoint ,nodes%ICODT ,nodes%ICODR ,interfaces%PON%ISKY ,element%PON%ADSKY,element%PON%IAD_CONLD
8990 6 ilink ,llink ,nodes%WEIGHT ,itask ,ibvel ,lbvel ,fbvel ,
8991 7 nodes%X ,nodes%D ,nodes%V ,nodes%VR ,nodes%DR ,thke ,damp ,nodes%MS ,
8992 8 nodes%IN ,pm ,skews ,geo ,eani ,bufmat ,bufgeo ,bufsf ,
8993 9 tf ,forc ,vel ,fsav ,agrv ,fr_wave,parts0 ,
8994 a elbuf ,rby ,rivet,nodes%BOUNDARY,nodes%BOUNDARY_ADD,
8995 b wa ,nodes%A ,nodes%AR ,nodes%STIFN ,nodes%STIFR ,partsav,element%PON%FSKY ,
8996 c interfaces%PON%FSKYI ,iframe ,xframe ,w16 ,iactiv ,element%PON%FSKYM ,igeo ,ipm ,
8997 d output%TH%WFEXT ,nodft ,nodlt ,nt_imp ,num_imp,ns_imp ,ne_imp ,ind_imp,
8998 l it ,rwbuf ,lprw ,fr_wall,nbintc ,intlist,
8999 m fani(1,1+nfoa+2*(nsect+nrbody)),rwsav ,fsavd ,
9000 n graphe , fac_k ,ipiv_k ,nkcond,nsensor,
9001 o monvol ,igrsurf,fr_mv ,volmon ,dirul,
9002 p nodes%NODGLOB,mumps_par,cddlp ,isendto,ircvfrom,newfront,imsch ,
9003 q i2msch ,isizxv,ilenxv ,islen7 ,irlen7 ,islen11,irlen11,islen17,
9004 r irlen17,irlen7t,islen7t,kinet ,num_imp1,nodes%TEMP ,dt2prev,wa ,
9005 s lgrav ,sh4tree,sh3tree,irlen20,islen20,irlen20t,islen20t,
9006 t irlen20e,islen20e,rbe3%IRBE3,rbe3%LRBE3 ,rbe3%FRBE3 ,fr_i2m,iad_i2m,rbe3%mpi%FR_RBE3,
9007 u rbe3%mpi%IAD_RBE3,frwl6,irbe2 ,lrbe2,intbuf_tab_cp,
9008 w nodes%IKINE ,diag_sms,icfield,lcfield,cfield,count_remslv,
9009 x count_remslve,elbuf_tab,elbuf_imp,nodes%XDP,nodes%WEIGHT_MD , stack ,
9010 y sensors%SFSAV,sensors%FSAV,sensors%STABSEN,sensors%TABSENSOR,drape_sh4n , drape_sh3n,
9011 z h3d_data,multi_fvm,igrbric,igrsh4n,igrsh3n,igrbeam,forneqs,maxdgap,
9012 a nddl0 ,nnzk0 ,it_t ,impbuf_tab,cptreac,fthreac,nodreac, drapeg,
9013 b interfaces,output%TH%TH_SURF,dpl0cld,vel0cld,snpc,stf,glob_therm,output%TH%WFEXT_MD)
9015 WRITE(6,*) __line__,
"Fatal error: MUMPS required"
9020 IF (nbuck>0) ibuck=1
9021 ELSEIF (ibuck>0)
THEN
9023#if defined(MUMPS5) && defined(DNC)
9024 IF (impl_s > 0 .AND. ismdisp >0)
THEN
9025 call assign_ptrx(ptrx,impbuf_tab%X_A,numnod)
9027 call assign_ptrx(ptrx,nodes%X,numnod)
9030 2 pm, geo, ipm, igeo, elbuf,
9031 3 ixs, ixq, element%SHELL%IXC,
9032 4 ixr, ixtg, ixtg1, iparg,
9033 5 tf, npc, fr_wave, w16, bufmat
9035 7 skews%SKEW, wa, nodes%ICODT, nodes%ICODR, nodes%ISKEW,
9036 9 ibfv, vel, lpby, npby, nodes%ITAB,
9039 e fani, icut, xcut, fani(1,1+nfia), fani(1,1+nfea),
9040 f fani(1,1+nfoa), anin, nstrf, rwbuf, nprw,
9041 g tani, dd_iad, eani, ipart,
9042 h nom_opt, igrsurf, bufsf, idata,
9043 i rdata, kxx, ixx, kxsp, ixsp,
9044 j nod2sp, spbuf, ixs(l1), ixs(l2), ixs(l3),
9045 k nodes%VR, monvol, volmon, nodes%NODGLOB, nodes%BOUNDARY_ADD,
9046 l nodes%BOUNDARY, fr_sec, fr_rby2, iad_rby2, fr_wall,
9047 m nodes%V, nodes%A, graphe, partsav , xframe ,
9049 o fsav(1,nfnca+1), fsav(1,nftca+1),nodes%TEMP ,sh4tree, sh3tree,
9050 p err_thk_sh4, err_thk_sh3 , iframe ,lprw , elbuf_tab,
9051 q fsav ,fsavd , rwsav ,nodes%AR , rbe3%IRBE3 ,
9052 r rbe3%LRBE3 ,rbe3%FRBE3 , fr_i2m ,iad_i2m , rbe3%mpi%FR_RBE3,
9053 s rbe3%mpi%IAD_RBE3,frwl6 , ibcl ,forc , irbe2 ,
9054 t lrbe2 ,iad_rbe2 , fr_rbe2 ,nodes%WEIGHT_MD,
9055 u cluster ,fcluster , mcluster ,xfem_tab ,
9057 w lercvois ,lesdvois ,crkedge ,stack
9058 x sensors%FSAV ,sensors%STABSEN,sensors%TABSENSOR,indx_crk ,xedge4n ,
9059 y xedge3n ,sph2sol ,stifn_tmp ,stifr_tmp , drape_sh4n ,
9060 z drape_sh3n ,h3d_data ,subsets ,igrnod , fcont_max,
9061 a fani(1,nfnca2+1),fani(1,nftca2+1),nddl0 ,nnzk0 ,impbuf_tab ,
9062 b drapeg ,mat_elem%MAT_PARAM ,glob_therm, output )
9064 WRITE(6,*) __line__,
"Fatal error: MUMPS required"
9069 IF (idyna==0.AND.itsk==0)
CALL cp_dm(numgeo,geo,igeo,dmcp,2)
9072 IF (ilastanim/=1)
THEN
9073 IF (iline/=1.AND.ispmd==0)
THEN
9076 WRITE(iout,1002)it_t
9077 WRITE(istdo,1002)it_t
9078 WRITE(iout,1003)it_bcs,it_pcg
9079 WRITE(istdo,1003)it_bcs,it_pcg
9082 tt =
min(tt,tstop+em10)
9085 IF (tt>tstop.AND.inconv==1)
THEN
9086 CALL imp_restarcp(nodes%X,nodes%V,nodes%VR,geo,igeo,dmcp,impbuf_tab)
9090 IF (imon>0)
CALL stoptime(timers,34)
9094 ELSEIF(ilag+iale+ieuler/=0)
THEN
9111 CALL srfvit(nodes%X,nodes%V,nodes%VR,nodes%A,nodes%AR,
9112 . npby ,rby ,nodes%MS ,nodes%IN ,
9121 IF (nconld > 0)
THEN
9123 . dpl0cld,vel0cld,nibcld,nconld,iroddl ,
9129 IF(user_windows%HAS_USER_WINDOW /= 0)
THEN
9132 user_windows%A_SAV(1,i)=nodes%A(1,i)*nodes%MS(i)
9133 user_windows%A_SAV(2,i)=nodes%A(2,i)*nodes%MS(i)
9134 user_windows%A_SAV(3,i)=nodes%A(3,i)*nodes%MS(i)
9138 user_windows%AR_SAV(1,i)=nodes%AR(1,i)*nodes%IN(i)
9139 user_windows%AR_SAV(2,i)=nodes%AR(2,i)*nodes%IN(i)
9140 user_windows%AR_SAV(3,i)=nodes%AR(3,i)*nodes%IN(i)
9156 itsk = omp_get_thread_num()
9157 nodftsk = 1+itsk*numnod/ nthread
9158 nodltsk = (itsk+1)*numnod/nthread
9163 1 nodes%A , nodes%AR , nodes%V , nodes%VR , fzero,
9164 2 nodes%ITAB,ale_connectivity%NALE )
9166 IF (nloc_dmg%IMOD
THEN
9168 nodft_nl = 1+ itsk*nloc_dmg%NNOD/nthread
9169 nodlt_nl = (itsk+1)*nloc_dmg%NNOD/nthread
9170 CALL nlocal_vel(nloc_dmg, nodft_nl ,nodlt_nl)
9173 IF(ialelag > 0)
THEN
9175 2 nodftsk,nodltsk ,wflow
9180 1 pinch_data%APINCH, pinch_data%VPINCH,
9181 2 nodftsk , nodltsk )
9188 IF (loads%NINIVELT > 0)
THEN
9190 length = numels + nsvois
9192 length = numelq + numeltg
9195 . ngrnod, ngrbric, ngrquad, ngrsh3n,
9196 . igrnod, igrbric, igrquad, igrsh3n,
9197 . numskw, lskew, numfram, sensors,
9198 . xframe,skews%SKEW, nodes%X, nodes%V,
9199 . nodes%VR, numnod, vflow, wflow,
9200 . w,multi_fvm, iale , ialelag,
9201 . tt, iroddl, loads%NINIVELT,loads%INIVELT,
9202 . nparg, ngroup, length, iparg,
9203 . elbuf_tab, nodes%MS, nodes%IN, nodes%WEIGHT,
9205 output%TH%WFEXT = output%TH%WFEXT + t_kin
9211 IF (ns10e > 0)
CALL s10cndv(icnds10,vnd ,nodes%V )
9217 IF(iplyxfem > 0)
THEN
9220 call omp_set_num_threads(nthread)
9222 itsk = omp_get_thread_num()
9223 nodftsk = 1+itsk*numnod/ nthread
9224 nodltsk = (itsk+1)*numnod/nthread
9226 CALL ply_vitesse(nodftsk,nodltsk,nplymax,inod_pxfem,numnod)
9229 call omp_set_num_threads(nthread)
9232 IF(imon>0)
CALL stoptime(timers,timer_integ)
9234 IF(iale+ieuler==0)
THEN
9239 IF(imon>0)
CALL startime(timers,timer_integ)
9247 itsk = omp_get_thread_num()
9248 nodftsk = 1+itsk*numnod/ nthread
9249 nodltsk = (itsk+1)*numnod/nthread
9251 CALL depla(nodes%V ,nodes%D ,nodes%X ,nodes%VR ,nodes%DR ,
9252 2 nodes%XDP,nodes%DDP
9254 CALL deplafakeige(nodes%X ,nodes%V ,interfaces%INTBUF_TAB, kxig3d,
9255 2 ixig3d,igeo, knot, wige,
9259 IF (nloc_dmg%IMOD > 0)
THEN
9261 nodft_nl = 1+ itsk*nloc_dmg%NNOD/nthread
9262 nodlt_nl = (itsk+1)*nloc_dmg%NNOD/nthread
9266 IF(ialelag > 0)
THEN
9267 CALL flow_depla(ale_connectivity%NALE, vflow ,dflow ,
9272 CALL deplapinch(pinch_data%VPINCH, pinch_data%DPINCH,
9273 2 pinch_data%XPINCH, nodftsk , nodltsk)
9278 IF(imon>0)
CALL stoptime(timers,timer_integ)
9291 itsk = omp_get_thread_num()
9292 nodftsk = 1+itsk*numnod/ nthread
9293 nodltsk = (itsk+1)*numnod/nthread
9295 1 geo ,nodes%X ,nodes%D ,nodes%V ,nodes%VR ,
9296 2 w ,wa ,wb ,skews%SKEW ,
9297 3 pm ,xlas ,nodes%MS ,fsav ,
9298 4 nodes%A ,tf ,rwbuf ,
9300 6 iparg ,ixs ,ixq ,nodpor ,
9301 7 nodes%ISKEW ,nodes%ICODT ,elbuf_tab ,
9302 8 npc ,linale ,nprw ,las ,
9303 9 ipari ,nodftsk ,nodltsk ,itsk ,
9304 a nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,nbrcvois ,nbsdvois ,lnrcvois ,
9305 b lnsdvois ,nodes%WEIGHT ,element%PON%ADSKY,element%PON%FSKY,element%PON%IADS,
9306 c fr_wall ,nporgeo ,element%PON%PROCNE
9307 d fr_nbcc ,element%PON%IADQ ,nodes%XDP ,igrnod ,
9308 e nodes%DR ,interfaces%INTBUF_TAB ,multi_fvm ,
9309 f ale_connectivity,nodes%DDP ,ne_nercvois ,ne_nesdvois ,
9310 g ne_lercvois ,ne_lesdvois ,xcell ,xface , output%TH%WFEXT)
9320 IF(imon>0)
CALL startime(timers,timer_integ)
9326!$omp parallel private(itsk,nodftsk,nodltsk)
9328 itsk = omp_get_thread_num()
9329 nodftsk = 1+itsk*numnod/ nthread
9330 nodltsk = (itsk+1)*numnod/nthread
9332 CALL euldx(nodes%V,nodes%D,nodes%X,nodes%DDP,ale_connectivity%NALE,nodftsk,nodltsk)
9336 IF(imon>0)
CALL stoptime(timers,timer_integ)
9339 CALL python_sync(python%CONTEXT)
9340 CALL python_update_nodal_entities(numnod,nodes,x=nodes%X, d=nodes%D, dr=nodes%DR)
9341 IF(coupling%active)
THEN
9342 dt2max_coupling = dt2
9344 CALL coupling_sync(coupling,dt2,nodes,coupling_positions)
9347 IF (vipercoupling)
THEN
9349 CALL radiossviper_sendxve(numnod,neleml,viper%NUMELE,nparg,ngroup,viper%NUMON,viper%ivout
9350 . nodes%X,nodes%V,viper%ITABM1,viper%IXEM1
9351 CALL radiossviper_sendkill(mstop,tstop,viper%TSTOP)
9361 IF (icrack3d > 0)
THEN
9362 IF (nlevset > 0)
THEN
9365 . iparg ,element%SHELL%IXC ,ngrouc ,igrouc ,ixtg ,
9366 . iadc_crk ,iel_crk ,inod_crk ,elcutc ,nodedge ,
9367 . enrtag ,crkedge ,xedge4n ,xedge3n )
9370 .
CALL spmd_crk_adv(nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,inod_crk ,enrtag)
9377 itsk = omp_get_thread_num()
9378 nodftsk = 1+itsk*numnod/ nthread
9381 CALL upenr_crk(adsky_crk,inod_crk ,nodftsk ,nodltsk ,
9387 . iparg ,element%SHELL%IXC ,ngrouc ,igrouc ,ixtg ,
9388 . iadc_crk ,iel_crk ,inod_crk ,elcutc ,nodedge ,
9389 . enrtag ,crkedge ,xedge4n ,xedge3n ,nodes%ITAB
9390!$omp parallel private(itsk,nodftsk,nodltsk)
9391 itsk = omp_get_thread_num()
9392 nodftsk = 1+itsk*numnod/
9393 nodltsk = (itsk+1)*numnod/nthread
9395 CALL crk_vitesse(adsky_crk,inod_crk ,nodlevxf ,nodftsk ,nodltsk ,
9396 . nodes%X ,nodes%V ,nodes%VR ,nodes%A ,nodes%AR ,
9404 CALL crk_vitesse2(iparg ,ngrouc ,igrouc ,elcutc ,crkedge ,
9405 . nodedge ,element%SHELL%IXC ,ixtg ,xedge4n ,xedge3n ,
9406 . iadc_crk ,iel_crk ,inod_crk ,nodes%ITAB )
9411 CALL spmd_exch_crkvel(nodes%BOUNDARY_ADD ,nodes%BOUNDARY ,inod_crk ,nodes%ITAB ,
9412 . nodes%X ,nodes%V ,nodes%VR )
9419 itsk = omp_get_thread_num()
9420 nodftsk = 1+itsk*numnod/ nthread
9421 nodltsk = (itsk+1)*numnod/nthread
9422 CALL crk_zero_accel(adsky_crk,inod_crk ,nodftsk ,nodltsk ,nodlevxf )
9430 CALL upxfem2(iparg ,element%SHELL%IXC ,ngrouc ,igrouc ,iadc_crk ,
9431 . iel_crk ,elcutc ,ixtg ,enrtag ,inod_crk ,
9432 . nodes%BOUNDARY_ADD ,nodes%BOUNDARY,iad_edge,fr_edge ,fr_nbedge ,
9443 itsk = omp_get_thread_num()
9444 nodftsk = 1+itsk*numnod/ nthread
9445 nodltsk = (itsk+1)*numnod/nthread
9446 CALL crk_coord_ini(adsky_crk,inod_crk ,nodftsk,nodltsk,nodes%X ,
9457 IF(nintstamp/=0)
THEN
9459 . nodes%V ,nodes%VR ,nodes%MS ,nodes%X ,nodes%D ,
9464 IF( multi_fvm%IS_INT18_LAW151 )
THEN
9465 IF(nspmd>1.AND. iparit/=0)
THEN
9475 itsk = omp_get_thread_num()
9477 1 igroups,iparg ,elbuf_tab,multi_fvm%FORCE_INT ,
9478 2 nodes%X , nodes%V , nodes%MS , kinet ,
9479 3 multi_fvm%X_APPEND,multi_fvm%V_APPEND,multi_fvm%MASS_APPEND,multi_fvm%KINET_APPEND)
9485 itsk = omp_get_thread_num()
9492 IF( multi_fvm%IS_USED )
THEN
9494 IF (debug(macro_debug_acc)==1)
THEN
9500 IF ( ncycle>=debstart .AND.
9501 . mod(ncycle-debstart,rstfreq)==0 )
THEN
9505 IF(debug(macro_debug_chksm) >0)
THEN
9517 IF(interfaces%PARAMETERS%INTCAREA > 0)
THEN
9523 . nodes%BOUNDARY_ADD,nodes%BOUNDARY ,nodes%WEIGHT
9524 . ixs(l1) ,interfaces%PARAMETERS%INTAREAN)
9530 IF (int24use == 1)
THEN
9535 . nodes%X,nodes%V,nodes%MS,nodes%ITAB,xyz,numnod,sh_offset_tab%nnsh_oset)
9544 IF(imon>0)
CALL startime(timers,13)
9546 1 nodes%X ,nodes%D ,nodes%V ,nodes%VR ,nodes%MS ,
9547 2 nodes%IN ,nodes%BOUNDARY_ADD,nodes%BOUNDARY,nodes%WEIGHT,imsch,
9548 3 w ,isizxv ,ilenxv ,nodes%XDP)
9549 IF (imonm > 0)
CALL startime(timers,23)
9550 l1 = 1+nixs*numels + nsvois*nixs
9554 IF (sh_offset_tab%NNSH_OSET > 0)
THEN
9555 CALL assign_ptrx(ptrx,xyz,numnod)
9556 ELSEIF (impl_s > 0 .AND. ismdisp >0)
THEN
9557 CALL assign_ptrx(ptrx,impbuf_tab%X_A,numnod)
9559 CALL assign_ptrx(ptrx,nodes%X,numnod)
9563 1 ipari ,ptrx ,nodes%V ,nodes%MS ,
9564 2 imsch ,i2msch ,dt2prev ,intlist ,nbintc ,
9565 3 islen7 ,irlen7 ,islen11 ,irlen11 ,islen17 ,
9566 4 irlen17 ,ixs ,ixs(l3) ,nsensor ,
9567 5 igrbric ,nodes%TEMP ,1 ,irlen7t ,islen7t ,
9568 6 irlen20 ,islen20,irlen20t,islen20t,irlen20e,
9569 7 islen20e,nodes%IKINE ,diag_sms,sensors%SENSOR_TAB,interfaces%INTBUF_TAB ,int24e2euse,
9570 8 forneqs ,multi_fvm,interfaces)
9571 IF (imonm > 0)
CALL stoptime(timers,23)
9572 IF (imon>0)
CALL stoptime(timers,13)
9575 IF (int24use == 1)
THEN
9576 IF (imon>0)
CALL startime(timers,timer_contfor)
9578 * nodes%BOUNDARY_ADD, nodes%BOUNDARY ,intlist ,nbintc,
9579 * iad_i24 ,fr_i24 ,sfr_i24,i24maxnsne,3,
9581 IF (imon>0)
CALL stoptime(timers,timer_contfor)
9584 IF(nintstamp /= 0.AND.ftempvar21==1.AND.nspmd>1)
THEN
9585 CALL spmd_i21tempcom(ipari,nodes%TEMP,interfaces%INTBUF_TAB,nsensor,sensors%SENSOR_TAB)
9588 IF(numfram/=0.AND.n2d==0)
THEN
9593 IF (imonm > 0)
CALL startime(timers,49)
9596 . nodes%VR ,nodes%AR ,nodes%D )
9598 CALL movfra2(xframe ,iframe ,nodes%X ,nodes%V ,nodes%VR ,
9601 IF (imonm > 0)
CALL stoptime(timers,49)
9602 IF (imon>0)
CALL stoptime(timers,6)
9605 IF (glob_therm%IDT_THERM == 1.AND.(tstop-tt)<=em20)
THEN
9609#if defined(MYREAL8) && !defined(WITHOUT_LINALG)
9622 stop_or_add_cycle = 0
9623 bool_restart=.false.
9626 IF (((tt>tstop).OR.(mstop_dt_therm==1)).AND.imconv==1)
THEN
9627 stop_or_add_cycle = 1
9629 bool_restart = ((ilastanim==0.OR.ilastanim==1.OR.ilastanim==3).AND. restart_file==1)
9634 IF (ale%SUB%IFSUB==0.AND.imconv==1 .AND. restart_file==1.AND.
9635 . (ncycle/ncrst)*ncrst==ncycle.AND. irad2r==0 .OR.mrest==1.OR.(wmcheck==1.AND.ncycle/=1) )
THEN
9636 stop_or_add_cycle = 0
9637 bool_restart = .true.
9642 filnam =
'CHECK_DATA'
9643 OPEN(unit=icheckd,file=filnam,access=
'SEQUENTIAL',form=
'FORMATTED',status=
'UNKNOWN')
9644 WRITE(icheckd, fmt=
'(3A, I1)') '/rerun/
',ROOTNAM(1:ROOTLEN),'/
',IRUN
9649 IF (BOOL_RESTART) THEN
9650 IF(IMON>0) CALL STARTIME(TIMERS,TIMER_IO)
9652 IF (GLOB_THERM%IDT_THERM == 1)CALL BCSDTTH_COPY(NODES%ICODT, NODES%ICODR, ICODT0, ICODR0, 2)
9654 CALL BCSN(NODES%ICODE,NODES%ICODT,NODES%ICODR,PARTS0,PARTSAV)
9656 IF (INT24USE == 1)THEN
9657 ! E2E Update Fictive Node Position, Velocity, Mass
9658 ! To do before SPMD_I7XVCOM2
9659 CALL I24E2E_FICTIVE_NODES_UPDATE(INTLIST,NBINTC,IPARI,INTERFACES%INTBUF_TAB,
9660 . NODES%X,NODES%V,NODES%MS,NODES%ITAB,
9661 . XYZ,NUMNOD,SH_OFFSET_TAB%nnsh_oset)
9664 ! Interface communication : Send updates to remote nodes - finalizatoin
9665 ! Need here for coherent Restart writing
9667 L1 = 1+NIXS*NUMELS + NSVOIS*NIXS
9671 1 IPARI ,NODES%X ,NODES%V ,NODES%MS ,
9672 2 IMSCH ,I2MSCH ,DT2PREV ,INTLIST ,NBINTC ,
9673 3 ISLEN7 ,IRLEN7 ,ISLEN11 ,IRLEN11 ,ISLEN17 ,
9674 4 IRLEN17 ,IXS ,IXS(L3) ,NSENSOR ,
9675 5 IGRBRIC ,NODES%TEMP ,2 ,IRLEN7T ,ISLEN7T ,
9676 6 IRLEN20 ,ISLEN20,IRLEN20T,ISLEN20T,IRLEN20E,
9677 7 ISLEN20E,NODES%IKINE ,DIAG_SMS,SENSORS%SENSOR_TAB,INTERFACES%INTBUF_TAB ,INT24E2EUSE,
9678 8 FORNEQS ,MULTI_FVM,INTERFACES)
9681 ! Finalize T24 Communication to fill Buffers before restarts
9682 IF (INT24USE == 1)THEN
9683 IF (IMON>0) CALL STARTIME(TIMERS,TIMER_CONTFOR)
9684 CALL SPMD_EXCH_I24(IPARI, INTERFACES%INTBUF_TAB ,NODES%ITAB ,
9685 * NODES%BOUNDARY_ADD, NODES%BOUNDARY ,INTLIST ,NBINTC,
9686 * IAD_I24 ,FR_I24 ,SFR_I24,I24MAXNSNE,3,
9689 CALL SPMD_EXCH_I24(IPARI, INTERFACES%INTBUF_TAB ,NODES%ITAB ,
9690 * NODES%BOUNDARY_ADD, NODES%BOUNDARY ,INTLIST ,NBINTC,
9691 * IAD_I24 ,FR_I24 ,SFR_I24,I24MAXNSNE,4,
9694 IF (IMON>0) CALL STOPTIME(TIMERS,TIMER_CONTFOR)
9697 ! INTERFACE 21 - Communication of nodal temperature
9698.AND..AND.
IF(NINTSTAMP /= 0FTEMPVAR21==1NSPMD>1) THEN
9699 CALL SPMD_I21TEMPCOM(IPARI,NODES%TEMP,INTERFACES%INTBUF_TAB,NSENSOR,SENSORS%SENSOR_TAB)
9702 ! Engine time for restart
9703 CALL ELAPSTIME(TIMERS,SECS)
9704 GLOBAL_COMP_TIME%ENGINE_TIME(GLOBAL_COMP_TIME%RUN_NBR) = SECS
9706 CALL WRRESTP(ELEMENT, NODES, AF ,IAF ,ICH ,ELEMENT%PON%ADSKY ,
9707 . ELBUF_TAB ,XFEM_TAB ,INTERFACES%INTBUF_TAB ,MULTI_FVM ,MAT_ELEM ,
9708 . H3D_DATA ,INTERFACES%INTBUF_FRIC_TAB ,SUBSETS ,PINCH_DATA ,ALE_CONNECTIVITY ,
9709 . T_MONVOL ,SENSORS , EBCS_TAB ,DYNAIN_DATA ,USER_WINDOWS ,
9710 . OUTPUT ,INTERFACES ,LOADS ,PYTHON ,NAMES_AND_TITLES ,
9711 . EIGIPM ,EIGIBUF ,EIGRPM ,NEIPM ,LEIBUF ,
9712 . NERPM ,IFLOW ,RFLOW ,LIFLOW ,LRFLOW ,
9713 . IMPBUF_TAB ,IMPL_S ,IMPL_S0 ,NODES%MCP ,NODES%TEMP ,
9714 . FORNEQS ,UNITAB ,STACK ,NDRAPE ,DRAPE_SH3N ,
9715 . DRAPE_SH4N ,DRAPEG ,RESTSIZE ,SKEWS ,GLOB_THERM ,
9719 IF (MULTIREST >0)THEN
9720 IF (RESTSIZE > MULTIRESTS(IRPREV))MULTIRESTS(IRPREV)=RESTSIZE
9722 IF (RESTSIZE > RESTARTFILESIZE) RESTARTFILESIZE=RESTSIZE
9725.AND..OR.
IF((IDDW/=0)(MSTOP/=0TT+DT2>=TSTOP)) THEN
9728 2 ELEMENT%SHELL%IXC,IXQ,IXT,IXP,IXTG,
9729 3 IXR,IXS,KXIG3D,IPM,
9730 4 IGEO,GEO,POIN_UMP,CPUTIME_MP,
9731 5 NBR_GPMP,CPUTIME_MP_GLOB,TAB_UMP,PM,
9732 6 BUFMAT,TABMP_L ,TAB_MAT )
9733 IF(IDDWSTAT/=0) THEN
9734 CALL PRINTIMEG(IPARG,PM,IPM,ELEMENT%SHELL%IXC,IXTG,IXS)
9738 IF(IMON>0) CALL STOPTIME(TIMERS,TIMER_IO)
9741 IF (STOP_OR_ADD_CYCLE==1) THEN
9743 ! End of Run / criteria if additional cycle is need to write Anim or H3D state
9745 ! ILASTANIM=0 No additional animation
9746 ! ILASTANIM=1 One more cycle needed
9747 ! ILASTANIM=2 Additional cycle done
9748 ! ILASTANIM=3 regular animation
9750.OR.
IF (ILASTANIM==2IRAD2R==1)THEN ! We are done / No magic - No additional Restart with Rad2rad run
9756 IF(MSTOP_DT_THERM==0) THEN
9757 IF (ILASTANIM==1) THEN
9759.OR.
ELSEIF (ILASTANIM==0ILASTANIM==3) THEN
9767 IF(MSTOP_DT_THERM==0) THEN
9768 IF (ILASTH3D==1) THEN
9770.OR.
ELSEIF (ILASTH3D==0ILASTH3D==3) THEN
9776.OR.
IF( STATE_ANIM == 1 STATE_H3D == 1 ) THEN
9779.OR.
ELSEIF( STATE_ANIM == 2 STATE_H3D == 2 ) THEN
9785 ! ------------------
9787 ! ------------------
9789 WRITE(IOUT,*)' **error : time step less or equal zero
'
9790 WRITE(ISTDO,*)' **error : time step less or equal zero
'
9792 IF ( ISTAMPING == 1) THEN
9793 WRITE(ISTDO,'(a)
')' the run has gone to divergence.
'
9794 WRITE(ISTDO,'(a)
')' it could be due to a wrong definition of
the interfaces between
the tools and
the blank.
'
9795 WRITE(ISTDO,'(a)
')' you may need to check
if there is
'
9796 WRITE(ISTDO,'(a)
')' and that they
do not penetrate each other during their travel.
'
9797 WRITE(IOUT, '(a)
')' the run has gone to divergence.
'
9798 WRITE(IOUT, '(a)
')' it could be due to a wrong definition of
the interfaces between
the tools and
the blank.
'
9799 WRITE(IOUT, '(a)
')' you may need to check
if there is enough clearance between
the tools,
'
9800 WRITE(IOUT, '(a)')
' and that they do not penetrate each other during their travel.'
9804 IF (int24use == 1)
THEN
9808 . nodes%X,nodes%V,nodes%MS,nodes%ITAB,
9809 1 xyz,numnod,sh_offset_tab%nnsh_oset)
9813 l1 = 1+nixs*numels + nsvois*nixs
9817 1 ipari ,nodes%X ,nodes%V ,nodes%MS ,
9818 2 imsch ,i2msch ,dt2prev ,intlist ,nbintc ,
9819 3 islen7 ,irlen7 ,islen11 ,irlen11 ,islen17 ,
9820 4 irlen17 ,ixs ,ixs(l3) ,nsensor ,
9821 5 igrbric ,nodes%TEMP ,2 ,irlen7t ,islen7t ,
9822 6 irlen20 ,islen20 ,irlen20t,islen20t,irlen20e,
9823 7 islen20e,nodes%IKINE ,diag_sms,sensors%SENSOR_TAB,interfaces%INTBUF_TAB ,int24e2euse ,
9824 8 forneqs ,multi_fvm,interfaces)
9827 IF(coupling%active)
THEN
9828 CALL coupling_ongoing(coupling, ongoing)
9832 CALL coupling_advance(coupling,dt2)
9833 CALL coupling_ongoing(coupling, ongoing)
9835 CALL coupling_finalize(coupling)
9838 IF(
ALLOCATED(isendto))
DEALLOCATE(isendto)
9839 IF(
ALLOCATED(ircvfrom))
DEALLOCATE(ircvfrom)
9840 IF(
ALLOCATED(intlist))
DEALLOCATE(intlist)
9841 IF(
ALLOCATED(intlist25))
DEALLOCATE(intlist25)
9842 IF(
ALLOCATED(niskyfi))
DEALLOCATE(niskyfi)
9843 IF(
ALLOCATED(niskyfie))
DEALLOCATE(niskyfie)
9844 IF(
ALLOCATED(fr_nbcc))
DEALLOCATE(fr_nbcc)
9845 IF(
ALLOCATED(fr_nbcci2))
DEALLOCATE(fr_nbcci2)
9846 IF(
ALLOCATED(dretri))
DEALLOCATE(dretri)
9847 IF(
ALLOCATED(xsec))
DEALLOCATE(xsec)
9848 IF(
ALLOCATED(irbkin_l))
DEALLOCATE(irbkin_l)
9849 IF(
ALLOCATED(icodt0))
DEALLOCATE (icodt0)
9850 IF(
ALLOCATED(icodr0))
DEALLOCATE(icodr0)
9851 IF(
ALLOCATED(element%PON%ISENDP))
DEALLOCATE(element%PON%ISENDP)
9852 IF(
ALLOCATED(element%PON%IRECVP))
DEALLOCATE(element%PON%IRECVP)
9853 IF(
ALLOCATED(irecvp_pxfem))
DEALLOCATE(irecvp_pxfem)
9854 IF(
ALLOCATED(isendp_crk))
DEALLOCATE(isendp_crk)
9855 IF(
ALLOCATED(irecvp_crk))
DEALLOCATE(irecvp_crk)
9856 IF(
ALLOCATED(cnel))
DEALLOCATE(cnel)
9857 IF(
ALLOCATED(addcnel))
DEALLOCATE(addcnel)
9858 IF(
ALLOCATED(addtmpl))
DEALLOCATE(addtmpl)
9859 IF(
ALLOCATED(tagel))
DEALLOCATE(tagel)
9860 IF(
ALLOCATED(ibufidel))
DEALLOCATE(ibufidel)
9861 IF(
ALLOCATED(indidel))
DEALLOCATE(indidel)
9862 IF(
ALLOCATED(ipartl))
DEALLOCATE(ipartl)
9863 IF(
ALLOCATED(eminx))
DEALLOCATE(eminx)
9865 DEALLOCATE(lsh4act,lsh4kin,psh4act,psh4kin,
9866 . lsh3act,lsh3kin,psh3act,psh3kin,
9868 IF(idel7ng>=1)
DEALLOCATE(tagtrimc,tagtrimtg)
9870 IF(
ALLOCATED(stifn_tmp))
DEALLOCATE(stifn_tmp)
9871 IF(
ALLOCATED(stifr_tmp))
DEALLOCATE(stifr_tmp)
9872 IF(
ALLOCATED(acnd))
DEALLOCATE(acnd)
9873 IF(
ALLOCATED(arcnd))
DEALLOCATE(arcnd)
9874 IF(
ALLOCATED(stcnd))
DEALLOCATE(stcnd)
9875 IF(
ALLOCATED(strcnd))
DEALLOCATE(strcnd)
9876 IF(
ALLOCATED(lsh4upl))
DEALLOCATE(lsh4upl)
9877 IF(
ALLOCATED(lsh3upl))
DEALLOCATE(lsh3upl)
9878 IF(
ALLOCATED(psh4upl))
DEALLOCATE(psh4upl)
9879 IF(
ALLOCATED(psh3upl))
DEALLOCATE(psh3upl)
9880 IF(
ALLOCATED(fthreac))
DEALLOCATE(fthreac)
9881 IF(
ALLOCATED(fthdtm))
DEALLOCATE(fthdtm)
9882 IF(
ALLOCATED(freac))
DEALLOCATE(freac)
9883 IF(
ALLOCATED(nodreac))
DEALLOCATE(nodreac)
9884 IF(
ALLOCATED(grth))
DEALLOCATE(grth)
9885 IF(
ALLOCATED(igrth))
DEALLOCATE(igrth)
9886 IF(
ALLOCATED(igroupc))
DEALLOCATE
9887 IF(
ALLOCATED(igrouptg))
DEALLOCATE(igrouptg)
9888 IF(
ALLOCATED(igroups))
DEALLOCATE(igroups)
9889 IF(
ALLOCATED(gresav))
DEALLOCATE(gresav)
9890 IF(
ALLOCATED(sfem_nodvar))
DEALLOCATE(sfem_nodvar)
9891 IF(
ALLOCATED(sfem_nodvar_ale))
DEALLOCATE(sfem_nodvar_ale)
9892 IF(
ALLOCATED(partsav2))
DEALLOCATE(partsav2)
9894 IF(nvolu > 0)
CALL fvstats(monvol)
9896 IF(imonm>0)
CALL printime_interf(interfaces%INTBUF_TAB,ipari,intlist,nbintc,timers%REALTIME(1)*0.01d0)
9908 parallel_section = 0
9916 IF((ncycle/ncrst)*ncrst/=ncycle.AND.
9917 2 mrest/=1.AND.wmcheck/=1.AND.nspmd>1)
THEN
9918 l1 = 1+nixs*numels + nsvois*nixs
9922 1 ipari ,nodes%X ,nodes%V ,nodes%MS ,
9923 2 imsch ,i2msch ,dt2prev ,intlist ,nbintc ,
9924 3 islen7 ,irlen7 ,islen11 ,irlen11 ,islen17 ,
9925 4 irlen17 ,ixs ,ixs(l3) ,nsensor ,
9926 5 igrbric ,nodes%TEMP ,2 ,irlen7t ,islen7t ,
9927 6 irlen20 ,islen20,irlen20t,islen20t,irlen20e,
9928 7 islen20e,nodes%IKINE ,diag_sms,sensors%SENSOR_TAB,interfaces%INTBUF_TAB,int24e2euse,
9929 8 forneqs ,multi_fvm,interfaces)
9932 IF(
ALLOCATED(isendto))
DEALLOCATE(isendto)
9933 IF(
ALLOCATED(ircvfrom))
DEALLOCATE(ircvfrom)
9934 IF(
ALLOCATED(intlist25))
DEALLOCATE(intlist25)
9935 IF(
ALLOCATED(niskyfi))
DEALLOCATE(niskyfi)
9936 IF(
ALLOCATED(niskyfie))
DEALLOCATE(niskyfie)
9937 IF(
ALLOCATED(fr_nbcc))
DEALLOCATE(fr_nbcc)
9938 IF(
ALLOCATED(fr_nbcci2))
DEALLOCATE(fr_nbcci2)
9939 IF(
ALLOCATED(dretri))
DEALLOCATE(dretri)
9940 IF(
ALLOCATED(xsec))
DEALLOCATE(xsec)
9941 IF(
ALLOCATED(irbkin_l))
DEALLOCATE(irbkin_l)
9942 IF(
ALLOCATED(isendp))
DEALLOCATE(isendp)
9943 IF(
ALLOCATED(element%PON%ISENDP))
DEALLOCATE(element%PON%ISENDP)
9944 IF(
ALLOCATED(element%PON%IRECVP))
DEALLOCATE(element%PON%IRECVP)
9945 IF(
ALLOCATED(irecvp_pxfem))
DEALLOCATE(irecvp_pxfem)
9946 IF(
ALLOCATED(isendp_crk))
DEALLOCATE(isendp_crk)
9947 IF(
ALLOCATED(irecvp_crk))
DEALLOCATE(irecvp_crk)
9949 IF(
ALLOCATED(cnel))
DEALLOCATE(cnel)
9950 IF(
ALLOCATED(addcnel))
DEALLOCATE(addcnel)
9951 IF(
ALLOCATED(addtmpl))
DEALLOCATE(addtmpl)
9952 IF(
ALLOCATED(tagel))
DEALLOCATE(tagel)
9953 IF(
ALLOCATED(ibufidel))
DEALLOCATE(ibufidel)
9954 IF(
ALLOCATED(indidel))
DEALLOCATE(indidel)
9956 IF(
ALLOCATED(ipartl))
DEALLOCATE(ipartl)
9957 IF(
ALLOCATED(eminx))
DEALLOCATE(eminx)
9959 DEALLOCATE(lsh4act,lsh4kin,psh4act,psh4kin,
9960 . lsh3act,lsh3kin,psh3act,psh3kin,
9962 IF(idel7ng>=1)
DEALLOCATE(tagtrimc,tagtrimtg)
9966 IF(
ALLOCATED(brick_list))
DEALLOCATE (brick_list)
9967 IF(
ALLOCATED(list_b_old))
DEALLOCATE (list_b_old)
9968 IF(
ALLOCATED(nbold))
DEALLOCATE (nbold)
9969 IF(
ALLOCATED(edge_list))
DEALLOCATE (edge_list)
9970 IF(
ALLOCATED(uvarl))
DEALLOCATE (uvarl)
9971 IF(
ALLOCATED(supercellvol_l))
DEALLOCATE (supercellvol_l)
9972 IF(
ALLOCATED(eint_l))
DEALLOCATE (eint_l)
9973 IF(
ALLOCATED(rho_l))
DEALLOCATE (rho_l)
9974 IF(
ALLOCATED(mom_l))
DEALLOCATE (mom_l)
9975 IF(
ALLOCATED(sig_l))
DEALLOCATE (sig_l)
9976 IF(
ALLOCATED(vold_l))
DEALLOCATE (vold_l)
9977 IF(
ALLOCATED(imergel))
DEALLOCATE (imergel)
9978 IF(
ALLOCATED(old_secndlist))
DEALLOCATE (old_secndlist)
9979 IF(
ALLOCATED(unlinked_cells_l))
DEALLOCATE (unlinked_cells_l)
9980 IF(
ALLOCATED(n_unlinked_l))
DEALLOCATE (n_unlinked_l)
9981 IF(
ALLOCATED(v22max_l))
DEALLOCATE (v22max_l)
9982 IF(
ALLOCATED(dx22min_l))
DEALLOCATE (dx22min_l)
9983 IF(
ALLOCATED(int22_fcell_anim))
DEALLOCATE (int22_fcell_anim)
9986 IF(
ALLOCATED(alefvm_buffer%WFEXT_CELL))
DEALLOCATE (alefvm_buffer%WFEXT_CELL)
9987 IF(
ALLOCATED(alefvm_buffer%FEXT_CELL))
DEALLOCATE (alefvm_buffer%FEXT_CELL)
9988 IF(
ALLOCATED(alefvm_buffer%FCELL))
DEALLOCATE (alefvm_buffer%FCELL)
9989 IF(
ALLOCATED(alefvm_buffer%FINT_CELL))
DEALLOCATE (alefvm_buffer%FINT_CELL)
9990 IF(
ALLOCATED(alefvm_buffer%VERTEX))
DEALLOCATE (alefvm_buffer%VERTEX)
9991 IF(
ALLOCATED(alefvm_buffer%F_FACE))
DEALLOCATE (alefvm_buffer%F_FACE)
9994 CALL pblast_deallocate(pblast)
9997 IF(
ALLOCATED(iadd_nl))
DEALLOCATE (iadd_nl)
9998 IF(
ALLOCATED(nbdof_nl))
DEALLOCATE (nbdof_nl)
9999 IF(
ALLOCATED(nllnk))
DEALLOCATE (nllnk)
10002 IF (nslipring > 0)
THEN
10004 DEALLOCATE(slipring(i)%FRAM)
10006 DEALLOCATE(slipring)
10008 IF (nretractor > 0)
THEN
10010 DEALLOCATE(retractor(i)%INACTI_NODE)
10012 IF (retractor(i)%IFUNC(k) > 0)
THEN
10013 DEALLOCATE(retractor(i)%TABLE(k)%X(1)%VALUES)
10014 DEALLOCATE(retractor(i)%TABLE(k)%X)
10015 DEALLOCATE(retractor(i)%TABLE(k)%Y%VALUES)
10016 DEALLOCATE(retractor(i)%TABLE(k)%Y)
10027 IF (multi_fvm%NS_DIFF)
THEN
10028 CALL diffusion%TERMINATE_DIFFUSION()
10032 IF(nebcs > 0)
CALL segvar%destroy()
10034 IF(
ALLOCATED(stifn_tmp))
DEALLOCATE(stifn_tmp)
10035 IF(
ALLOCATED(stifr_tmp)
DEALLOCATE
10036 IF(
ALLOCATED(acnd))
DEALLOCATE(acnd)
10037 IF(
ALLOCATED(arcnd))
DEALLOCATE(arcnd)
10038 IF(
ALLOCATED(stcnd))
DEALLOCATE(stcnd)
10039 IF(
ALLOCATED(strcnd))
DEALLOCATE(strcnd)
10040 IF(
ALLOCATED(lsh4upl))
DEALLOCATE(lsh4upl)
10041 IF(
ALLOCATED(lsh3upl))
DEALLOCATE(lsh3upl)
10042 IF(
ALLOCATED(psh4upl))
DEALLOCATE(psh4upl)
10043 IF(
ALLOCATED(psh3upl))
DEALLOCATE(psh3upl)
10044 IF(
ALLOCATED(err_thk_sh3))
DEALLOCATE(err_thk_sh3
10045 IF(
ALLOCATED(err_thk_sh4))
DEALLOCATE(err_thk_sh4
10046 DEALLOCATE(tagnod_sms,nativ_sms,nodxi_sms,tagprt_sms
10047 . indx1_sms, tagslv_rby_sms, tag_lnk_sms, nrwl_sms,
10048 . jad_sms, jdi_sms, jsm_sms,
10049 . jadc_sms,jads_sms,jads10_sms,jadt_sms,
10050 . jadp_sms,jadr_sms,jadtg_sms,
10051 . x_sms, p_sms,y_sms, z_sms, prec_sms, prec_sms3,
10052 . diag_sms3, lt_sms,
10053 . kad_sms, kdi_sms , pk_sms, ltk_sms,
10054 . jadi_sms, jdii_sms, lti_sms, mskyi_sms, iskyi_sms,
10055 . xmom_sms, tagmsr_rby_sms, t2main_sms)
10057 IF(
ALLOCATED(fthreac))
DEALLOCATE(fthreac)
10058 IF(
ALLOCATED(fthdtm))
DEALLOCATE(fthdtm)
10059 IF(
ALLOCATED(freac))
DEALLOCATE(freac)
10060 IF(
ALLOCATED(nodreac))
DEALLOCATE(nodreac)
10061 IF(
ALLOCATED(grth))
DEALLOCATE(grth)
10062 IF(
ALLOCATED(igrth))
DEALLOCATE(igrth)
10063 IF(
ALLOCATED(gresav))
DEALLOCATE(gresav)
10065 DEALLOCATE(rbe3%RRBE3)
10066 IF (iparit>0)
DEALLOCATE(rbe3%RRBE3_PON)
10068 IF(impl_s>0.OR.neig>0)
THEN
10075 IF(nvolu > 0)
CALL fvstats(monvol
10077 IF(imonm>0)
CALL printime_interf(interfaces%INTBUF_TAB,ipari,intlist,nbintc,timers%REALTIME(1)*0.01d0)
10078 CALL printime(timers,glob_therm%ITHERM,output)
10082 IF (glob_therm%ITHERM_FE > 0 )
CALL thermbilan(glob_therm)
10085 DEALLOCATE(wibem, wrbem)
10086 IF(glob_therm%ITHERM_FE > 0 )
DEALLOCATE(fthe,fthesky)
10087 IF(glob_therm%INTHEAT > 0 )
DEALLOCATE(ftheskyi)
10088 IF(glob_therm%NODADT_THERM > 0 )
DEALLOCATE(condn,condnsky)
10089 IF(glob_therm%NODADT_THERM > 0.AND.glob_therm%INTHEAT > 0)
DEALLOCATE(condnskyi)
10091 DEALLOCATE(vrbym,vrrbym,arbym,arrbym)
10092 IF(iplyxfem > 0)
THEN
10094 DEALLOCATE(ply(i)%A)
10095 DEALLOCATE(ply(i)%V)
10096 DEALLOCATE(ply(i)%U)
10097 DEALLOCATE(plysky(i)%FSKY)
10100 IF(intplyxfem > 0)
DEALLOCATE(plyskyi%FSKYI)
10101 DEALLOCATE(ply, plysky)
10102 IF(
ALLOCATED(noda_fext))
DEALLOCATE(noda_fext)
10103 CALL output_deallocate_noda_pext()
10104 DEALLOCATE(npcont2)
10107 IF(
ALLOCATED(fr_loc))
DEALLOCATE (fr_loc)
10108 IF(
ALLOCATED(fr_loci2m))
DEALLOCATE (fr_loci2m)
10109 IF(
ALLOCATED(icodt0))
DEALLOCATE (icodt0)
10110 IF(
ALLOCATED(icodr0))
DEALLOCATE (icodr0)
10111 IF(
ALLOCATED(isensint))
DEALLOCATE(isensint)
10117 CALL bcs%DEALLOCATE()
10119 IF (
ALLOCATED(rby6))
DEALLOCATE(rby6)
10120 IF (
ALLOCATED(dxancg))
DEALLOCATE(dxancg)
10121 IF (
ALLOCATED(nb25_candt))
DEALLOCATE(nb25_candt)
10122 IF (
ALLOCATED(nb25_impct))
DEALLOCATE(nb25_impct)
10123 IF (
ALLOCATED(nb25_dst1))
DEALLOCATE(nb25_dst1)
10124 IF (
ALLOCATED(nb25_dst2))
DEALLOCATE(nb25_dst2)
10126 DEALLOCATE(igrounc)
10128 IF (
ALLOCATED(sph_work%VOXEL%NNOD))
DEALLOCATE(sph_work%VOXEL%NNOD)
10129 IF (
ALLOCATED(sph_work%VOXEL%DXMIN))
DEALLOCATE(sph_work%VOXEL%DXMIN)
10130 IF (
ALLOCATED(sph_work%VOXEL%DYMIN))
DEALLOCATE(sph_work%VOXEL%DYMIN)
10131 IF (
ALLOCATED(sph_work%VOXEL%DZMIN))
DEALLOCATE(sph_work%VOXEL%DZMIN)
10132 IF (
ALLOCATED(sph_work%VOXEL%DXMAX))
DEALLOCATE
10133 IF (
ALLOCATED(sph_work%VOXEL%DYMAX))
DEALLOCATE(sph_work%VOXEL%DYMAX)
10134 IF (
ALLOCATED(sph_work%VOXEL%DZMAX))
DEALLOCATE(sph_work%VOXEL%DZMAX)
10147 1002
FORMAT(3x,
'* IMPLICIT COMPUTATION TERMINATED WITH ',3x,
10148 .
'TOTAL NONLINEAR ITERATIONS:',i8)
10149 1003
FORMAT(3x,
'* TOTAL NUM.OF MATRIX FACTORIZATION AND PCG ITERATION:'
10154 IF (vipercoupling)
THEN
10156 IF(
ALLOCATED(viper%ITABM1))
DEALLOCATE(viper%ITABM1)
10157 IF(
ALLOCATED(viper%IXEM1))
DEALLOCATE(viper%IXEM1)