179 USE user_interface_mod
181 USE output_mod ,
ONLY : output_, output_ptr
196 use checksum_output_option_mod
197 use file_descriptor_mod,
only : fd_bin_th,fd_bin_rd_rst,fd_bin_wr_rst
198 use coupling_adapter_mod
202#include "implicit_f.inc"
206#include "mvsiz_p.inc"
211#include "com01_c.inc"
212#include "com04_c.inc"
213#include "com06_c.inc"
214#include "com08_c.inc"
215#include "com10_c.inc"
216#include "com_xfem1.inc"
217#include "intstamp_c.inc"
219#include "units_c.inc"
220#include "param_c.inc"
221#include "scr02_c.inc"
222#include "scr03_c.inc"
223#include "scr05_c.inc"
224#include "scr06_c.inc"
225#include "scr07_c.inc"
226#include "scr13_c.inc"
227#include "scr14_c.inc"
228#include "scr17_c.inc"
229#include "scr18_c.inc"
230#include "scr20_c.inc"
231#include "scr23_c.inc"
232#include "scr_fac_c.inc"
233#include "chara_c.inc"
236#include "parit_c.inc"
238#include "flowcom.inc"
239#include "impl1_c.inc"
240#include "tabsiz_c.inc"
242#include "filescount_c.inc"
243#include "rad2r_c.inc"
244#include "userlib.inc"
245#include "drape_c.inc"
246#include "inter22.inc"
247#include "couple_c.inc"
251 INTEGER MRDATA,MIDATA
257 INTEGER ITASK, ITID(PARASIZ), NBTASK(PARASIZ+1),
258 . IFILNAM(2148), IFILNAM_TMP(2148)
259 INTEGER ITSTV1, IEXPM, IRUNN, IRFL, IRFE, IRR, IT, JT, I,
261 . I13A,I13B,I13C,I13D,I13E,I13F,I13G,I13H,I76A,I88A,I89A,
262 . I40A,I40B,I40G,I78N,IO_ERR,LEN_G,LEN_M, IAD1, IAD2, IAD3,
263 . IUN,IFUN, ITH, I76ATH(9), IFIL, IO_ERRL,
264 . RADIOSSV,RADFLEXV,RDFLEXCOMP,ABFV,ABFCOMP,IFILABF,
265 . NB_OF_FILES,N_FAIL,IP,IRUNN_BIS,IFILTITL
266 INTEGER OMP_GET_THREAD_NUM,LONG,LONG_TMP,
267 . LENV,FVERS,LFNAME,NB_INDEX_ABF
268 CHARACTER FILNAM*100, CHRUNM1*2, INPUTNAM*100,
269 . CHR_OLD*2,FNAME*2048,IOFF1*3,IOFF2*3,IOFF3*3
271 CHARACTER*4 PROCNAM,CHRU_M1
278 CHARACTER (26)*1, FILNAMTH*100, FILTH*3, LINE*256,
279 . FILNAMABF*100,FILNAMABF_TMP*100
280 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'
282 INTEGER LHEADER, LVARINT, LVARREA
283 INTEGER PRADIOS,PRESFIL
284 INTEGER I15A,I15B,I15C,I15D,I15E,I15F,I15G,I15H,I15I,I15J,
288 INTEGER IERROR,MADSTRLEN
289 CHARACTER MAD_OPTION_STRING*256
290 INTEGER KMADPRT,KMADSH4,KMADSH3,KMADSOL,KMADNOD,KMADFAIL,K1,K2,K3,K4,K5,K6,K7,K8,,K10,K11
291 INTEGER BUFTEST(100),NB_MAN,FLAG_MAIN,J, ILAW51,ILAW37,
293 my_real,
DIMENSION(:),
ALLOCATABLE :: forneqs
294 TYPE(
prgraph),
DIMENSION(:),
ALLOCATABLE :: GRAPHE
295 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IFLOW
296 my_real,
DIMENSION(:),
ALLOCATABLE :: rflow
298 SAVE itask, irfe, itid
300 INTEGER MLN,IMID,MMALE,,FLAG_CST_AMS
301 INTEGER IPPID ,IPMAT, IPMAT_IPLY ,IPANG,IPTHK ,IPPOS,IS,IPT
303 TYPE (STACK_PLY) :: STACK
304 TYPE (MULTI_FVM_STRUCT) :: MULTI_FVM
305 TYPE (H3D_DATABASE) ::
307 TYPE (PINCH) :: PINCH_DATA
308 TYPE(
drape_),
DIMENSION(:),
ALLOCATABLE :: DRAPE_SH4N,DRAPE_SH3N
310 TYPE(output_),
TARGET :: OUTPUT
311 TYPE(python_) :: PYTHON
313 INTEGER :: CURRENT_RUN,
314 REAL(kind=8) :: local_starter_time,local_engine_time,result
316 INTEGER :: LEN_TMP_NAME,LEN_TMP_NAME2,BOOL_C
317 CHARACTER(len=2048) :: TMP_NAME,TMP_NAME2
318 INTEGER :: DYN_LIB_MODE
319 INTEGER :: RADFLEX_PROCESS_PID
320 INTEGER IUTITLHIS,IUTITLHI(9)
321 TYPE (DYNAIN_DATABASE) :: DYNAIN_DATA
322 TYPE (INTERFACES_) ::
325 TYPE (LOADS_) :: LOADS
326 TYPE (MAT_ELEM_) :: MAT_ELEM
327 TYPE (SKEW_) :: SKEWS
328 type (glob_therm_) :: glob_therm
329 TYPE (PBLAST_) :: PBLAST
332 INTEGER,
DIMENSION(:),
ALLOCATABLE :: MDS_OUTPUT_TABLE
337 TYPE(t_ebcs_tab) :: EBCS_TAB
338!
TYPE(T_CG_SOLVER) :: LINEAR_SOLVER
340 TYPE(t_mumps_solver) :: LINEAR_SOLVER
349 TYPE(connectivity_) :: element
350 TYPE(nodal_arrays_),
target :: nodes
351 TYPE(timer_) :: TIMERS
353 TYPE(coupling_type) ::
360#include
"build_info.inc"
379 WRITE(versio(2),
'(A)')
' '
380 WRITE(versio(2),
'(A,A,A)')
'VERSION ',vers(1:lenv),
','
382 rvers(1:lenv)=vers(1:lenv)
401 output%TH%WFEXT = 0.0d0
402 output%TH%WFEXT_MD = 0.0d0
404 output%CHECKSUM%CHECKSUM_COUNT = 0
407#include "machine2.inc"
417 IF(ir4r8==2) itstv1 = -itstv1
434! ----------------------------------------
440! add
the real elapsed time
517 user_interface_nodes => nodes
518 IF(got_userl_altname==1)
THEN
519 dlibfile(1:len_userl_altname)=userl_altname(1:len_userl_altname)
520 dlibfile_size=len_userl_altname
522 dlibfile=
'libraduser_'
523 dlibfile_size=len_trim(dlibfile)
527 CALL dyn_userlib_init(dlibfile,dlibfile_size,userl_avail,dlibtkvers,iresp,got_userl_altname,
544 CALL mds_userlib_init(iresp,mds_avail,mds_ver,mds_path,mds_path_len)
563 IF (got_input == 1)
THEN
572 inputnam(1:leninput)=input(1:leninput)
576 fname(1:leninput) = inputnam(1:leninput)
578 lfname=leninput+lenpath
581 rad_inputname(1:lfname)=fname(1:lfname)
582 len_rad_inputname=lfname
587 tmp_name2(1:2048) =
''
594 . iname, ierr,1024,len_tmp_name,tmp_name,
595 . len_tmp_name2,tmp_name2)
599 OPEN(unit=istdi,form=
'FORMATTED',file=iname(1:lfname),
600 . action=
'READ',status=
'OLD',iostat=io_err)
602 CALL ancmsg(msgid=144,anmode=aninfo,
603 . c1=fname(1:lfname))
619 coupling%FILNAM=rootn(1:lenrootn)//
'.cpl'
620 CALL inipar(coupling,itid,1,nnodes,inputnam,got_input,nbtask)
632 IF ( got_input == 0)
THEN
637 WRITE(unit=iout,iostat=ios,fmt=
'(A)')
638 OPEN(unit=istdi,form=
'FORMATTED',file=inputnam,status=
'OLD',iostat=io_err)
640 CALL ancmsg(msgid=145,anmode=aninfo,
649 WRITE(unit=iout,iostat=ios,fmt=
'(A)')
655 CALL lecinp(irunn,irfl,irfe,h3d_data,flag_cst_ams,dynain_data,
656 . sensors,dt,output,glob_therm)
660 IF(kdtint==0 )nfskyi=4
662 IF (got_input==0)
THEN
667 WRITE(chrun,
'(I2.2)')irunn
668 rad_inputname=rootnam(1:rootlen)//
'D'//chrun
669 len_rad_inputname=len_trim(rad_inputname)
679 IF (impl_s>zero.AND.iline==zero.AND.solvnfo>zero)
THEN
681 filnam=rootnam(1:rootlen)//
'_'//chrun//
'.progress'
684 OPEN(unit=isolpgrs,file=tmp_name(1:len_tmp_name),
685 . access=
'SEQUENTIAL',
686 . form=
'FORMATTED',status=
'UNKNOWN')
687 WRITE(isolpgrs,
'(I4)') 0
688 WRITE(isolpgrs,
'(E11.4)') zero
689 WRITE(isolpgrs,
'(I4)') 0
690 WRITE(isolpgrs,
'(I4)') 0
691 WRITE(isolpgrs,
'(I4)'
694 filnam=rootnam(1:rootlen)//
'_'//chrun//
'.monitor'
697 OPEN(unit=isolmntr,file=tmp_name(1:len_tmp_name),
698 . access=
'SEQUENTIAL',
699 . form=
'FORMATTED',status=
'UNKNOWN')
701 filnam=rootnam(1:rootlen)//
'_'//chrun//
'_implicit.hist'
704 OPEN(unit=isolhist,file=tmp_name(1:len_tmp_name),
705 . access=
'SEQUENTIAL',
706 . form=
'FORMATTED',status=
'UNKNOWN')
708 WRITE(isolhist,1007)
'Cumulative iterations',
'Cycle',
709 .
'Iteration per cycle',
710 .
'Residual disp.',
'Residual force',
'Residual energy',
711 .
'Tolerance disp.',
'Tolerance force',
'Tolerance energy',
712 .
'Converged step','diverged step
',
713 . 'time
','line search coefficient
','load factor
','arc length
'
715 WRITE(ISOLHIST,1003) 'cumulative iterations
','cycle
',
716 . 'iteration per cycle
',
717 . 'residual disp.
','residual force
','residual energy
',
718 . 'tolerance disp.
','tolerance force
','tolerance energy
',
719 . 'converged step
','diverged step
',
720 . 'time
','line search coefficient
'
7221003 FORMAT(A,',
',A,',
',A,',
',A,',
',A,',
',A,',
',A,',
',A,',
',A,
723 . ',
',A,',
',A,',
',A,',
',A)
7241007 FORMAT(A,',
',A,',
',A,',
',A,',
',A,',
',A,',
',A,',
',A,',
',A,
725 . ',
',A,',
',A,',
',A,',
',A,',
',A,',
',A)
727 FILNAM=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'_implicit.info
'
728 INPUTNAM='check_data
'
729 LEN_TMP_NAME = OUTFILE_NAME_LEN+ROOTLEN+19
730 TMP_NAME=OUTFILE_NAME(1:OUTFILE_NAME_LEN)//FILNAM(1:ROOTLEN+19)
731 OPEN(UNIT=ISOLINFO,FILE=TMP_NAME(1:LEN_TMP_NAME),
732 . ACCESS='sequential
',
733 . FORM='formatted
',STATUS='unknown
')
735 FILNAM=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'_implicit.tpl
'
736 LEN_TMP_NAME = OUTFILE_NAME_LEN+ROOTLEN+18
737 TMP_NAME=OUTFILE_NAME(1:OUTFILE_NAME_LEN)//FILNAM(1:ROOTLEN+18)
738 INPUTNAM='check_data
'
739 OPEN(UNIT=ISOLTPL,FILE=TMP_NAME(1:LEN_TMP_NAME),
740 . ACCESS='sequential
',
741 . FORM='formatted
',STATUS='unknown
')
742 FILNAM=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'_implicit
'
743 WRITE(ISOLTPL,1004) FILNAM(1:ROOTLEN+14)
745 FILNAM=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'_implicit.hist
'
746 WRITE(ISOLTPL,1006) FILNAM(1:ROOTLEN+19)
751.OR..OR..OR.
IF (NITOL == 1 NITOL == 12 NITOL == 13 NITOL == 123) IOFF1 = 'on
'
752.OR..OR..OR..OR.
IF (NITOL == 0 NITOL == 2 NITOL == 12 NITOL == 23 NITOL == 123) IOFF2 = 'on
'
753.OR..OR..OR.
IF (NITOL == 3 NITOL == 13 NITOL == 23 NITOL == 123) IOFF3 = 'on
'
755 FILNAM=ROOTNAM(1:ROOTLEN)
756 CALL WRITE_TPL_FILE(FILNAM(1:ROOTLEN),IOFF1,IOFF2,IOFF3)
7571004 FORMAT('*definereport(
',A,', plot_file_1)
')
7581005 FORMAT(' *
id(
"HyperWorks",
"Report")
')
7591006 FORMAT(' *parameter(plot_file_1, plot_file_1, filename,
"*",
"',A,'")
')
762 WRITE(CHRUN,'(i4.4)
')IRUNN
765 FILNAM=ROOTNAM(1:ROOTLEN)//'_
'//CHRUN//'.out'
768 inputnam=
'CHECK_DATA'
769 OPEN(unit=iout,file=tmp_name(1:len_tmp_name),access=
'SEQUENTIAL',form=
'FORMATTED',status=
'UNKNOWN')
770 output%OUT_FILENAME(1:len_tmp_name)=tmp_name(1:len_tmp_name)
772 DO WHILE (io_errl>=0)
773 READ(iout,
'(A)',
END = 1000,IOSTAT=IO_ERRL)line
776 WRITE(iout,
'(1X,A)')filnam(1:rootlen+9)
777 WRITE(procnam,
'(I4.4)')ispmd
778 filnam =rootnam(1:rootlen)//
'_'//chrun//
'_'//procnam//
'.rst'
781 WRITE(procnam,
'(I4.4)')ispmd+1
782 filnam =rootnam(1:rootlen)//
'_'//chrun//
'_'//procnam//
'.rst'
786 WRITE(chr_old,
'(I2.2)')irunn
787 filnam=rootnam(1:rootlen)//
'_'//chrun//
'.out'
789 IF (got_input == 0)
THEN
790 inputnam=rootnam(1:rootlen)//
'D'//chr_old
792 . inputnam=rootnam(1:rootlen)//
'_'//chrun//
'.rad'
794 inputnam(1:leninput)=input(1:leninput)
796 len_tmp_name = outfile_name_len+rootlen+9
797 tmp_name=outfile_name(1:outfile_name_len)//filnam(1:rootlen+9)
798 OPEN(unit=iout,file=tmp_name(1:len_tmp_name),
799 . access=
'SEQUENTIAL',
800 . form=
'FORMATTED',status=
'UNKNOWN')
802 output%OUT_FILENAME(1:len_tmp_name)=tmp_name(1:len_tmp_name)
803 WRITE(iout,
'(1X,A)')filnam(1:rootlen+9)
805 WRITE(chru_m1,
'(I4.4)')irunn-1
806 WRITE(procnam,
'(I4.4)')ispmd
807 filnam=rootnam(1:rootlen)//
'_'//chru_m1//
'_'//procnam
810 WRITE(chru_m1,
'(I4.4)')irunn-1
811 WRITE(procnam,
'(I4.4)')ispmd+1
812 filnam=rootnam(1:rootlen)//
'_'//chru_m1//
'_'//procnam
814 IF(chrun0(1:1)==
'_')
THEN
815 filnam=filnam(1:len)//chrun0
818 filnam=filnam(1:len)//
'.rst'
825 len_tmp_name = outfile_name_len + len
826 tmp_name=outfile_name(1:outfile_name_len)//filnam(1:len)
832 ifilnam(i)=ichar(tmp_name(i:i))
836 CALL open_c(ifilnam,len_tmp_name,1)
839 filnam(i:i) = char(ifilnam(i))
844 * filnam,rootlen,chrun,iresp,0)
846 * filnam,rootlen,chrun,iresp,1)
858 CALL rdresa(itstv1 ,lheader ,lvarint ,lvarrea ,pradios ,
859 . presfil, multi_fvm, h3d_data,
860 . pinch_data,dynain_data,interfaces,sensors,loads,
861 . mat_elem,names_and_titles,skews ,glob_therm,pblast,
868 IF(pradios/=iradios.OR.presfil/=iresfil)
THEN
869 CALL ancmsg(msgid=146,anmode=aninfo)
875 IF(itestv/=itstv1.OR.nvsiz>mvsiz)
THEN
876 CALL ancmsg(msgid=147,anmode=aninfo)
877 IF(debug(2)<2)
CALL arret(2)
889 CALL inipar(coupling,itid,3,nnodes,inputnam,got_input,nbtask)
893 CALL spmd_allreduce(glob_therm%NFXFLUX,nfxflux_glob,1,spmd_sum)
895 nfxflux_glob = glob_therm%NFXFLUX
897 IF(nfxflux_glob >0 .AND. (iparit > 0 .OR. iparit == -1))
THEN
900 WRITE(6,*)
"WARNING: /IMPFLUX is not compatible with",
901 .
" /PARITH/ON, switching to /PARITH/OFF"
907 CALL iniresa(h3d_data,pinch_data,glob_therm)
913 WRITE(iout,
'(1X,A,I5)')
'NUMBER OF SPMD DOMAINS ',
915 IF(nbtask(nspmd+1) == nspmd*nthread)
THEN
917 WRITE(iout,
'(1X,A,I5)')
'NUMBER OF THREADS PER DOMAIN ',
919 WRITE(iout,
'(1X,A,I5)')
'NUMBER OF HMPP PROCESSES ',
921 WRITE(istdo,
'(1X,A,I5)')
'NUMBER OF HMPP PROCESSES ',
926 WRITE(iout,
'(1X,A,I5,A,I5)')
'DOMAIN',i,
927 .
', NUMBER OF THREADS ',
930 WRITE(iout,
'(1X,A,I5)')
'NUMBER OF HMPP PROCESSES ',
932 WRITE(istdo,
'(1X,A,I5)')
'NUMBER OF HMPP PROCESSES ',
938 CALL qaopen(
'engine')
952 sigeo = npropgi*numgeo
953 sipm = npropmi*nummat
957 IF (multi_fvm%IS_USED)
THEN
958 multi_fvm%MUSCL = alemuscl_param%IALEMUSCL
961 CALL ale_connectivity%ALE_CONNECTIVITY_INIT
964 CALL restalloc(element,nodes,multi_fvm,h3d_data,pinch_data,ale_connectivity,segvar,interfaces,skews,
972 IF(ifif>0)
ALLOCATE (iaf(ifif),stat=iadif)
973 IF(mfif>0)
ALLOCATE (af(mfif),stat=iadrf)
974 IF(iadrf/=0.OR.iadif/=0)
THEN
975 CALL ancmsg(msgid=20,anmode=aninfo)
981 ALLOCATE(t_monvol(nvolu))
985 ALLOCATE(table(ntable),stat=ierr)
987 CALL ancmsg(msgid=20,anmode=aninfo)
1000 ALLOCATE(iflow(liflow), rflow(lrflow))
1002 ALLOCATE(iflow(0), rflow(0))
1013 IF(nitsche > 0 )
THEN
1014 ALLOCATE(forneqs(3*numnod))
1016 ALLOCATE(forneqs(0))
1020 CALL stack_ply_alloc(stack,ipart_stack,npt_stack,ns_stack)
1025 IF (ndrape > 0)
THEN
1026 ALLOCATE(drape_sh4n(numelc_drape),drape_sh3n(numeltg_drape))
1027 ALLOCATE(drapeg%INDX_SH4N(numelc),drapeg%INDX_SH3N(numeltg))
1028 drapeg%INDX_SH4N = 0
1029 drapeg%INDX_SH3N = 0
1031 ALLOCATE(drape_sh4n(0),drape_sh3n(0),drapeg%INDX_SH4N(0),
1032 . drapeg%INDX_SH3N(0) )
1036 ALLOCATE(global_comp_time%ENGINE_TIME(irunn))
1037 global_comp_time%ENGINE_TIME(1:irunn) = zero
1038 global_comp_time%RUN_NBR = irunn
1039 global_comp_time%RST_NAME(1:1000)=
''
1040 global_comp_time%RST_NAME=rootnam(1:rootlen)//
'_'//chrun//
'_0001.rst'
1045 CALL rdresb(af ,iaf ,lvarrea ,irunn ,
1046 . multi_fvm ,h3d_data ,pinch_data ,ale_connectivity ,t_monvol ,
1047 . sensors ,ebcs_tab ,dynain_data ,user_windows ,output ,
1048 . interfaces ,loads ,mat_elem ,python ,iflow ,
1049 . skews ,rflow ,liflow ,lrflow ,impl_s0 ,
1051 . stack ,drape_sh4n ,drape_sh3n ,drapeg ,ndrape ,
1052 . glob_therm ,pblast ,element ,nodes ,rbe3)
1060 ALLOCATE(dmsph(sdmsph),stat=ierr)
1062 CALL ancmsg(msgid=20,anmode=aninfo)
1091 imid = ipart(lipart1*(i-1)+1)
1092 mln = ipm(npropmi*(imid-1)+2)
1093 IF (mln==51 .OR. mln==37 .OR. mln==20 .OR. mln == 151) mmale = 1
1094 IF (mln==51) ilaw51=1
1095 IF (mln==37) ilaw37=1
1096 IF (mln==20) ilaw20=1
1107 IF(anim_se(i)==1)
THEN
1113 IF(anim_ce(i)==1)
THEN
1119 nn_ani = nn_ani - anim_n(20)
1120 nn_ani = nn_ani - anim_n(21)
1121 nn_ani = nn_ani - anim_n(22)
1122 nn_ani = nn_ani - anim_n(23)
1129 IF(mmale==0 .OR. int22==0)
THEN
1131 nn_ani = nn_ani - anim_n(24)
1132 nn_ani = nn_ani - anim_n(25)
1133 nn_ani = nn_ani - anim_n(26)
1134 nn_ani = nn_ani - anim_n(27)
1144 nn_ani = nn_ani - anim_n(28)
1145 nn_ani = nn_ani - anim_n(29)
1149 nv_ani = nv_ani - anim_v(21)
1152 nv_ani = nv_ani - anim_v(22)
1155 nv_ani = nv_ani - anim_v(23)
1158 nv_ani = nv_ani - anim_v(24)
1161 nv_ani = nv_ani - anim_v(25)
1165 nn_ani = nn_ani + output%CHECKSUM%CHECKSUM_COUNT
1173 IF(anim_ce(i)==1)
THEN
1180 IF(anim_se(286)==1)
THEN
1187 IF(anim_se(285)==1)
THEN
1195 IF(anim_se(i)==1)
THEN
1219 IF(trimat==-2)trimat=0
1223 IF(iale+ieuler+glob_therm%ITHERM == 0)
THEN
1224 nce_ani = nce_ani - anim_ce(10672)
1225 nse_ani = nse_ani - anim_se(4892)
1234 nse_ani = nse_ani - anim_se(i)
1239 nse_ani = nse_ani - anim_se(i)
1244 nse_ani = nse_ani - anim_se(i)
1249 nse_ani = nse_ani - anim_se(i)
1254 nse_ani = nse_ani - anim_se(i)
1259 nse_ani = nse_ani - anim_se(i)
1264 nse_ani = nse_ani - anim_se(i)
1269 nse_ani = nse_ani - anim_se(i)
1274 nse_ani = nse_ani - anim_se
1278 nn_ani = nn_ani - anim_n(22)
1279 nn_ani = nn_ani - anim_n(23)
1283 nn_ani = nn_ani - anim_n(26)
1284 nn_ani = nn_ani - anim_n(27)
1291 nse_ani = nse_ani - anim_se(4935)
1292 nse_ani = nse_ani - anim_se(4936)
1298 IF(ilaw20 == 0 .AND. ilaw51 == 0)
THEN
1300 nce_ani = nce_ani - anim_ce(i)
1305 IF(ale%GLOBAL%I_DT_NODA_ALE_ON_KEY==1) ale%GLOBAL%I_DT_NODA_ALE_ON = 1
1309 previous_run = global_comp_time%RUN_NBR-1
1310 CALL spmd_allreduce(global_comp_time%STARTER_TIME,local_starter_time,1,spmd_max)
1311 global_comp_time%STARTER_TIME = local_starter_time
1312 IF(previous_run>0)
THEN
1313 CALL spmd_allreduce(global_comp_time%ENGINE_TIME(previous_run),local_engine_time,1,spmd_max)
1314 global_comp_time%ENGINE_TIME(previous_run) = local_engine_time
1319 IF(isms_selec==0.AND.flag_cst_ams==1)
THEN
1321 CALL ancmsg(msgid=278,anmode=aninfo_blind)
1325 CALL ancmsg(msgid=245,anmode=aninfo_blind)
1330 IF(idtmins==1.OR.(idtmins_old==1.AND.mcheck/=0))
THEN
1331 IF(idtmins_old /= 1)
THEN
1332 ALLOCATE(admsms(numnod),res_sms
1334 CALL ancmsg(msgid=19,anmode=aninfo,
1335 . c1=
'(/DT/.../AMS)')
1339 IF(idtmins_old /= 2)
THEN
1340 ALLOCATE(diag_sms(numnod),stat=ierr)
1342 CALL ancmsg(msgid=19,anmode=aninfo,
1343 . c1=
'(/DT/.../AMS)')
1346 IF(mcheck==0)diag_sms(1:numnod)=nodes%MS(1:numnod)
1348 ELSEIF(idtmins==2)
THEN
1349 IF(idtmins_old /= 2)
THEN
1350 ALLOCATE(dmelc(numelc),dmeltg(numeltg),dmels(numels),
1351 . dmeltr(numelt),dmelp(numelp
1352 . diag_sms(numnod),dmint2(4*i2nsn25),
1355 CALL ancmsg(msgid=19,anmode=aninfo,
1356 . c1=
'(/DT/.../AMS)')
1359 dmelc(1:numelc)=zero
1360 dmeltg(1:numeltg)=zero
1361 dmels(1:numels)=zero
1362 dmeltr(1:numelt)=zero
1363 dmelp(1:numelp)=zero
1364 dmelrt(1:numelr)=zero
1365 dmint2(1:4*i2nsn25)=zero
1366 diag_sms(1:numnod)=nodes%MS(1:numnod)
1368 IF(idtmins_old /= 1 .AND. idtmins_old /= 2)
THEN
1369 ALLOCATE(res_sms(3*numnod),stat=ierr)
1371 CALL ancmsg(msgid=19,anmode=aninfo,
1372 . c1=
'(/DT/.../AMS)')
1376 ELSEIF(idtmins_int/=0)
THEN
1377 IF(idtmins_int_old==0)
THEN
1378 ALLOCATE(res_sms(3*numnod),stat=ierr)
1379 ALLOCATE(diag_sms(numnod),dmint2(4*i2nsn25),stat=ierr)
1381 CALL ancmsg(msgid=19,anmode=aninfo,
1382 . c1=
'(/DT/.../AMS)')
1385 diag_sms(1:numnod)=nodes%MS(1:numnod)
1388 IF(.NOT.
ALLOCATED(admsms))
ALLOCATE(admsms(0))
1389 IF(.NOT.
ALLOCATED(dmelc ))
ALLOCATE(dmelc(0))
1390 IF(.NOT.
ALLOCATED(dmeltg))
ALLOCATE(dmeltg(0))
1391 IF(.NOT.
ALLOCATED(dmels ))
ALLOCATE(dmels(0))
1392 IF(.NOT.
ALLOCATED(dmeltr))
ALLOCATE(dmeltr(0))
1393 IF(.NOT.
ALLOCATED(dmelp ))
ALLOCATE(dmelp(0))
1394 IF(.NOT.
ALLOCATED(dmelrt))
ALLOCATE(dmelrt(0))
1395 IF(.NOT.
ALLOCATED(res_sms))
ALLOCATE(res_sms(0))
1396 IF(.NOT.
ALLOCATED(diag_sms))
ALLOCATE(diag_sms(0))
1397 IF(.NOT.
ALLOCATED(dmint2))
ALLOCATE(dmint2(0))
1405 !
If viscosity is defined(/mat/law6:nu
parameter) with collocated scheme(/mat/law151 , viscosity is solved with linear solver
1407 IF(nspmd>1 .AND. multi_fvm%NS_DIFF)
THEN
1408 WRITE(6,fmt=
'(A)')
" Fatal error: MUMPS is required to solve Navier-Stokes viscosity"
1416 IF (multi_fvm%IS_USED)
THEN
1417 multi_fvm%IS_RESTART = .true.
1419 IF (multi_fvm%NS_DIFF)
THEN
1420 CALL diffusion%INIT_DIFFUSION(linear_solver, 3, iparg, ale_connectivity)
1429 . ixr ,geo ,pm ,iparg ,mat_elem%ELBUF,
1431 . bufmat ,ipart ,igrnod ,igrpart)
1436 IF(mds_avail==1)
THEN
1438 ntask_user = nthread
1443 max_depvar=
max(max_depvar,mds_ndepsvar(i) )
1445 ALLOCATE (mds_output_table(mds_nmat*max_depvar) )
1448 IF(.NOT.
ALLOCATEDTHEN
1449 ALLOCATE( mds_label(1024,mds_nmat) )
1451 IF(.NOT.
ALLOCATED(mds_ndepsvar))
THEN
1452 ALLOCATE( mds_ndepsvar(mds_nmat) )
1454 IF(.NOT.
ALLOCATED(mds_output_table) )
THEN
1455 ALLOCATE (mds_output_table(mds_nmat*max_depvar) )
1461 CALL lectur( nodes%ICODE , nodes%ISKEW , iskwn , ixtg , ixs ,
1462 2 ixq , element%SHELL%IXC , ixt
1463 3 nodes%ITAB , nodes%ITABM1 ,npc, iparg, igrv ,
1465 5 npby , lpby ,ilink, llink ,linale ,
1466 6 neflsw , nnflsw , icut , iaf(if01),
1467 7 nodes%X ,nodes%V, nodes%VR, nodes%MS ,nodes%IN ,
1468 8 skews%SKEW ,tf ,rby ,
1469 9 wa ,crflsw ,xcut ,anin ,dampr ,
1470 a igrnod ,kxsp,nodes%WEIGHT ,fr_rby2 ,fr_rl,
1472 c monvol ,volmon, ipart_state,geo,table,
1474 e ipm ,h3d_data, multi_fvm,
1475 f igrpart,tag_skins6,icfield,lcfield,nodes%TAG_S_RBY,
1476 g mds_label,mds_output_table,mds_nmat,max_depvar,
1477 h mds_ndepsvar,stack,ibcl,iloadp,lloadp,sensors,
1478 i dynain_data,dt ,loads ,output,names_and_titles,
1479 j mat_elem%MAT_PARAM,glob_therm,pblast)
1483 len_iinfna=len_trim(iinfna)
1484 CALL delete_user_file(iinfna,len_iinfna)
1492 IF (mds_avail==1)
THEN
1493 CALL mds_engine_user_initialize(nspmd_user,ntask_user,ispmd_user,tstop,
1494 * mds_nmat,mds_matid,mds_files,mds_label,mds_ndepsvar,max_depvar,mds_output_table)
1502 IF ((irad2r==1).AND.(r2r_siu==1))
THEN
1510 n_fail = ipm(npropmi*(n-1)+220)
1513 IF(ipm(npropmi*(n-1)+111+ip)==25 ) ifailure_nxt = 1
1516 IF(ifailure_nxt == 1)
THEN
1522 CALL bcs0 (nodes%ICODE,nodes%ICODT,nodes%ICODR, icode_ply, icodt_ply,ibc_ply)
1524 IF (numeltg6>0)
THEN
1525 CALL cdk6bc3(nodes%ICODT ,nodes%ISKEW,iskwn,ixtg ,
1527 2 nodes%X ,skews%SKEW)
1533 .
CALL condrmat(nodes%ICODT,nodes%ICODR, irbym, lnrbym,icodrbym)
1547 IF(nthgrp01(i) /= 0 .AND. abfile(i+1) /= 0)
1548 . nb_of_files = nb_of_files + 1
1550 IF (nabfile /= 0)
THEN
1558 CALL open_abfpipe(abinp,about,iabfpipe,1,abfv,nb_of_files)
1560 IF (iabfpipe < 0)
THEN
1561 SELECT CASE (iabfpipe)
1564 CALL ancmsg(msgid=150,anmode=aninfo)
1566 CALL ancmsg(msgid=151,anmode=aninfo,i1=abfcomp)
1571 ELSEIF (abfv < abfcomp)
THEN
1572 CALL ancmsg(msgid=152,anmode=aninfo)
1582 WRITE(6,
'(A)')
'*** ERROR /ABF is not available'
1592 WRITE(chr_old,
'(I2.2)')irunn
1593 filnamth=rootnam(1:rootlen)//
'T'//chr_old
1596 filnamth=rootnam(1:rootlen)//
'_'//chrun//
'.thy'
1601 output%TH%TH_WRITE_TYPE = itform
1602 ifiltitl = iutitlhis
1604 CALL hist1( filnamth ,ifil ,nthgrp ,long,
1606 3 subsets ,output%TH%ITHGRP ,output%TH%ITHBUF ,igeo,
1607 4 ipm ,ipart ,lipart1 ,8,
1608 5 12 ,itform ,ithflag ,ithvar,
1609 6 ifiltitl,output%TH%SITHBUF ,names_and_titles)
1612 output%TH%TH_FILENAME(1:len_trim(filnamth))=filnamth(1:len_trim(filnamth))
1615 IF(nthgrp01(1)/=0)
THEN
1616 WRITE(chr_old,
'(I2.2)')irunn
1619 filnamth=rootnam(1:rootlen)//
'T'//filth
1621 IF(th_vers>=50)
THEN
1622 filnamth=rootnam(1:rootlen)
1623 . //
'_'//chrun//
'_'//abc(1)//
'.thy'
1628 ifiltitl = iutitlhi(1)
1630 CALL hist1( filnamth ,ifil ,nthgrp1(1) ,long ,
1632 3 subsets ,output%TH%ITHGRPA ,output%TH%ITHBUFA ,igeo ,
1633 4 ipm ,ipart(1+lipart1*(npart+nthpart)) ,2 ,1 ,
1634 5 1 ,aform(1) ,ithflag ,ithvar,
1635 6 ifiltitl,output%TH%SITHBUFA ,names_and_titles)
1638 IF(nthgrp01(2)/=0)
THEN
1639 WRITE(chr_old,
'(I2.2)')irunn
1642 filnamth=rootnam(1:rootlen)//
'T'//filth
1644 IF(th_vers>=50)
THEN
1645 filnamth=rootnam(1:rootlen)
1646 . //
'_'//chrun//
'_'//abc(2)//
'.thy'
1651 ifiltitl = iutitlhi(2)
1653 CALL hist1(filnamth,ifil ,nthgrp1(2) ,long,
1655 3 subsets ,output%TH%ITHGRPB ,output%TH%ITHBUFB ,igeo ,
1656 4 ipm ,ipart(1+lipart1*(npart+nthpart)+2*(npart+nthpart)),2,1,
1657 5 1 ,aform(2) ,ithflag ,ithvar,
1658 6 ifiltitl,output%TH%SITHBUFB,names_and_titles)
1661 IF(nthgrp01(3)/=0)
THEN
1662 WRITE(chr_old,
'(I2.2)')irunn
1665 filnamth=rootnam(1:rootlen)//
'T'//filth
1667 IF(th_vers>=50)
THEN
1668 filnamth=rootnam(1:rootlen)
1669 . //
'_'//chrun//
'_'//abc(3)//
'.thy'
1674 ifiltitl = iutitlhi(3)
1676 CALL hist1(filnamth ,ifil ,nthgrp1(3) ,long,
1678 3 subsets ,output%TH%ITHGRPC ,output%TH%ITHBUFC ,igeo ,
1679 4 ipm ,ipart(1+lipart1*(npart+nthpart)+4*(npart+nthpart)) ,2 ,1,
1680 5 1 ,aform(3) ,ithflag ,ithvar,
1681 6 ifiltitl,output%TH%SITHBUFC,names_and_titles)
1684 IF(nthgrp01(4)/=0)
THEN
1685 WRITE(chr_old,
'(I2.2)')irunn
1688 filnamth=rootnam(1:rootlen)//
'T'//filth
1690 IF(th_vers>=50)
THEN
1691 filnamth=rootnam(1:rootlen)
1692 . //
'_'//chrun//
'_'//abc(4)//
'.thy'
1696 ifiltitl = iutitlhi(4)
1699 CALL hist1(filnamth,ifil
1701 3 subsets ,output%TH%ITHGRPD ,output%TH%ITHBUFD ,igeo,
1702 4 ipm ,ipart(1+lipart1*(npart+nthpart)+6*(npart+nthpart)) ,2 ,1,
1703 5 1 ,aform(4) ,ithflag ,ithvar,
1704 6 ifiltitl ,output%TH%SITHBUFD,names_and_titles)
1707 IF(nthgrp01(5)/=0)
THEN
1708 WRITE(chr_old,
'(I2.2)')irunn
1711 filnamth=rootnam(1:rootlen)//
'T'//filth
1713 IF(th_vers>=50)
THEN
1714 filnamth=rootnam(1:rootlen)
1715 . //
'_'//chrun//
'_'//abc(5)//'.thy
'
1720 IFILTITL = IUTITLHI(5)
1722 CALL HIST1(FILNAMTH,IFIL ,NTHGRP1(5) ,LONG,
1724 3 SUBSETS ,OUTPUT%TH%ITHGRPE ,OUTPUT%TH%ITHBUFE ,IGEO,
1725 4 IPM ,IPART(1+LIPART1*(NPART+NTHPART)+8*(NPART+NTHPART)),2,1,
1726 5 1 ,AFORM(5) ,ITHFLAG ,ITHVAR,
1727 6 IFILTITL,OUTPUT%TH%SITHBUFE,NAMES_AND_TITLES)
1730 IF(NTHGRP01(6)/=0)THEN
1731 WRITE(CHR_OLD,'(i2.2)
')IRUNN
1734 FILNAMTH=ROOTNAM(1:ROOTLEN)//'t
'//FILTH
1736 IF(TH_VERS>=50) THEN
1737 FILNAMTH=ROOTNAM(1:ROOTLEN)
1738 . //'_
'//CHRUN//'_
'//ABC(6)//'.thy
'
1743 IFILTITL = IUTITLHI(6)
1745 CALL HIST1(FILNAMTH,IFIL ,NTHGRP1(6) ,LONG,
1747 3 SUBSETS ,OUTPUT%TH%ITHGRPF ,OUTPUT%TH%ITHBUFF ,IGEO ,
1748 4 IPM ,IPART(1+LIPART1*(NPART+NTHPART)+10*(NPART+NTHPART)),2,1,
1749 5 1 ,AFORM(6) ,ITHFLAG ,ITHVAR,
1750 6 IFILTITL,OUTPUT%TH%SITHBUFF,NAMES_AND_TITLES)
1753 IF(NTHGRP01(7)/=0)THEN
1754 WRITE(CHR_OLD,'(i2.2)
')IRUNN
1757 FILNAMTH=ROOTNAM(1:ROOTLEN)//'t'//filth
1759 IF(th_vers>=50)
THEN
1760 filnamth=rootnam(1:rootlen)
1761 . //
'_'//chrun//
'_'//abc(7)//
'.thy'
1766 ifiltitl = iutitlhi(7)
1768 CALL hist1(filnamth,ifil ,nthgrp1(7) ,long,
1770 3 subsets ,output%TH%ITHGRPG
1771 4 ipm,ipart(1+lipart1*(npart+nthpart)+12*(npart+nthpart)),2,1,
1772 5 1 ,aform(7) ,ithflag ,ithvar,
1773 6 ifiltitl,output%TH%SITHBUFG ,names_and_titles)
1776 IF(nthgrp01(8)/=0)
THEN
1777 WRITE(chr_old,
'(I2.2)')irunn
1780 filnamth=rootnam(1:rootlen)//
'T'//filth
1782 IF(th_vers>=50)
THEN
1783 filnamth=rootnam(1:rootlen)
1784 . //
'_'//chrun//
'_'//abc(8)//
'.thy'
1789 ifiltitl = iutitlhi(8)
1791 CALL hist1(filnamth ,ifil ,nthgrp1(8),long,
1793 3 subsets ,output%TH%ITHGRPH ,output%TH%ITHBUFH ,igeo,
1794 4 ipm ,ipart(1+lipart1*(npart+nthpart)+14*(npart+nthpart)),2,1,
1795 5 1 ,aform(8) ,ithflag ,ithvar,
1796 6 ifiltitl,output%TH%SITHBUFH,names_and_titles)
1799 IF(nthgrp01(9)/=0)
THEN
1800 WRITE(chr_old,
'(I2.2)')irunn
1803 filnamth=rootnam(1:rootlen)//
'T'//filth
1805 IF(th_vers>=50)
THEN
1806 filnamth=rootnam(1:rootlen)
1807 . //
'_'//chrun//
'_'//abc(9)//
'.thy'
1812 ifiltitl = iutitlhi(9)
1814 CALL hist1(filnamth,ifil,nthgrp1(9),long,
1816 3 subsets ,output%TH%ITHGRPI ,output%TH%ITHBUFI ,igeo,
1817 4 ipm ,ipart(1+lipart1*(npart+nthpart)+16*(npart+nthpart)),2,1,
1818 5 1 ,aform(9) ,ithflag ,ithvar,
1819 6 ifiltitl,output%TH%SITHBUFI,names_and_titles)
1822 WRITE(chr_old,
'(I2.2)')irunn
1824 1 iparg ,ixs ,ixq ,element%SHELL%IXC ,ixt ,
1825 2 ixp ,ixr ,nodes%ITAB ,pm ,
1826 3 npbyl ,ixtg ,irfe ,laccelm ,
1827 4 ipari ,ipart ,output%TH%ITHGRP ,output%TH%ITHBUF ,chr_old,names_and_titles)
1830 IF(nabfile /= 0)
THEN
1832 IF(abfile(1) /=0)
THEN
1833 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'.tmp'
1837 CALL abfhist1(filnamabf_tmp ,ifilabf ,nthgrp ,long_tmp,
1838 2 wa ,pm ,geo ,ipart,
1839 3 subsets ,output%TH%ITHGRP ,output%TH%ITHBUF ,igeo,
1840 4 ipm ,ipart ,lipart1 ,8,
1841 5 12 ,ithvar ,ithflag,names_and_titles,
1842 6 output%TH%SITHBUF )
1843 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'.abf'
1845 len_tmp_name = outfile_name_len + rootlen + long
1846 tmp_name=outfile_name(1:outfile_name_len)//filnamabf(1:rootlen+long)
1848 len_tmp_name2 = outfile_name_len + rootlen + long_tmp
1849 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:rootlen+long_tmp)
1851 ifilnam(i)=ichar(tmp_name(i:i))
1853 DO i=1,len_tmp_name2
1854 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
1859 rnb_index_abf =
min(rmaxint,(tstop-tt)/dtabf(1))
1860 nb_index_abf = int(rnb_index_abf)+1
1862 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
1865 IF(nthgrp01(1)/=0 .AND. abfile(2) /=0)
THEN
1866 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_a.tmp'
1871 CALL abfhist1(filnamabf_tmp ,ifilabf ,nthgrp1(1) ,long_tmp,
1872 2 wa ,pm ,geo ,ipart,
1873 3 subsets ,output%TH%ITHGRPA ,output%TH%ITHBUFA ,igeo,
1874 4 ipm ,ipart(1+lipart1*(npart+nthpart)) ,2,1,
1875 5 1 ,ithvar ,ithflag,names_and_titles,
1876 6 output%TH%SITHBUFA)
1877 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_a.abf'
1879 len_tmp_name = outfile_name_len + rootlen + long
1880 tmp_name=outfile_name(1:outfile_name_len)//filnamabf(1:rootlen+long)
1882 len_tmp_name2 = outfile_name_len + rootlen + long_tmp
1883 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:rootlen+long_tmp)
1885 ifilnam(i)=ichar(tmp_name(i:i))
1888 DO i=1,len_tmp_name2
1889 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
1891 nb_index_abf = nint((tstop-tt)/dtabf(2))+1
1892 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
1893 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
1896 IF(nthgrp01(2)/=0 .AND. abfile(3) /=0)
THEN
1897 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_b.tmp'
1902 CALL abfhist1(filnamabf_tmp ,ifilab f ,nthgrp1(2) ,long_tmp,
1903 2 wa ,pm ,geo ,ipart,
1904 3 subsets ,output%TH%ITHGRPB,output%TH%ITHBUFB ,igeo,
1905 4 ipm ,ipart(1+lipart1*(npart+nthpart)+2*(npart+nthpart)),2,1,
1906 5 1 ,ithvar ,ithflag,names_and_titles,
1907 6 output%TH%SITHBUFB)
1908 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_b.abf'
1910 len_tmp_name = outfile_name_len + rootlen + long
1911 tmp_name=outfile_name(1:outfile_name_len)//filnamabf(1:rootlen+long)
1913 len_tmp_name2 = outfile_name_len + rootlen + long_tmp
1914 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:rootlen
1917 ifilnam(i)=ichar(tmp_name(i:i))
1920 DO i=1,len_tmp_name2
1921 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
1923 nb_index_abf = nint((tstop-tt)/dtabf(3))+1
1924 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
1925 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
1928 IF(nthgrp01(3)/=0 .AND.
THEN
1929 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_c.tmp'
1934 CALL abfhist1(filnamabf_tmp ,ifilabf ,nthgrp1(3) ,long_tmp,
1935 2 wa ,pm ,geo ,ipart ,
1936 3 subsets ,output%TH%ITHGRPC ,output%TH%ITHBUFC ,igeo,
1938 5 1 ,ithvar ,ithflag,names_and_titles,
1939 6 output%TH%SITHBUFC)
1940 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_c.abf'
1942 len_tmp_name = outfile_name_len + rootlen + long
1943 tmp_name=outfile_name(1:outfile_name_len)//filnamabf(1:rootlen+long)
1945 len_tmp_name2 = outfile_name_len + rootlen + long_tmp
1946 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:rootlen+long_tmp)
1948 ifilnam(i)=ichar(tmp_name(i:i))
1951 DO i=1,len_tmp_name2
1952 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
1954 nb_index_abf = nint((tstop-tt)/dtabf(4))+1
1955 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name2,
1956 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
1959 IF(nthgrp01(4)/=0 .AND. abfile(5) /=0)
THEN
1960 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_d.tmp'
1965 CALL abfhist1( filnamabf_tmp ,ifilabf ,nthgrp1(4) ,long_tmp,
1967 3 subsets ,output%TH%ITHGRPD ,output%TH%ITHBUFD ,igeo,
1968 4 ipm ,ipart ,2 ,1 ,
1969 5 1 ,ithvar ,ithflag,names_and_titles,
1970 6 output%TH%SITHBUFD)
1971 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_d.abf'
1973 len_tmp_name = outfile_name_len + rootlen + long
1974 tmp_name=outfile_name(1:outfile_name_len)//filnamabf(1:rootlen+long)
1976 len_tmp_name2 = outfile_name_len + rootlen + long_tmp
1977 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:rootlen+long_tmp)
1979 ifilnam(i)=ichar(tmp_name(i:i))
1981 DO i=1,len_tmp_name2
1982 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
1984 nb_index_abf = nint((tstop-tt)/dtabf(5))+1
1985 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
1986 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
1988 IF(nthgrp01(5)/=0 .AND. abfile(6) /=0)
THEN
1989 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_e.tmp'
1994 CALL abfhist1( filnamabf_tmp ,ifilabf,nthgrp1(5),long_tmp,
1995 2 wa ,pm ,geo ,ipart,
1996 3 subsets ,output%TH%ITHGRPE ,output%TH%ITHBUFE ,igeo,
1997 4 ipm ,ipart ,2 ,1 ,
1998 5 1 ,ithvar ,ithflag,names_and_titles,
1999 6 output%TH%SITHBUFE)
2000 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_e.abf'
2002 len_tmp_name = outfile_name_len + rootlen + long
2003 tmp_name=outfile_name(1:outfile_name_len)//filnamabf(1:rootlen+long)
2005 len_tmp_name2 = outfile_name_len + rootlen + long_tmp
2006 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:rootlen+long_tmp)
2008 ifilnam(i)=ichar(tmp_name(i:i))
2010 DO i=1,len_tmp_name2
2011 ifilnam_tmp(i)=ichar(tmp_name2
2013 nb_index_abf = nint((tstop-tt)/dtabf(6))+1
2015 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
2018 IF(nthgrp01(6)/=0 .AND. abfile(7) /=0)
THEN
2019 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_f.tmp'
2024 CALL abfhist1(filnamabf_tmp,ifilabf,nthgrp1(6),long_tmp,
2025 2 wa ,pm ,geo ,ipart ,
2026 3 subsets ,output%TH%ITHGRPF,output%TH%ITHBUFF,igeo ,
2027 4 ipm ,ipart ,2 ,1 ,
2028 5 1 ,ithvar,ithflag,names_and_titles,
2029 6 output%TH%SITHBUFF)
2030 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_f.abf'
2032 len_tmp_name = outfile_name_len + rootlen + long
2033 tmp_name=outfile_name(1:outfile_name_len)//filnamabf(1:rootlen+long)
2035 len_tmp_name2 = outfile_name_len + rootlen + long_tmp
2036 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:rootlen+long_tmp)
2038 ifilnam(i)=ichar(tmp_name(i:i))
2040 DO i=1,len_tmp_name2
2041 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
2043 nb_index_abf = nint((tstop-tt)/dtabf(7))+1
2044 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
2045 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
2048 IF(nthgrp01(7)/=0 .AND. abfile(8) /=0)
THEN
2049 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_g.tmp'
2054 CALL abfhist1(filnamabf_tmp,ifilabf,nthgrp1(7),long_tmp,
2055 2 wa ,pm ,geo ,ipart ,
2056 3 subsets ,output%TH%ITHGRPG,output%TH%ITHBUFG,igeo ,
2057 4 ipm ,ipart ,2 ,1 ,
2058 5 1 ,ithvar,ithflag,names_and_titles,
2059 6 output%TH%SITHBUFG)
2061 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_g.abf'
2063 len_tmp_name = outfile_name_len + rootlen + long
2064 tmp_name=outfile_name(1:outfile_name_len)//filnamabf(1:rootlen+long)
2066 len_tmp_name2 = outfile_name_len + rootlen + long_tmp
2067 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:rootlen+long_tmp)
2070 ifilnam(i)=ichar(tmp_name(i:i))
2073 DO i=1,len_tmp_name2
2074 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
2077 nb_index_abf = nint((tstop-tt)/dtabf(8))+1
2078 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
2079 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
2082 IF(nthgrp01(8)/=0 .AND. abfile(9) /=0)
THEN
2083 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_h.tmp'
2089 CALL abfhist1(filnamabf_tmp ,ifilabf ,nthgrp1(8) ,long_tmp,
2090 2 wa ,pm ,geo ,ipart,
2091 3 subsets ,output%TH%ITHGRPH ,output%TH%ITHBUFH ,igeo,
2092 4 ipm ,ipart ,2 ,1 ,
2093 5 1 ,ithvar ,ithflag ,names_and_titles,
2094 6 output%TH%SITHBUFH
2096 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_h.abf'
2098 len_tmp_name = outfile_name_len + rootlen + long
2099 tmp_name=outfile_name(1:outfile_name_len)//filnamabf(1:rootlen+long)
2101 len_tmp_name2 = outfile_name_len + rootlen + long_tmp
2102 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:rootlen+long_tmp)
2105 ifilnam(i)=ichar(tmp_name(i:i))
2108 DO i=1,len_tmp_name2
2109 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
2111 nb_index_abf = nint((tstop-tt)/dtabf(9))+1
2113 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
2114 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
2117 IF(nthgrp01(9)/=0 .AND. abfile(10) /=0)
THEN
2118 filnamabf_tmp=rootnam(1:rootlen)//
'_'//chrun//
'_i.tmp'
2123 CALL abfhist1(filnamabf_tmp ,ifilabf,nthgrp1(9) ,long_tmp ,
2124 2 wa ,pm ,geo ,ipart,
2125 3 subsets ,output%TH%ITHGRPI ,output%TH%ITHBUFI ,igeo ,
2126 4 ipm ,ipart(1+lipart1*(npart+nthpart)+16*(npart+nthpart)),2,1,
2127 5 1 ,ithvar ,ithflag,names_and_titles,
2130 filnamabf=rootnam(1:rootlen)//
'_'//chrun//
'_i.abf'
2132 len_tmp_name = outfile_name_len + rootlen + long
2133 tmp_name=outfile_name(1:outfile_name_len)//filnamabf(1:rootlen+long)
2135 len_tmp_name2 = outfile_name_len + rootlen + long_tmp
2136 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:rootlen+long_tmp)
2138 ifilnam(i)=ichar(tmp_name(i:i))
2141 DO i=1,len_tmp_name2
2142 ifilnam_tmp(i)=ichar(tmp_name2(i:i))
2145 nb_index_abf = nint((tstop-tt)/dtabf(10))+1
2146 CALL build_abffile(abinp,about,iabfpipe,ifilnam,len_tmp_name,
2147 . ifilnam_tmp,len_tmp_name2,nb_index_abf)
2151 WRITE(6,
'(A)')
'*** ERROR /ABF is not available'
2156 CALL init_th0( iparg,mat_elem%ELBUF,igeo,ixr,output%TH,nodes%WEIGHT)
2166 k1=1+lipart1*(npart+nthpart)+2*9*(npart+nthpart)
2177 CALL rad_init_madcpl(ipart, pm, geo, nodes%ITAB,
2178 * nodes%X, nodes%MS,
2179 * element%SHELL%IXC ,ixtg ,ixs ,
2180 * ipart(k3),ipart(k8),ipart(k1),
2181 * madprt, madclnod, madsh4, madsh3
2190 CALL checksum_option_outfile(output%checksum)
2193 CALL resol_head(element, nodes, itask ,af ,iaf ,idata ,rdata,
2194 . graphe ,iflow ,rflow ,
2195 . stack ,irunn_bis , timers,
2196 . multi_fvm ,h3d_data ,subsets ,igrnod ,
2197 . igrbric ,igrquad ,igrsh4n ,igrsh3n ,igrtruss ,
2198 . igrbeam ,igrspring ,igrpart ,igrsurf ,igrslin ,
2199 . forneqs ,pinch_data ,ale_connectivity,
2200 . drape_sh4n ,drape_sh3n ,t_monvol ,sensors ,ebcs_tab ,
2201 . diffusion ,segvar ,dynain_data ,drapeg ,user_windows ,
2202 . output ,interfaces ,dt ,loads ,mat_elem , python,
2203 . names_and_titles, unitab ,skews,liflow ,lrflow ,glob_therm,pblast,
2206 current_run = global_comp_time%RUN_NBR
2207 CALL spmd_reduce_db(global_comp_time%ENGINE_TIME(current_run),result,1,0,
"MAX "
2213 CALL terminate_madcpl(n)
2218 CALL inipar(coupling,itid,2,nnodes,inputnam,got_input,nbtask)
2226 CALL user_windows_clean(user_windows)
2227 CALL th_clean(output%TH)
2229 DEALLOCATE(iflow, rflow)