1! 2! CalculiX - A 3-dimensional finite element program 3! Copyright (C) 1998-2021 Guido Dhondt 4! 5! This program is free software; you can redistribute it and/or 6! modify it under the terms of the GNU General Public License as 7! published by the Free Software Foundation(version 2); 8! 9! 10! This program is distributed in the hope that it will be useful, 11! but WITHOUT ANY WARRANTY; without even the implied warranty of 12! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13! GNU General Public License for more details. 14! 15! You should have received a copy of the GNU General Public License 16! along with this program; if not, write to the Free Software 17! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18! 19 subroutine restarts(istep,nset,nload,nforc, nboun,nk,ne, 20 & nmpc,nalset,nmat,ntmat_,npmat_,norien,nam,nprint,mi, 21 & ntrans,ncs_,namtot,ncmat_,mpcfree,maxlenmpc, 22 & ne1d,ne2d,nflow,nlabel,iplas, 23 & nkon,ithermal,nmethod,iperturb,nstate_,nener,set,istartset, 24 & iendset,ialset,co,kon,ipkon,lakon,nodeboun,ndirboun,iamboun, 25 & xboun,ikboun,ilboun,ipompc,nodempc,coefmpc,labmpc,ikmpc,ilmpc, 26 & nodeforc,ndirforc,iamforc,xforc,ikforc,ilforc,nelemload,iamload, 27 & sideload,xload,elcon,nelcon,rhcon,nrhcon, 28 & alcon,nalcon,alzero,plicon,nplicon,plkcon,nplkcon,orname,orab, 29 & ielorien,trab,inotr,amname,amta,namta,t0,t1,iamt1,veold, 30 & ielmat,matname,prlab,prset,filab,vold,nodebounold, 31 & ndirbounold,xbounold,xforcold,xloadold,t1old,eme, 32 & iponor,xnor,knor,thicke,offset,iponoel,inoel,rig, 33 & shcon,nshcon,cocon,ncocon,ics,sti, 34 & ener,xstate,jobnamec,infree,irstrt,inpc,textpart,istat,n, 35 & key,prestr,iprestr,cbody,ibody,xbody,nbody,xbodyold, 36 & ttime,qaold,cs,mcs,output,physcon,ctrl,typeboun,iline,ipol,inl, 37 & ipoinp,inp,fmpc,tieset,ntie,tietol,ipoinpc,nslavs,t0g,t1g,nprop, 38 & ielprop,prop,mortar,nintpoint,ifacecount,islavsurf,pslavsurf, 39 & clearini,ier,vel,nef,velo,veloo,ne2boun,heading,network, 40 & irestartread) 41! 42 implicit none 43! 44 character*1 typeboun(*),inpc(*) 45 character*4 output 46 character*6 prlab(*) 47 character*8 lakon(*) 48 character*20 labmpc(*),sideload(*) 49 character*66 heading(*) 50 character*80 orname(*),amname(*),matname(*) 51 character*81 set(*),prset(*),tieset(3,*),cbody(*) 52 character*87 filab(*) 53 character*132 jobnamec(*),textpart(16) 54! 55 integer istep,nset,nload,nforc,nboun,nk,ne,nmpc,nalset,nmat, 56 & ntmat_,npmat_,norien,nam,nprint,mi(*),ntrans,ncs_, 57 & namtot,ncmat_,mpcfree,ne1d,ne2d,nflow,nlabel,iplas,nkon, 58 & ithermal(*),nmethod,iperturb(*),nstate_,istartset(*),iendset(*), 59 & ialset(*),kon(*),ipkon(*),nodeboun(*),ndirboun(*),iamboun(*), 60 & ikboun(*),ilboun(*),ipompc(*),nodempc(*),ikmpc(*),ilmpc(*), 61 & nodeforc(*),ndirforc(*),iamforc(*),ikforc(*),ilforc(*), 62 & nelemload(*),iamload(*),nelcon(*),ipoinpc(0:*), 63 & nrhcon(*),nalcon(*),nplicon(*),nplkcon(*),ielorien(*), 64 & inotr(*),nprop,ielprop(*),mortar,nintpoint,ifacecount, 65 & namta(*),iamt1(*),ielmat(*),nodebounold(*),ndirbounold(*), 66 & iponor(*),knor(*),iponoel(*),inoel(*),rig(*),islavsurf(*), 67 & nshcon(*),ncocon(*),ics(*),infree(*),ier,network, 68 & nener,irestartstep,irestartread,irstrt(*),istat,n,i,key, 69 & iprestr,mcs,maxlenmpc,iline,ipol,inl, 70 & ipoinp(2,*),inp(3,*),ntie,ibody(*),nbody,nslavs,nef, 71 & ne2boun(2,*) 72! 73 real*8 co(*),xboun(*),coefmpc(*),xforc(*),xload(*),elcon(*), 74 & rhcon(*),alcon(*),alzero(*),plicon(*),plkcon(*),orab(*), 75 & trab(*),amta(*),t0(*),t1(*),prestr(*),veold(*),tietol(*), 76 & vold(*),xbounold(*),xforcold(*),xloadold(*),t1old(*),eme(*), 77 & xnor(*),thicke(*),offset(*),t0g(*),t1g(*),clearini(*), 78 & shcon(*),cocon(*),sti(*),ener(*),xstate(*),prop(*), 79 & ttime,qaold(2),cs(17,*),physcon(*),pslavsurf(*), 80 & ctrl(*),fmpc(*),xbody(*),xbodyold(*),vel(*),velo(*),veloo(*) 81! 82c irestartread=0 83 irestartstep=0 84! 85 do i=2,n 86 if(textpart(i)(1:4).eq.'READ') then 87 irestartread=1 88 elseif(textpart(i)(1:5).eq.'STEP=') then 89 read(textpart(i)(6:15),'(i10)',iostat=istat) irestartstep 90 if(istat.gt.0) then 91 call inputerror(inpc,ipoinpc,iline, 92 & "*RESTART%",ier) 93 return 94 endif 95 elseif(textpart(i)(1:5).eq.'WRITE') then 96 irstrt(1)=1 97 elseif(textpart(i)(1:10).eq.'FREQUENCY=') then 98 read(textpart(i)(11:20),'(i10)',iostat=istat) irstrt(1) 99 if(istat.gt.0) then 100 call inputerror(inpc,ipoinpc,iline, 101 & "*RESTART%",ier) 102 return 103 endif 104 elseif(textpart(i)(1:7).eq.'OVERLAY') then 105 irstrt(2)=1 106 else 107 write(*,*) 108 & '*WARNING in restarts: parameter not recognized:' 109 write(*,*) ' ', 110 & textpart(i)(1:index(textpart(i),' ')-1) 111 call inputwarning(inpc,ipoinpc,iline, 112 &"*RESTART%") 113 endif 114 enddo 115! 116 if(irestartread.eq.1) then 117 call restartread(istep,nset,nload,nforc, nboun,nk,ne, 118 & nmpc,nalset,nmat,ntmat_,npmat_,norien,nam,nprint,mi, 119 & ntrans,ncs_,namtot,ncmat_,mpcfree,maxlenmpc, 120 & ne1d,ne2d,nflow,nlabel,iplas, 121 & nkon,ithermal,nmethod,iperturb,nstate_,nener,set,istartset, 122 & iendset,ialset,co,kon,ipkon,lakon,nodeboun,ndirboun,iamboun, 123 & xboun,ikboun,ilboun,ipompc,nodempc,coefmpc,labmpc,ikmpc,ilmpc, 124 & nodeforc,ndirforc,iamforc,xforc,ikforc,ilforc,nelemload,iamload, 125 & sideload,xload,elcon,nelcon,rhcon,nrhcon, 126 & alcon,nalcon,alzero,plicon,nplicon,plkcon,nplkcon,orname,orab, 127 & ielorien,trab,inotr,amname,amta,namta,t0,t1,iamt1,veold, 128 & ielmat,matname,prlab,prset,filab,vold,nodebounold, 129 & ndirbounold,xbounold,xforcold,xloadold,t1old,eme, 130 & iponor,xnor,knor,thicke,offset,iponoel,inoel,rig, 131 & shcon,nshcon,cocon,ncocon,ics,sti, 132 & ener,xstate,jobnamec,infree,irestartstep,prestr,iprestr, 133 & cbody,ibody,xbody,nbody,xbodyold,ttime,qaold,cs,mcs, 134 & output,physcon,ctrl,typeboun,fmpc,tieset,ntie,tietol,nslavs, 135 & t0g,t1g,nprop,ielprop,prop,mortar,nintpoint,ifacecount, 136 & islavsurf,pslavsurf,clearini,irstrt,vel,nef,velo,veloo, 137 & ne2boun,heading,network) 138 endif 139! 140 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl, 141 & ipoinp,inp,ipoinpc) 142! 143 return 144 end 145 146 147