181 USE user_interface_mod
183 USE output_mod ,
ONLY : output_, output_ptr
198 use checksum_output_option_mod
199 use file_descriptor_mod,
only : fd_bin_th,fd_bin_rd_rst,fd_bin_wr_rst
200 use coupling_adapter_mod
206#include "implicit_f.inc"
210#include "mvsiz_p.inc"
215#include "com01_c.inc"
216#include "com04_c.inc"
217#include "com06_c.inc"
218#include "com08_c.inc"
219#include "com10_c.inc"
220#include "com_xfem1.inc"
221#include "intstamp_c.inc"
223#include "units_c.inc"
224#include "param_c.inc"
225#include "scr02_c.inc"
226#include "scr03_c.inc"
227#include "scr05_c.inc"
228#include "scr06_c.inc"
229#include "scr07_c.inc"
230#include "scr13_c.inc"
231#include "scr14_c.inc"
232#include "scr17_c.inc"
233#include "scr18_c.inc"
234#include "scr20_c.inc"
235#include "scr23_c.inc"
236#include "scr_fac_c.inc"
237#include "chara_c.inc"
240#include "parit_c.inc"
242#include "flowcom.inc"
243#include "impl1_c.inc"
244#include "tabsiz_c.inc"
246#include "filescount_c.inc"
247#include "rad2r_c.inc"
248#include "userlib.inc"
249#include "drape_c.inc"
250#include "inter22.inc"
251#include "couple_c.inc"
255 INTEGER MRDATA,MIDATA
261 INTEGER ITASK, ITID(PARASIZ), NBTASK(PARASIZ+1),
262 . IFILNAM(2148), IFILNAM_TMP(2148)
263 INTEGER ITSTV1, IEXPM, IRUNN, IRFL, IRFE, IRR, IT, JT, I,
265 . I13A,I13B,I13C,I13D,I13E,I13F,I13G,I13H,I76A,I88A,I89A,
266 . I40A,I40B,I40G,I78N,IO_ERR,LEN_G,LEN_M, IAD1, IAD2, IAD3,
267 . IUN,IFUN, ITH, I76ATH(9), IFIL, IO_ERRL,
268 . RADIOSSV,RADFLEXV,RDFLEXCOMP,ABFV,ABFCOMP,IFILABF,
269 . NB_OF_FILES,N_FAIL,IP,IRUNN_BIS,IFILTITL
270 INTEGER OMP_GET_THREAD_NUM,LONG,LONG_TMP,
271 . LENV,FVERS,LFNAME,NB_INDEX_ABF
272 CHARACTER FILNAM*100, CHRUNM1*2, INPUTNAM*100,
273 . CHR_OLD*2,FNAME*2048,IOFF1*3,IOFF2*3,IOFF3*3
275 CHARACTER*4 PROCNAM,CHRU_M1
282 CHARACTER ABC(26)*1, FILNAMTH*100, FILTH*3, LINE*256,
283 . FILNAMABF*100,FILNAMABF_TMP*100
284 DATA abc/
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y''z'
286 INTEGER LHEADER, LVARINT, LVARREA
287 INTEGER PRADIOS,PRESFIL
288 INTEGER I15A,I15B,I15C,I15D,I15E,I15F,I15G,I15H,I15I,I15J,
292 INTEGER IERROR,MADSTRLEN
293 CHARACTER MAD_OPTION_STRING*256
294 INTEGER KMADPRT,KMADSH4,KMADSH3,KMADSOL,KMADNOD,KMADFAIL,K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11
295 INTEGER BUFTEST(100),NB_MAN,FLAG_MAIN,J, ILAW51,ILAW37,ILAW20
297 my_real,
DIMENSION(:),
ALLOCATABLE :: forneqs
298 TYPE(
prgraph),
DIMENSION(:),
ALLOCATABLE :: GRAPHE
299 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IFLOW
300 my_real,
DIMENSION(:),
ALLOCATABLE :: rflow
302 SAVE itask, irfe, itid
304 INTEGER MLN,IMID,MMALE,IFAILURE_NXT,FLAG_CST_AMS
305 INTEGER IPPID ,IPMAT, IPMAT_IPLY ,IPANG,IPTHK ,IPPOS,IS,IPT
307 TYPE (STACK_PLY) :: STACK
308 TYPE (MULTI_FVM_STRUCT) :: MULTI_FVM
309 TYPE (H3D_DATABASE) :: H3D_DATA
311 TYPE (PINCH) :: PINCH_DATA
312 TYPE(
drape_),
DIMENSION(:),
ALLOCATABLE :: DRAPE_SH4N,DRAPE_SH3N
314 TYPE(output_),
TARGET :: OUTPUT
315 TYPE(python_) :: PYTHON
317 INTEGER :: CURRENT_RUN,PREVIOUS_RUN
318 REAL(kind=8) :: local_starter_time,local_engine_time,result
320 INTEGER :: LEN_TMP_NAME,LEN_TMP_NAME2,BOOL_C
321 CHARACTER(len=2048) :: TMP_NAME,TMP_NAME2
322 INTEGER :: DYN_LIB_MODE
323 INTEGER :: RADFLEX_PROCESS_PID
324 INTEGER IUTITLHIS,IUTITLHI(9)
325 TYPE (DYNAIN_DATABASE) :: DYNAIN_DATA
326 TYPE (INTERFACES_) :: INTERFACES
329 TYPE (LOADS_) :: LOADS
330 TYPE (MAT_ELEM_) :: MAT_ELEM
331 TYPE (SKEW_) :: SKEWS
332 type (glob_therm_) :: glob_therm
333 TYPE (PBLAST_) :: PBLAST
336 INTEGER,
DIMENSION(:),
ALLOCATABLE :: MDS_OUTPUT_TABLE
341 TYPE(t_ebcs_tab) :: EBCS_TAB
344 TYPE(t_mumps_solver) :: LINEAR_SOLVER
353 TYPE(connectivity_) :: element
354 TYPE(nodal_arrays_),
target :: nodes
355 TYPE(timer_) :: TIMERS
358 TYPE(rwall_) :: rwall
365#include
"build_info.inc"
367#include
"machine.inc"
384 WRITE(versio(2),
'(A)')
' '
385 WRITE(versio(2),
'(A,A,A)')
'VERSION ',vers(1:lenv),
','
387 rvers(1:lenv)=vers(1:lenv)
406 output%TH%WFEXT = 0.0d0
407 output%TH%WFEXT_MD = 0.0d0
409 output%CHECKSUM%CHECKSUM_COUNT = 0
412#include "machine2.inc"
422 IF(ir4r8==2) itstv1 = -itstv1
522 user_interface_nodes => nodes
523 IF(got_userl_altname==1)
THEN
524 dlibfile(1:len_userl_altname)=userl_altname(1:len_userl_altname)
525 dlibfile_size=len_userl_altname
527 dlibfile=
'libraduser_'
528 dlibfile_size=len_trim(dlibfile)
532 CALL dyn_userlib_init(dlibfile,dlibfile_size,userl_avail,dlibtkvers,iresp,got_userl_altname,
549 CALL mds_userlib_init(iresp,mds_avail,mds_ver,mds_path,mds_path_len)
568 IF (got_input == 1)
THEN
577 inputnam(1:leninput)=input(1:leninput)
579 fname=path(1:lenpath)//inputnam(1:leninput)
581 fname(1:leninput) = inputnam(1:leninput)
583 lfname=leninput+lenpath
586 rad_inputname(1:lfname)=fname(1:lfname)
587 len_rad_inputname=lfname
592 tmp_name2(1:2048) =
''
599 . iname, ierr,1024,len_tmp_name,tmp_name,
600 . len_tmp_name2,tmp_name2)
604 OPEN(unit=istdi,form=
'FORMATTED',file=iname(1:lfname),
605 . action=
'READ',status=
'OLD',iostat=io_err)
607 CALL ancmsg(msgid=144,anmode=aninfo,
608 . c1=fname(1:lfname))
624 coupling%FILNAM=rootn(1:lenrootn)//
'.cpl'
625 CALL inipar(coupling,itid,1,nnodes,inputnam,got_input,nbtask)
637 IF ( got_input == 0)
THEN
642 WRITE(unit=iout,iostat=ios,fmt=
'(A)')
643 OPEN(unit=istdi,form=
'FORMATTED',file=inputnam,status=
'OLD',iostat=io_err)
645 CALL ancmsg(msgid=145,anmode=aninfo,
654 WRITE(unit=iout,iostat=ios,fmt=
'(A)')
660 CALL lecinp(irunn,irfl,irfe,h3d_data,flag_cst_ams,dynain_data,
661 . sensors,dt,output,glob_therm)
665 IF(kdtint==0 )nfskyi=4
667 IF (got_input==0)
THEN
672 WRITE(chrun,
'(I2.2)')irunn
673 rad_inputname=rootnam(1:rootlen)//
'D'//chrun
674 len_rad_inputname=len_trim(rad_inputname)
684 IF (impl_s>zero.AND.iline==zero.AND.solvnfo>zero)
THEN
686 filnam=rootnam(1:rootlen)//
'_'//chrun//
'.progress'
689 OPEN(unit=isolpgrs,file=tmp_name(1:len_tmp_name),
690 . access=
'SEQUENTIAL',
691 . form=
'FORMATTED',status=
'UNKNOWN')
692 WRITE(isolpgrs,
'(I4)') 0
693 WRITE(isolpgrs,
'(E11.4)') zero
694 WRITE(isolpgrs,
'(I4)') 0
695 WRITE(isolpgrs,
'(I4)') 0
696 WRITE(isolpgrs,
'(I4)') 0
699 filnam=rootnam(1:rootlen)//
'_'//chrun//
'.monitor'
702 OPEN(unit=isolmntr,file=tmp_name(1:len_tmp_name),
703 . access=
'SEQUENTIAL',
704 . form=
'FORMATTED',status=
'UNKNOWN')
706 filnam=rootnam(1:rootlen)//
'_'//chrun//
'_implicit.hist'
709 OPEN(unit=isolhist,file=tmp_name(1:len_tmp_name),
710 . access=
'SEQUENTIAL',
711 . form=
'FORMATTED',status=
'UNKNOWN')
713 WRITE(isolhist,1007)
'Cumulative iterations',
'Cycle',
714 .
'Iteration per cycle',
715 .
'Residual disp.',
'Residual force',
'Residual energy',
716 .
'Tolerance disp.',
'Tolerance force',
'Tolerance energy',
717 .
'Converged step',
'Diverged step',
718 .
'Time',
'Line search coefficient',
'Load factor',
'Arc length'
720 WRITE(isolhist,1003)
'Cumulative iterations',
'Cycle',
721 .
'Iteration per cycle',
722 .
'Residual disp.',
'Residual force',
'Residual energy',
723 .
'Tolerance disp.',
'Tolerance force',
'Tolerance energy',
724 .
'Converged step',
'Diverged step',
725 .
'Time',
'Line search coefficient'
7271003
FORMAT(a,
',',a,
',',a,
',',a,
',',a,
',',a,
',',a,
',',a,
',',a,
728 .
',',a,
',',a,
',',a,
',',a)
7291007
FORMAT(a,
',',a,
',',a,
',',a,
',',a,',
',A,',
',A,',
',A,',
',A,
730 . ',
',A,',
',A,',
',A,',
',A,',
',A,',
',A)
732 FILNAM=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'_implicit.info
'
733 INPUTNAM='check_data
'
734 LEN_TMP_NAME = OUTFILE_NAME_LEN+ROOTLEN+19
735 TMP_NAME=OUTFILE_NAME(1:OUTFILE_NAME_LEN)//FILNAM(1:ROOTLEN+19)
736 OPEN(UNIT=ISOLINFO,FILE=TMP_NAME(1:LEN_TMP_NAME),
737 . ACCESS='sequential
',
738 . FORM='formatted
',STATUS='unknown
')
740 FILNAM=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'_implicit.tpl
'
741 LEN_TMP_NAME = OUTFILE_NAME_LEN+ROOTLEN+18
742 TMP_NAME=OUTFILE_NAME(1:OUTFILE_NAME_LEN)//FILNAM(1:ROOTLEN+18)
743 INPUTNAM='check_data
'
744 OPEN(UNIT=ISOLTPL,FILE=TMP_NAME(1:LEN_TMP_NAME),
745 . ACCESS='sequential
',
746 . FORM='formatted
',STATUS='unknown
')
747 FILNAM=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'_implicit
'
748 WRITE(ISOLTPL,1004) FILNAM(1:ROOTLEN+14)
750 FILNAM=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'_implicit.hist
'
751 WRITE(ISOLTPL,1006) FILNAM(1:ROOTLEN+19)
756.OR..OR..OR.
IF (NITOL == 1 NITOL == 12 NITOL == 13 NITOL == 123) IOFF1 = 'on
'
757.OR..OR..OR..OR.
IF (NITOL == 0 NITOL == 2 NITOL == 12 NITOL == 23 NITOL == 123) IOFF2 = 'on
'
758.OR..OR..OR.
IF (NITOL == 3 NITOL == 13 NITOL == 23 NITOL == 123) IOFF3 = 'on
'
760 FILNAM=ROOTNAM(1:ROOTLEN)
761 CALL WRITE_TPL_FILE(FILNAM(1:ROOTLEN),IOFF1,IOFF2,IOFF3)
7621004 FORMAT('*definereport(
',A,', plot_file_1)
')
7631005 FORMAT(' *
id(
"HyperWorks",
"Report")
')
7641006 FORMAT(' *parameter(plot_file_1, plot_file_1, filename,
"*",
"',A,'")
')
767 WRITE(CHRUN,'(i4.4)
')IRUNN
770 FILNAM=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'.out
'
771 LEN_TMP_NAME = OUTFILE_NAME_LEN+ROOTLEN+9
772 TMP_NAME=OUTFILE_NAME(1:OUTFILE_NAME_LEN)//FILNAM(1:ROOTLEN+9)
773 INPUTNAM='check_data
'
774 OPEN(UNIT=IOUT,FILE=TMP_NAME(1:LEN_TMP_NAME),ACCESS='sequential
',FORM='formatted
',STATUS='unknown
')
775 OUTPUT%OUT_FILENAME(1:LEN_TMP_NAME)=TMP_NAME(1:LEN_TMP_NAME)
777 DO WHILE (IO_ERRL>=0)
778 READ(IOUT,'(a)
',END = 1000,IOSTAT=IO_ERRL)LINE
781 WRITE(IOUT,'(1x,a)')filnam(1:rootlen+9)
782 WRITE(procnam,
'(I4.4)')ispmd
783 filnam =rootnam(1:rootlen)//
'_'//chrun//
'_'//procnam//
'.rst'
786 WRITE(procnam,
'(I4.4)')ispmd+1
787 filnam =rootnam(1:rootlen)//
'_'//chrun//
'_'//procnam//
'.rst'
791 WRITE(chr_old,
'(I2.2)')irunn
792 filnam=rootnam(1:rootlen)//
'_'//chrun//
'.out'
794 IF (got_input == 0)
THEN
795 inputnam=rootnam(1:rootlen)//
'D'//chr_old
797 . inputnam=rootnam(1:rootlen)//
'_'//chrun//
'.rad'
799 inputnam(1:leninput)=input(1:leninput)
803 OPEN(unit=iout,file=tmp_name(1:len_tmp_name),
804 . access=
'SEQUENTIAL',
805 . form=
'FORMATTED',status=
'UNKNOWN')
807 output%OUT_FILENAME(1:len_tmp_name)=tmp_name(1:len_tmp_name)
808 WRITE(iout,
'(1X,A)')filnam(1:rootlen+9)
810 WRITE(chru_m1,
'(I4.4)')irunn-1
811 WRITE(procnam,
'(I4.4)')ispmd
812 filnam=rootnam(1:rootlen)//
'_'//chru_m1//
'_'//procnam
815 WRITE(chru_m1,
'(I4.4)')irunn-1
816 WRITE(procnam,
'(I4.4)')ispmd+1
817 filnam=rootnam(1:rootlen)//
'_'//chru_m1//
'_'//procnam
819 IF(chrun0(1:1)==
'_')
THEN
820 filnam=filnam(1:len)//chrun0
823 filnam=filnam(1:len)//
'.rst'
837 ifilnam(i)=ichar(tmp_name(i:i))
844 filnam(i:i) = char(ifilnam(i))
849 * filnam,rootlen,chrun,iresp,0)
851 * filnam,rootlen,chrun,iresp,1)
863 CALL rdresa(output,itstv1 ,lheader ,lvarint ,lvarrea ,pradios ,
864 . presfil, multi_fvm, h3d_data,
866 . mat_elem,names_and_titles,skews ,glob_therm,pblast,
873 IF(pradios/=iradios.OR.presfil/=iresfil)
THEN
874 CALL ancmsg(msgid=146,anmode=aninfo)
880 IF(itestv/=itstv1.OR.nvsiz>mvsiz)
THEN
881 CALL ancmsg(msgid=147,anmode=aninfo)
882 IF(debug(2)<2)
CALL arret(2)
894 CALL inipar(coupling,itid,3,nnodes,inputnam,got_input,nbtask)
898 CALL spmd_allreduce(glob_therm%NFXFLUX,nfxflux_glob,1,spmd_sum)
900 nfxflux_glob = glob_therm%NFXFLUX
902 IF(nfxflux_glob >0 .AND. (iparit > 0 .OR. iparit == -1))
THEN
905 WRITE(6,*)
"WARNING: /IMPFLUX is not compatible with",
906 .
" /PARITH/ON, switching to /PARITH/OFF"
912 CALL iniresa(output,h3d_data,pinch_data,glob_therm)
918 WRITE(iout,
'(1X,A,I5)')
'NUMBER OF SPMD DOMAINS ',
920 IF(nbtask(nspmd+1) == nspmd*nthread)
THEN
922 WRITE(iout,
'(1X,A,I5)')
'NUMBER OF THREADS PER DOMAIN ',
924 WRITE(iout,
'(1X,A,I5)')
'NUMBER OF HMPP PROCESSES ',
926 WRITE(istdo,
'(1X,A,I5)')
'NUMBER OF HMPP PROCESSES ',
931 WRITE(iout, '(1x,a,i5,a,i5)
')'domain
',I,
932 . ', number of threads
',
935 WRITE(IOUT, '(1x,a,i5)
')'number of hmpp processes
',
937 WRITE(ISTDO,'(1x,a,i5)
')'number of hmpp processes
',
942 ! Open the qaprint file
943 CALL QAOPEN('engine
')
949 IF(ISPMD==0) CALL PRINTCENTER(" ",0,IOUT,1)
951 ! ---------------------------------------------------
952 ! Arrays, Types Allocation and initialization
953 ! ---------------------------------------------------
954 CALL TRACE_IN(17,2,ZERO)
957 SIGEO = NPROPGI*NUMGEO
958 SIPM = NPROPMI*NUMMAT
961 ! Finite Volume Method
962 IF (MULTI_FVM%IS_USED) THEN
963 MULTI_FVM%MUSCL = ALEMUSCL_Param%IALEMUSCL
966 CALL ALE_CONNECTIVITY%ALE_CONNECTIVITY_INIT()
968 ! Most of arrays from Restart
969 CALL RESTALLOC(OUTPUT,ELEMENT,NODES,MULTI_FVM,H3D_DATA,PINCH_DATA,ALE_CONNECTIVITY,SEGVAR,INTERFACES,SKEWS,
970 * GLOB_THERM,RBE3,RWALL)
976 ! IAF, AF: Fluid, Noise
977 IF(IFIF>0)ALLOCATE (IAF(IFIF),STAT=IADIF)
978 IF(MFIF>0)ALLOCATE (AF(MFIF),STAT=IADRF)
979.OR.
IF(IADRF/=0IADIF/=0)THEN
980 CALL ANCMSG(MSGID=20,ANMODE=ANINFO)
986 ALLOCATE(T_MONVOL(NVOLU))
988 ! Table structure allocation
990 ALLOCATE(TABLE(NTABLE),STAT=IERR)
992 CALL ANCMSG(MSGID=20,ANMODE=ANINFO)
995 CALL TABLE_ZERO(TABLE)
1005 ALLOCATE(IFLOW(LIFLOW), RFLOW(LRFLOW))
1007 ALLOCATE(IFLOW(0), RFLOW(0))
1011! IF (GLOB_THERM%ITHERM_FE > 0 ) THEN
1012! ALLOCATE(NODES%MCP(NUMNOD),NODES%TEMP(NUMNOD))
1014! ALLOCATE(NODES%MCP(0),NODES%TEMP(0))
1017 ! Nitsche Method : Equivalent Nodal Force allocation
1018 IF(NITSCHE > 0 ) THEN
1019 ALLOCATE(FORNEQS(3*NUMNOD))
1021 ALLOCATE(FORNEQS(0))
1025 CALL STACK_PLY_ALLOC(STACK,IPART_STACK,NPT_STACK,NS_STACK)
1030 IF (NDRAPE > 0) THEN
1031 ALLOCATE(DRAPE_SH4N(NUMELC_DRAPE),DRAPE_SH3N(NUMELTG_DRAPE))
1032 ALLOCATE(DRAPEG%INDX_SH4N(NUMELC),DRAPEG%INDX_SH3N(NUMELTG))
1033 DRAPEG%INDX_SH4N = 0
1034 DRAPEG%INDX_SH3N = 0
1036 ALLOCATE(DRAPE_SH4N(0),DRAPE_SH3N(0),DRAPEG%INDX_SH4N(0),
1037 . DRAPEG%INDX_SH3N(0) )
1040 ! allocation of engine time array
1041 ALLOCATE(GLOBAL_COMP_TIME%ENGINE_TIME(IRUNN))
1042 GLOBAL_COMP_TIME%ENGINE_TIME(1:IRUNN) = ZERO
1043 GLOBAL_COMP_TIME%RUN_NBR = IRUNN
1044 GLOBAL_COMP_TIME%RST_NAME(1:1000)=''
1045 GLOBAL_COMP_TIME%RST_NAME=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'_0001.rst
'
1047 ! ---------------------------------------------------------------------------------------------
1048 ! .rst file reading 2
1049 ! ---------------------------------------------------------------------------------------------
1050 CALL RDRESB(AF ,IAF ,LVARREA ,IRUNN ,
1051 . MULTI_FVM ,H3D_DATA ,PINCH_DATA ,ALE_CONNECTIVITY ,T_MONVOL ,
1052 . SENSORS ,EBCS_TAB ,DYNAIN_DATA ,USER_WINDOWS ,OUTPUT ,
1053 . INTERFACES ,LOADS ,MAT_ELEM ,PYTHON ,IFLOW ,
1054 . SKEWS ,RFLOW ,LIFLOW ,LRFLOW ,IMPL_S0 ,
1056 . STACK ,DRAPE_SH4N ,DRAPE_SH3N ,DRAPEG ,NDRAPE ,
1057 . GLOB_THERM ,PBLAST ,ELEMENT ,NODES ,RBE3 ,
1059 ! Close restart file
1062 ! --------------------------------------------------------------------------------------------
1063 IF (NSPMD > 1) CALL SPMD_RST_CHECK()
1067 ALLOCATE(DMSPH(SDMSPH),STAT=IERR)
1069 CALL ANCMSG(MSGID=20,ANMODE=ANINFO)
1082 !TABVINT not yet read in FREANIM.F so treatment is done here.
1083 !----------------------------------!
1084 ! Testing if multimaterial law is !
1085 ! linked to a PART !
1088 ! +JWL EOS for burn fraction !
1089 !----------------------------------!
1095 !IID = IPART(LIPART1*(I-1)+1) !internal ID
1096 !UID = IPART(LIPART1*(I-1)+5) !user ID
1097 !MLN = IPM(NPROPMI*(IMID-1)+2)!material law number
1098 IMID = IPART(LIPART1*(I-1)+1)
1099 MLN = IPM(NPROPMI*(IMID-1)+2)
1100.OR..OR..OR.
IF (MLN==51 MLN==37 MLN==20 MLN == 151) MMALE = 1
1101 IF (MLN==51) ILAW51=1
1102 IF (MLN==37) ILAW37=1
1103 IF (MLN==20) ILAW20=1
1105 !----------------------------------!
1106 ! Updating output output Request!
1107 ! according multimaterial law type!
1109 !----------------------------------!
1110 !Common Law 51/Law 37
1111 !Removing /ANIM/ELEM/VFRAC if no multimaterial law
1114 IF(ANIM_SE(I)==1)THEN
1120 IF(ANIM_CE(I)==1)THEN
1125 !/ANIM/ELEM/VFRAC not relevant in this case
1126 NN_ANI = NN_ANI - ANIM_N(20)
1127 NN_ANI = NN_ANI - ANIM_N(21)
1128 NN_ANI = NN_ANI - ANIM_N(22)
1129 NN_ANI = NN_ANI - ANIM_N(23)
1136.OR.
IF(MMALE==0 INT22==0)THEN
1137 !/ANIM/ELEM/ZVFRAC not relevant in this case
1138 NN_ANI = NN_ANI - ANIM_N(24)
1139 NN_ANI = NN_ANI - ANIM_N(25)
1140 NN_ANI = NN_ANI - ANIM_N(26)
1141 NN_ANI = NN_ANI - ANIM_N(27)
1149 !/ANIM/ELEM/ZVOLD not relevant in this case
1150 !/ANIM/ELEM/ZVNEW not relevant in this case
1151 NN_ANI = NN_ANI - ANIM_N(28)
1152 NN_ANI = NN_ANI - ANIM_N(29)
1155 !/ANIM/VECT/ZVEL not relevant in this case
1156 NV_ANI = NV_ANI - ANIM_V(21)
1158 !/ANIM/VECT/ZFVEL not relevant in this case
1159 NV_ANI = NV_ANI - ANIM_V(22)
1161 !/ANIM/VECT/ZMOM not relevant in this case
1162 NV_ANI = NV_ANI - ANIM_V(23)
1164 !/ANIM/VECT/ZFP not relevant in this case
1165 NV_ANI = NV_ANI - ANIM_V(24)
1167 !/ANIM/VECT/ZFINT not relevant in this case
1168 NV_ANI = NV_ANI - ANIM_V(25)
1172 NN_ANI = NN_ANI + OUTPUT%CHECKSUM%CHECKSUM_COUNT
1174 !Common Law 51/Law 37
1175 !if multimaterial law then removing useless phases output (phases 3 or/and 4)
1180 IF(ANIM_CE(I)==1)THEN
1185 !multimaterial with law51
1186 IF(TRIMAT/=4)THEN !if anim keyword present : removing phasis which are not defined
1187 IF(ANIM_SE(286)==1)THEN !removing phase4 (jwl)
1192 !multimaterial with law37
1194 IF(ANIM_SE(285)==1)THEN !removing phase3 (only 2 phases with law37 or law20), phase 4 already removed
1202 IF(ANIM_SE(I)==1)THEN
1207 !!multimaterial with law51
1208 !IF(TRIMAT/=4)THEN !if anim keyword present : removing phasis which are not defined
1209 ! IF(ANIM_CE(10251)==1)THEN !removing phase4 (jwl)
1216 ! IF(ANIM_CE(I)==1)THEN
1218 ! NCE_ANI = NCE_ANI-1
1226 IF(TRIMAT==-2)TRIMAT=0 !skip law51 loops with law37
1229 !no need to output zero contour for ALE ANIM keywords if ALE not defined. (example: schlieren +SH3N)
1230 IF(IALE+IEULER+GLOB_THERM%ITHERM == 0)THEN
1231 NCE_ANI = NCE_ANI - ANIM_CE(10672)
1232 NSE_ANI = NSE_ANI - ANIM_SE(4892)
1233 ANIM_CE(10672) = 0 !quad schlieren
1234 ANIM_SE(4892) = 0 !solid schlieren
1237 !no need to output phase contour if no law51
1241 NSE_ANI = NSE_ANI - ANIM_SE(I)
1246 NSE_ANI = NSE_ANI - ANIM_SE(I)
1251 NSE_ANI = NSE_ANI - ANIM_SE(I)
1256 NSE_ANI = NSE_ANI - ANIM_SE(I)
1261 NSE_ANI = NSE_ANI - ANIM_SE(I)
1266 NSE_ANI = NSE_ANI - ANIM_SE(I)
1271 NSE_ANI = NSE_ANI - ANIM_SE(I)
1276 NSE_ANI = NSE_ANI - ANIM_SE(I)
1279 !artificial viscosities
1281 NSE_ANI = NSE_ANI - ANIM_SE(I)
1284 !nodal volumetric fraction : no phase 3 & 4
1285 NN_ANI = NN_ANI - ANIM_N(22)
1286 NN_ANI = NN_ANI - ANIM_N(23)
1289 !centroid volumetric fraction : no phase 3 & 4
1290 NN_ANI = NN_ANI - ANIM_N(26)
1291 NN_ANI = NN_ANI - ANIM_N(27)
1294 ENDIF !IF(ILAW51 == 0)
1298 NSE_ANI = NSE_ANI - ANIM_SE(4935)
1299 NSE_ANI = NSE_ANI - ANIM_SE(4936)
1304 !no need to output phase contour if no law20
1305.AND.
IF(ILAW20 == 0 ILAW51 == 0)THEN
1307 NCE_ANI = NCE_ANI - ANIM_CE(I)
1310 ENDIF !IF(ILAW20 == 0)
1312 IF(ALE%GLOBAL%I_DT_NODA_ALE_ON_KEY==1) ALE%GLOBAL%I_DT_NODA_ALE_ON = 1
1316 PREVIOUS_RUN = GLOBAL_COMP_TIME%RUN_NBR-1
1317 CALL SPMD_ALLREDUCE(GLOBAL_COMP_TIME%STARTER_TIME,LOCAL_STARTER_TIME,1,SPMD_MAX)
1318 GLOBAL_COMP_TIME%STARTER_TIME = LOCAL_STARTER_TIME
1319 IF(PREVIOUS_RUN>0) THEN
1320 CALL SPMD_ALLREDUCE(GLOBAL_COMP_TIME%ENGINE_TIME(PREVIOUS_RUN),LOCAL_ENGINE_TIME,1,SPMD_MAX)
1321 GLOBAL_COMP_TIME%ENGINE_TIME(PREVIOUS_RUN) = LOCAL_ENGINE_TIME
1326.AND.
IF(ISMS_SELEC==0FLAG_CST_AMS==1)THEN
1328 CALL ANCMSG(MSGID=278,ANMODE=ANINFO_BLIND)
1332 CALL ANCMSG(MSGID=245,ANMODE=ANINFO_BLIND)
1337.OR..AND.
IF(IDTMINS==1(IDTMINS_OLD==1MCHECK/=0))THEN
1338 IF(IDTMINS_OLD /= 1)THEN
1339 ALLOCATE(ADMSMS(NUMNOD),RES_SMS(3*NUMNOD),STAT=IERR)
1341 CALL ANCMSG(MSGID=19,ANMODE=ANINFO,
1342 . C1='(/dt/.../ams)
')
1346 IF(IDTMINS_OLD /= 2)THEN
1347 ALLOCATE(DIAG_SMS(NUMNOD),STAT=IERR)
1349 CALL ANCMSG(MSGID=19,ANMODE=ANINFO,
1350 . C1='(/dt/.../ams)
')
1353 IF(MCHECK==0)DIAG_SMS(1:NUMNOD)=NODES%MS(1:NUMNOD)
1355 ELSEIF(IDTMINS==2)THEN
1356 IF(IDTMINS_OLD /= 2)THEN
1357 ALLOCATE(DMELC(NUMELC),DMELTG(NUMELTG),DMELS(NUMELS),
1358 . DMELTR(NUMELT),DMELP(NUMELP),DMELRT(NUMELR),
1359 . DIAG_SMS(NUMNOD),DMINT2(4*I2NSN25),
1362 CALL ANCMSG(MSGID=19,ANMODE=ANINFO,
1363 . C1='(/dt/.../ams)
')
1366 DMELC (1:NUMELC)=ZERO
1367 DMELTG(1:NUMELTG)=ZERO
1368 DMELS (1:NUMELS)=ZERO
1369 DMELTR(1:NUMELT)=ZERO
1370 DMELP (1:NUMELP)=ZERO
1371 DMELRT(1:NUMELR)=ZERO
1372 DMINT2(1:4*I2NSN25)=ZERO
1373 DIAG_SMS(1:NUMNOD)=NODES%MS(1:NUMNOD)
1375.AND.
IF(IDTMINS_OLD /= 1 IDTMINS_OLD /= 2)THEN
1376 ALLOCATE(RES_SMS(3*NUMNOD),STAT=IERR)
1378 CALL ANCMSG(MSGID=19,ANMODE=ANINFO,
1379 . C1='(/dt/.../ams)
')
1383 ELSEIF(IDTMINS_INT/=0)THEN
1384 IF(IDTMINS_INT_OLD==0)THEN
1385 ALLOCATE(RES_SMS(3*NUMNOD),STAT=IERR)
1386 ALLOCATE(DIAG_SMS(NUMNOD),DMINT2(4*I2NSN25),STAT=IERR)
1388 CALL ANCMSG(MSGID=19,ANMODE=ANINFO,
1389 . C1='(/dt/.../ams)
')
1392 DIAG_SMS(1:NUMNOD)=NODES%MS(1:NUMNOD)
1395.NOT.
IF(ALLOCATED(ADMSMS))ALLOCATE(ADMSMS(0))
1396.NOT.
IF(ALLOCATED(DMELC ))ALLOCATE(DMELC (0))
1397.NOT.
IF(ALLOCATED(DMELTG))ALLOCATE(DMELTG(0))
1398.NOT.
IF(ALLOCATED(DMELS ))ALLOCATE(DMELS (0))
1399.NOT.
IF(ALLOCATED(DMELTR))ALLOCATE(DMELTR(0))
1400.NOT.
IF(ALLOCATED(DMELP ))ALLOCATE(DMELP (0))
1401.NOT.
IF(ALLOCATED(DMELRT))ALLOCATE(DMELRT(0))
1402.NOT.
IF(ALLOCATED(RES_SMS))ALLOCATE(RES_SMS(0))
1403.NOT.
IF(ALLOCATED(DIAG_SMS))ALLOCATE(DIAG_SMS(0))
1404.NOT.
IF(ALLOCATED(DMINT2))ALLOCATE(DMINT2(0))
1412 !If Viscosity is defined (/MAT/LAW6:NU parameter) with collocated scheme (/MAT/LAW151 , viscosity is solved with linear solver
1413 ! Consequently if MUMPS is not defined then it will work only with -nspmd=1
1414.AND.
IF(NSPMD>1 MULTI_FVM%NS_DIFF)THEN
1415 WRITE(6,FMT='(a)
') " Fatal error: MUMPS is required to solve Navier-Stokes viscosity"
1423 IF (MULTI_FVM%IS_USED) THEN
1424 MULTI_FVM%IS_RESTART = .TRUE.
1426 IF (MULTI_FVM%NS_DIFF) THEN
1427 CALL DIFFUSION%INIT_DIFFUSION(LINEAR_SOLVER, 3, IPARG, ALE_CONNECTIVITY)
1435 CALL SWITCH_TO_DTNODA(
1436 . IXR ,GEO ,PM ,IPARG ,MAT_ELEM%ELBUF,
1437 . NODES%MS ,NODES%IN ,NODES%ITAB ,IGEO ,IPM ,
1438 . BUFMAT ,IPART ,IGRNOD ,IGRPART)
1443 IF(MDS_AVAIL==1) THEN
1445 NTASK_USER = NTHREAD
1450 MAX_DEPVAR=MAX(MAX_DEPVAR,MDS_NDEPSVAR(I) )
1452 ALLOCATE (MDS_OUTPUT_TABLE(MDS_NMAT*MAX_DEPVAR) )
1455.NOT.
IF(ALLOCATED(MDS_LABEL)) THEN
1456 ALLOCATE( MDS_LABEL(1024,MDS_NMAT) )
1458.NOT.
IF(ALLOCATED(MDS_NDEPSVAR)) THEN
1459 ALLOCATE( MDS_NDEPSVAR(MDS_NMAT) )
1461.NOT.
IF(ALLOCATED(MDS_OUTPUT_TABLE) ) THEN
1462 ALLOCATE (MDS_OUTPUT_TABLE(MDS_NMAT*MAX_DEPVAR) )
1467 CALL TRACE_IN(16,2,ZERO)
1468 CALL LECTUR( NODES%ICODE , NODES%ISKEW , ISKWN , IXTG , IXS ,
1469 2 IXQ , ELEMENT%SHELL%IXC , IXT , IXP , IXR ,
1470 3 NODES%ITAB , NODES%ITABM1 ,NPC, IPARG, IGRV ,
1472 5 NPBY , LPBY ,ILINK, LLINK ,LINALE ,
1473 6 NEFLSW , NNFLSW , ICUT , IAF(IF01),
1474 7 NODES%X ,NODES%V, NODES%VR, NODES%MS ,NODES%IN ,
1475 8 SKEWS%SKEW ,TF ,RBY ,
1476 9 WA ,CRFLSW ,XCUT ,DAMPR ,
1477 A IGRNOD ,KXSP,NODES%WEIGHT ,FR_RBY2 ,FR_RL,
1479 C MONVOL ,VOLMON, IPART_STATE,GEO,TABLE,
1480 D IFRAME,XFRAME,MAT_ELEM%ELBUF,IGEO,INTERFACES%INTBUF_TAB,
1481 E IPM ,H3D_DATA, MULTI_FVM,
1482 F IGRPART,TAG_SKINS6,ICFIELD,LCFIELD,NODES%TAG_S_RBY,
1483 G MDS_LABEL,MDS_OUTPUT_TABLE,MDS_NMAT,MAX_DEPVAR,
1484 H MDS_NDEPSVAR,STACK,IBCL,ILOADP,LLOADP,SENSORS,
1485 I DYNAIN_DATA,DT ,LOADS ,OUTPUT,NAMES_AND_TITLES,
1486 J MAT_ELEM%MAT_PARAM,GLOB_THERM,PBLAST)
1490 LEN_IINFNA=LEN_TRIM(IINFNA)
1491 CALL DELETE_USER_FILE(IINFNA,LEN_IINFNA)
1499 IF (MDS_AVAIL==1) THEN
1500 CALL MDS_ENGINE_USER_INITIALIZE(NSPMD_USER,NTASK_USER,ISPMD_USER,TSTOP,
1501 * MDS_NMAT,MDS_MATID,MDS_FILES,MDS_LABEL,MDS_NDEPSVAR,MAX_DEPVAR,MDS_OUTPUT_TABLE)
1506 CALL TRACE_IN(19,0,ZERO)
1509.AND.
IF ((IRAD2R==1)(R2R_SIU==1))THEN
1510 CALL R2R_INPUT_INIT(IRUNN,OUTPUT)
1517 N_FAIL = IPM(NPROPMI*(N-1)+220)
1520 IF(IPM(NPROPMI*(N-1)+111+IP)==25 ) IFAILURE_NXT = 1
1523 IF(IFAILURE_NXT == 1) THEN
1529 CALL BCS0 (NODES%ICODE,NODES%ICODT,NODES%ICODR, ICODE_PLY, ICODT_PLY,IBC_PLY)
1531 IF (NUMELTG6>0) THEN
1532 CALL CDK6BC3(NODES%ICODT ,NODES%ISKEW,ISKWN,IXTG ,
1534 2 NODES%X ,SKEWS%SKEW)
1540 . CALL CONDRMAT(NODES%ICODT,NODES%ICODR, IRBYM, LNRBYM,ICODRBYM)
1543 CALL TRACE_IN(18,0,ZERO)
1554.AND.
IF(NTHGRP01(I) /= 0 ABFILE(I+1) /= 0)
1555 . NB_OF_FILES = NB_OF_FILES + 1
1557 IF (NABFILE /= 0) THEN
1565 CALL OPEN_ABFPIPE(ABINP,ABOUT,IABFPIPE,1,ABFV,NB_OF_FILES)
1567 IF (IABFPIPE < 0) THEN
1568 SELECT CASE (IABFPIPE)
1571 CALL ANCMSG(MSGID=150,ANMODE=ANINFO)
1573 CALL ANCMSG(MSGID=151,ANMODE=ANINFO,I1=ABFCOMP)
1575 CALL CHECK_ABF(ABINP,ABOUT,-1)
1578 ELSEIF (ABFV < ABFCOMP) THEN
1579 CALL ANCMSG(MSGID=152,ANMODE=ANINFO)
1580 CALL CHECK_ABF(ABINP,ABOUT,-1)
1584 CALL CHECK_ABF(ABINP,ABOUT,IABFPIPE)
1588 ! ABF converter is not available
1589 WRITE(6,'(a)
') '***
error /abf is not available
'
1599 WRITE(CHR_OLD,'(i2.2)
')IRUNN
1600 FILNAMTH=ROOTNAM(1:ROOTLEN)//'t
'//CHR_OLD
1603 FILNAMTH=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'.thy
'
1608 OUTPUT%TH%TH_WRITE_TYPE = ITFORM
1609 IFILTITL = IUTITLHIS
1611 CALL HIST1( FILNAMTH ,IFIL ,NTHGRP ,LONG,
1613 3 SUBSETS ,OUTPUT%TH%ITHGRP ,OUTPUT%TH%ITHBUF ,IGEO,
1614 4 IPM ,IPART ,LIPART1 ,8,
1615 5 12 ,ITFORM ,ITHFLAG ,ITHVAR,
1616 6 IFILTITL,OUTPUT%TH%SITHBUF ,NAMES_AND_TITLES)
1618 ! Store filename for eventuel checksum computation
1619 OUTPUT%TH%TH_FILENAME(1:LEN_TRIM(FILNAMTH))=FILNAMTH(1:LEN_TRIM(FILNAMTH))
1622 IF(NTHGRP01(1)/=0)THEN
1623 WRITE(CHR_OLD,'(i2.2)
')IRUNN
1626 FILNAMTH=ROOTNAM(1:ROOTLEN)//'t
'//FILTH
1628 IF(TH_VERS>=50) THEN
1629 FILNAMTH=ROOTNAM(1:ROOTLEN)
1630 . //'_
'//CHRUN//'_
'//ABC(1)//'.thy
'
1635 IFILTITL = IUTITLHI(1)
1637 CALL HIST1( FILNAMTH ,IFIL ,NTHGRP1(1) ,LONG ,
1639 3 SUBSETS ,OUTPUT%TH%ITHGRPA ,OUTPUT%TH%ITHBUFA ,IGEO ,
1640 4 IPM ,IPART(1+LIPART1*(NPART+NTHPART)) ,2 ,1 ,
1641 5 1 ,AFORM(1) ,ITHFLAG ,ITHVAR,
1642 6 IFILTITL,OUTPUT%TH%SITHBUFA ,NAMES_AND_TITLES)
1645 IF(NTHGRP01(2)/=0)THEN
1646 WRITE(CHR_OLD,'(i2.2)')irunn
1649 filnamth=rootnam(1:rootlen)//
'T'//filth
1651 IF(th_vers>=50)
THEN
1652 filnamth=rootnam(1:rootlen)
1653 . //
'_'//chrun//
'_'//abc(2)//
'.thy'
1658 ifiltitl = iutitlhi(2)
1660 CALL hist1(filnamth,ifil ,nthgrp1(2) ,long,
1662 3
subsets ,output%TH%ITHGRPB ,output%TH%ITHBUFB ,
igeo ,
1663 4
ipm ,
ipart(1+lipart1*(npart+nthpart)+2*(npart+nthpart)),2,1,
1664 5 1 ,aform(2) ,ithflag ,
ithvar,
1665 6 ifiltitl,output%TH%SITHBUFB,names_and_titles)
1668 IF(nthgrp01(3)/=0)
THEN
1669 WRITE(chr_old,
'(I2.2)')irunn
1672 filnamth=rootnam(1:rootlen)//
'T'//filth
1674 IF(th_vers>=50)
THEN
1675 filnamth=rootnam(1:rootlen)
1676 . //
'_'//chrun//
'_'//abc(3)//
'.thy'
1681 ifiltitl = iutitlhi(3)
1683 CALL hist1(filnamth ,ifil ,nthgrp1(3) ,long,
1685 3
subsets ,output%TH%ITHGRPC ,output%TH%ITHBUFC ,
igeo ,
1686 4
ipm ,
ipart(1+lipart1*(npart+nthpart)+4*(npart+nthpart)) ,2 ,1,
1687 5 1 ,aform(3) ,ithflag ,
ithvar,
1688 6 ifiltitl,output%TH%SITHBUFC,names_and_titles)
1691 IF(nthgrp01(4)/=0)
THEN
1692 WRITE(chr_old,
'(I2.2)')irunn
1695 filnamth=rootnam(1:rootlen)//
'T'//filth
1697 IF(th_vers>=50)
THEN
1698 filnamth=rootnam(1:rootlen)
1699 . //
'_'//chrun//
'_'//abc(4)//
'.thy'
1703 ifiltitl = iutitlhi(4)
1706 CALL hist1(filnamth,ifil,nthgrp1(4),long,
1708 3
subsets ,output%TH%ITHGRPD ,output%TH%ITHBUFD ,
igeo,
1709 4
ipm ,
ipart(1+lipart1*(npart+nthpart)+6*(npart+nthpart)) ,2 ,1,
1710 5 1 ,aform(4) ,ithflag ,
ithvar,
1711 6 ifiltitl ,output%TH%SITHBUFD,names_and_titles)
1714 IF(nthgrp01(5)/=0)
THEN
1715 WRITE(chr_old,
'(I2.2)')irunn
1718 filnamth=rootnam(1:rootlen)//
'T'//filth
1720 IF(th_vers>=50)
THEN
1721 filnamth=rootnam(1:rootlen)
1722 . //
'_'//chrun//
'_'//abc(5)//
'.thy'
1727 ifiltitl = iutitlhi(5)
1729 CALL hist1(filnamth,ifil ,nthgrp1(5) ,long,
1731 3
subsets ,output%TH%ITHGRPE ,output%TH%ITHBUFE ,
igeo,
1732 4
ipm ,
ipart(1+lipart1*(npart+nthpart)+8*(npart+nthpart)),2,1,
1733 5 1 ,aform(5) ,ithflag ,
ithvar,
1734 6 ifiltitl,output%TH%SITHBUFE,names_and_titles)
1737 IF(nthgrp01(6)/=0)
THEN
1738 WRITE(chr_old,
'(I2.2)')irunn
1741 filnamth=rootnam(1:rootlen)//
'T'//filth
1743 IF(th_vers>=50)
THEN
1744 filnamth=rootnam(1:rootlen)
1745 . //'_'//chrun//
'_'//abc(6)//
'.thy'
1750 ifiltitl = iutitlhi(6)
1752 CALL hist1(filnamth,ifil ,nthgrp1(6) ,long,
1754 3
subsets ,output%TH%ITHGRPF ,output%TH%ITHBUFF ,
igeo ,
1755 4
ipm ,
ipart(1+lipart1*(npart+nthpart)+10*(npart+nthpart)),2,1,
1756 5 1 ,aform(6) ,ithflag ,
ithvar,
1757 6 ifiltitl,output%TH%SITHBUFF,names_and_titles)
1760 IF(nthgrp01(7)/=0)
THEN
1761 WRITE(chr_old,
'(I2.2)')irunn
1764 filnamth=rootnam(1:rootlen)//
'T'//filth
1766 IF(th_vers>=50)
THEN
1767 filnamth=rootnam(1:rootlen)
1768 . //
'_'//chrun//
'_'//abc(7)//
'.thy'
1773 ifiltitl = iutitlhi(7)
1775 CALL hist1(filnamth,ifil ,nthgrp1(7) ,long,
1777 3
subsets ,output%TH%ITHGRPG ,output%TH%ITHBUFG ,
igeo ,
1778 4
ipm,
ipart(1+lipart1*(npart+nthpart)+12*(npart+nthpart)),2,1,
1779 5 1 ,aform(7) ,ithflag ,
ithvar,
1780 6 ifiltitl,output%TH%SITHBUFG ,names_and_titles)
1783 IF(nthgrp01(8)/=0)
THEN
1784 WRITE(chr_old,
'(I2.2)')irunn
1787 filnamth=rootnam(1:rootlen)//
'T'//filth
1789 IF(th_vers>=50)
THEN
1790 filnamth=rootnam(1:rootlen)
1791 . //
'_'//chrun//
'_'//abc(8)//
'.thy'
1796 ifiltitl = iutitlhi(8)
1798 CALL hist1(filnamth ,ifil ,nthgrp1(8),long,
1800 3
subsets ,output%TH%ITHGRPH ,output%TH%ITHBUFH ,
igeo,
1801 4
ipm ,
ipart(1+lipart1*(npart+nthpart)+14*(npart+nthpart)),2,1,
1802 5 1 ,aform(8) ,ithflag ,
ithvar,
1803 6 ifiltitl,output%TH%SITHBUFH,names_and_titles)
1806 IF(nthgrp01(9)/=0)
THEN
1807 WRITE(chr_old,
'(I2.2)')irunn
1810 filnamth=rootnam(1:rootlen)//
'T'//filth
1812 IF(th_vers>=50)
THEN
1813 filnamth=rootnam(1:rootlen)
1814 . //
'_'//chrun//
'_'//abc(9)//
'.thy'
1819 ifiltitl = iutitlhi(9)
1821 CALL hist1(filnamth,ifil,nthgrp1(9),long,
1823 3
subsets ,output%TH%ITHGRPI ,output%TH%ITHBUFI ,
igeo,
1824 4
ipm ,
ipart(1+lipart1*(npart+nthpart)+16*(npart+nthpart)),2,1,
1825 5 1 ,aform(9) ,ithflag ,
ithvar,
1826 6 ifiltitl,output%TH%SITHBUFI,names_and_titles)
1829 WRITE(chr_old,
'(I2.2)')irunn
1832 2
ixp ,
ixr ,nodes%ITAB ,pm ,
1834 4
ipari ,
ipart ,output%TH%ITHGRP ,output%TH%ITHBUF ,chr_old,names_and_titles)
1837 IF(nabfile /= 0)
THEN
1839 IF(abfile(1) /=0)
THEN
1840 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'.tmp'
1844 CALL abfhist1(filnamabf_tmp ,ifilabf ,nthgrp ,long_tmp,
1846 3
subsets ,output%TH%ITHGRP ,output%TH%ITHBUF ,
igeo,
1848 5 12 ,
ithvar ,ithflag,names_and_titles,
1849 6 output%TH%SITHBUF )
1850 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'.abf'
1858 ifilnam(i)=ichar(tmp_name(i:i))
1860 DO i=1,len_tmp_name2
1861 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
1866 rnb_index_abf =
min(rmaxint,(tstop-tt)/dtabf(1))
1867 nb_index_abf = int(rnb_index_abf)+1
1869 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
1872 IF(nthgrp01(1)/=0 .AND. abfile(2) /=0)
THEN
1873 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_a.tmp'
1878 CALL abfhist1(filnamabf_tmp ,ifilabf ,nthgrp1(1) ,long_tmp,
1879 2 wa ,pm ,geo ,
ipart,
1880 3
subsets ,output%TH%ITHGRPA ,output%TH%ITHBUFA ,
igeo,
1881 4
ipm ,
ipart(1+lipart1*(npart+nthpart)) ,2,1,
1882 5 1 ,
ithvar ,ithflag,names_and_titles,
1883 6 output%TH%SITHBUFA)
1884 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_a.abf'
1892 ifilnam(i)=ichar(tmp_name(i:i))
1895 DO i=1,len_tmp_name2
1896 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
1898 nb_index_abf = nint((tstop-tt)/dtabf(2))+1
1899 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
1900 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
1903 IF(nthgrp01(2)/=0 .AND. abfile(3) /=0)
THEN
1904 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_b.tmp'
1909 CALL abfhist1(filnamabf_tmp ,ifilab f ,nthgrp1(2) ,long_tmp,
1910 2 wa ,pm ,geo ,
ipart,
1911 3
subsets ,output%TH%ITHGRPB,output%TH%ITHBUFB ,
igeo,
1912 4
ipm ,
ipart(1+lipart1*(npart+nthpart)+2*(npart+nthpart)),2,1,
1913 5 1 ,
ithvar ,ithflag,names_and_titles,
1914 6 output%TH%SITHBUFB)
1915 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_b.abf'
1924 ifilnam(i)=ichar(tmp_name(i:i))
1927 DO i=1,len_tmp_name2
1928 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
1930 nb_index_abf = nint((tstop-tt)/dtabf(3))+1
1931 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
1932 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
1935 IF(nthgrp01(3)/=0 .AND. abfile(4) /=0)
THEN
1936 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_c.tmp'
1941 CALL abfhist1(filnamabf_tmp ,ifilabf ,nthgrp1(3) ,long_tmp,
1942 2 wa ,pm ,geo ,
ipart ,
1943 3
subsets ,output%TH%ITHGRPC ,output%TH%ITHBUFC ,
igeo,
1945 5 1 ,
ithvar ,ithflag,names_and_titles,
1946 6 output%TH%SITHBUFC)
1947 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_c.abf'
1955 ifilnam(i)=ichar(tmp_name(i:i))
1958 DO i=1,len_tmp_name2
1959 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
1961 nb_index_abf = nint((tstop-tt)/dtabf(4))+1
1962 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name2,
1963 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
1966 IF(nthgrp01(4)/=0 .AND. abfile(5) /=0)
THEN
1967 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_d.tmp'
1972 CALL abfhist1( filnamabf_tmp ,ifilabf ,nthgrp1(4) ,long_tmp,
1973 2 wa ,pm ,geo ,
ipart,
1974 3
subsets ,output%TH%ITHGRPD ,output%TH%ITHBUFD ,
igeo,
1976 5 1 ,
ithvar ,ithflag,names_and_titles,
1977 6 output%TH%SITHBUFD)
1978 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_d.abf'
1986 ifilnam(i)=ichar(tmp_name(i:i))
1988 DO i=1,len_tmp_name2
1989 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
1991 nb_index_abf = nint((tstop-tt)/dtabf(5))+1
1992 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
1993 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
1995 IF(nthgrp01(5)/=0 .AND. abfile(6) /=0)
THEN
1996 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_e.tmp'
2001 CALL abfhist1( filnamabf_tmp ,ifilabf,nthgrp1(5),long_tmp,
2002 2 wa ,pm ,geo ,
ipart,
2003 3
subsets ,output%TH%ITHGRPE ,output%TH%ITHBUFE ,
igeo,
2005 5 1 ,
ithvar ,ithflag,names_and_titles,
2006 6 output%TH%SITHBUFE)
2007 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_e.abf'
2015 ifilnam(i)=ichar(tmp_name(i:i))
2017 DO i=1,len_tmp_name2
2018 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
2020 nb_index_abf = nint((tstop-tt)/dtabf(6))+1
2021 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
2022 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
2026 '_'//chrun//
'_f.tmp'
2031 CALL abfhist1(filnamabf_tmp,ifilabf,nthgrp1(6),long_tmp,
2032 2 wa ,pm ,geo ,
ipart ,
2033 3
subsets ,output%TH%ITHGRPF,output%TH%ITHBUFF,
igeo ,
2035 5 1 ,
ithvar,ithflag,names_and_titles,
2036 6 output%TH%SITHBUFF)
2037 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_f.abf'
2045 ifilnam(i)=ichar(tmp_name(i:i))
2047 DO i=1,len_tmp_name2
2048 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
2050 nb_index_abf = nint((tstop-tt)/dtabf(7))+1
2051 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
2052 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
2055 IF(nthgrp01(7)/=0 .AND. abfile(8) /=0)
THEN
2056 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_g.tmp'
2061 CALL abfhist1(filnamabf_tmp,ifilabf,nthgrp1(7),long_tmp,
2062 2 wa ,pm ,geo ,
ipart ,
2063 3
subsets ,output%TH%ITHGRPG,output%TH%ITHBUFG,
igeo ,
2065 5 1 ,
ithvar,ithflag,names_and_titles,
2066 6 output%TH%SITHBUFG)
2068 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_g.abf'
2077 ifilnam(i)=ichar(tmp_name(i:i))
2080 DO i=1,len_tmp_name2
2081 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
2084 nb_index_abf = nint((tstop-tt)/dtabf(8))+1
2085 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
2086 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
2089 IF(nthgrp01(8)/=0 .AND. abfile(9) /=0)
THEN
2090 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_h.tmp'
2096 CALL abfhist1(filnamabf_tmp ,ifilabf ,nthgrp1(8) ,long_tmp,
2097 2 wa ,pm ,geo ,
ipart,
2098 3
subsets ,output%TH%ITHGRPH ,output%TH%ITHBUFH ,
igeo,
2100 5 1 ,
ithvar ,ithflag ,names_and_titles,
2101 6 output%TH%SITHBUFH)
2103 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_h.abf'
2112 ifilnam(i)=ichar(tmp_name(i:i))
2115 DO i=1,len_tmp_name2
2116 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
2118 nb_index_abf = nint((tstop-tt)/dtabf(9))+1
2120 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
2121 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
2124 IF(nthgrp01(9)/=0 .AND. abfile(10) /=0)
THEN
2125 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_i.tmp'
2130 CALL abfhist1(filnamabf_tmp ,ifilabf,nthgrp1(9) ,long_tmp ,
2131 2 wa ,pm ,geo ,
ipart,
2132 3
subsets ,output%TH%ITHGRPI ,output%TH%ITHBUFI ,
igeo ,
2133 4
ipm ,
ipart(1+lipart1*(npart+nthpart)+16*(npart+nthpart)),2,1,
2134 5 1 ,
ithvar ,ithflag,names_and_titles,
2135 6 output%TH%SITHBUFI)
2137 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_i.abf'
2145 ifilnam(i)=ichar(tmp_name(i:i))
2148 DO i=1,len_tmp_name2
2149 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
2152 nb_index_abf = nint((tstop-tt)/dtabf(10))+1
2153 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
2154 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
2158 WRITE(6,
'(A)')
'*** ERROR /ABF is not available'
2173 k1=1+lipart1*(npart+nthpart)+2*9*(npart+nthpart)
2184 CALL rad_init_madcpl(
ipart, pm, geo, nodes%ITAB,
2185 * nodes%X, nodes%MS,
2186 * element%SHELL%IXC ,
ixtg ,
ixs ,
2197 CALL checksum_option_outfile(output%checksum)
2200 CALL resol_head(element, nodes, itask ,af ,iaf ,idata ,rdata,
2201 . graphe ,iflow ,rflow ,
2202 . stack ,irunn_bis , timers,
2206 . forneqs ,pinch_data ,ale_connectivity,
2207 . drape_sh4n ,drape_sh3n ,t_monvol ,sensors ,ebcs_tab ,
2208 . diffusion ,segvar ,dynain_data ,drapeg ,user_windows ,
2209 . output ,interfaces ,dt ,loads ,mat_elem , python,
2210 . names_and_titles, unitab ,skews,liflow ,lrflow ,glob_therm,pblast,
2211 . rbe3, coupling,rwall)
2220 CALL TERMINATE_MADCPL(N)
2225 CALL INIPAR(coupling,ITID,2,NNODES,INPUTNAM,GOT_INPUT,NBTASK)
2233 CALL USER_WINDOWS_CLEAN(USER_WINDOWS)
2234 CALL TH_CLEAN(OUTPUT%TH)
2236 DEALLOCATE(IFLOW, RFLOW)