27       character*1 type,inpc(*)
    29       character*20 label,newlabel
    30       character*81 set(*),noset,elset,noelset
    31       character*132 textpart(16)
    33       integer nset,nset_,nalset,nalset_,istep,istat,n,key,i,nk,ne,
    34      &  j,istartset(*),iendset(*),ialset(*),ipos,iline,ipol,inl,
    35      &  ipoinp(2,*),inp(3,*),iside,l,k,kstart,kend,ipoinpc(0:*),
    39          write(*,*) 
'*ERROR reading *SURFACE: *SURFACE should be placed'    40          write(*,*) 
'       before all step definitions'    50          if(textpart(i)(1:5).eq.
'NAME=')
    52             noelset(1:80)=textpart(i)(6:85)
    54             if(textpart(i)(86:86).ne.
' ') 
then    56      &           
'*ERROR reading *SURFACE: surface name too long'    57                write(*,*) 
'       (more than 80 characters)'    58                write(*,*) 
'       surface name:',textpart(i)(1:132)
    61          elseif(textpart(i)(1:5).eq.
'TYPE=') 
then    62             if(textpart(i)(6:12).eq.
'ELEMENT') 
then    64             elseif(textpart(i)(6:9).eq.
'NODE') 
then    68      &             
'*ERROR reading *SURFACE: unknown surface type'    73      &        
'*WARNING reading *SURFACE: parameter not recognized:'    75      &                 textpart(i)(1:index(textpart(i),
' ')-1)
    81       ipos=index(noelset,
' ')
    83          write(*,*) 
'*ERROR reading *SURFACE: no name specified'    86       noelset(ipos:ipos)=
type    92          if(set(iset).eq.noelset) 
then    96             if(iendset(iset).eq.nalset) 
then   102                nn=iendset(iset)-istartset(iset)+1
   103                if(nalset+nn.gt.nalset_) 
then   104                   write(*,*)
'*ERROR in noelsets: increase nalset_'   108                   ialset(nalset+k)=ialset(istartset(iset)+k-1)
   110                do k=istartset(iset),nalset
   111                   ialset(k)=ialset(k+nn)
   114                   if(istartset(k).gt.iendset(iset)) 
then   115                      istartset(k)=istartset(k)-nn
   116                      iendset(k)=iendset(k)-nn
   119                istartset(iset)=nalset-nn+1
   125       if(iset.gt.nset) 
then   127          if(nset.gt.nset_) 
then   128             write(*,*) 
'*ERROR in noelsets: increase nset_'   132          istartset(nset)=nalset+1
   142             call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
   143      &           ipoinp,inp,ipoinpc)
   144             if((istat.lt.0).or.(key.eq.1)) 
then   145                if(iendset(nset).eq.0) 
then   151                write(*,*) 
'*ERROR reading *SURFACE: only one entry per'   152                write(*,*) 
'       line allowed'   157             if(nalset+1.gt.nalset_) 
then   158                write(*,*) 
'*ERROR reading *SURFACE: increase nalset_'   162             read(textpart(1)(1:10),
'(i10)',iostat=istat)ialset(nalset+1)
   164                noset=textpart(1)(1:80)
   166                ipos=index(noset,
' ')
   169                   if(set(i).eq.noset) 
then   170                      do j=istartset(i),iendset(i)
   171                         if(ialset(j).gt.0) 
then   173                            if(nalset.gt.nalset_) 
then   175      &                       
'*ERROR reading *SURFACE: increase nalset_'   178                            ialset(nalset)=ialset(j)
   180                            kstart=ialset(nalset-1)
   183                            kincrement=-ialset(j)
   184                            do k=kstart+kincrement,kend,kincrement
   186                               if(nalset.gt.nalset_) 
then   188      &                       
'*ERROR reading *SURFACE: increase nalset_'   201                   write(*,*) 
'*ERROR reading *SURFACE: node set ',noset
   202                   write(*,*) 
'       does not exist'   206                if(ialset(nalset+1).gt.nk) 
then   207                   write(*,*) 
'*WARNING reading *SURFACE: value ',
   209                   write(*,*) 
'         in set ',set(iset),
' > nk'   222             call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
   223      &           ipoinp,inp,ipoinpc)
   224             if((istat.lt.0).or.(key.eq.1)) 
then   225                if(iendset(nset).eq.0) 
then   230             if(nalset+1.gt.nalset_) 
then   231                write(*,*) 
'*ERROR reading *SURFACE: increase nalset_'   235             read(textpart(2)(1:20),
'(a20)',iostat=istat) label
   237             if(label(2:4).eq.
'NEG') 
then   239             elseif(label(2:4).eq.
'POS') 
then   242             if(label(2:2).eq.
'N') 
then   244             elseif(label(2:2).eq.
'P') 
then   248             if((label(1:2).ne.
'S1').and.(label(1:2).ne.
'S2').and.
   249      &         (label(1:2).ne.
'S3').and.(label(1:2).ne.
'S4').and.
   250      &         (label(1:2).ne.
'S5').and.(label(1:2).ne.
'S6')) 
then   255             read(textpart(1)(1:10),
'(i10)',iostat=istat)l
   257                elset=textpart(1)(1:80)
   259                ipos=index(elset,
' ')
   262                   if(set(i).eq.elset) 
then   263                      do j=istartset(i),iendset(i)
   269                            if(nalset.gt.nalset_) 
then   271      &                       
'*ERROR reading *SURFACE: increase nalset_'   275                            if((lakon(l)(1:2).eq.
'CP').or.
   276      &                          (lakon(l)(2:2).eq.
'A')) 
then   277                               if(label(1:2).eq.
'S1') 
then   279                               elseif(label(1:2).eq.
'S2') 
then   281                               elseif(label(1:2).eq.
'S3') 
then   283                               elseif(label(1:2).eq.
'S4') 
then   285                               elseif(label(1:2).eq.
'S5') 
then   287                               elseif(label(1:2).eq.
'S6') 
then   291                            read(newlabel(2:2),
'(i1)',iostat=istat) iside
   292                            ialset(nalset)=iside+10*l
   296                            kincrement=-ialset(j)
   297                            do l=kstart+kincrement,kend,kincrement
   299                               if(nalset.gt.nalset_) 
then   301      &                       
'*ERROR reading *SURFACE: increase nalset_'   305                               if((lakon(l)(1:2).eq.
'CP').or.
   306      &                             (lakon(l)(2:2).eq.
'A')) 
then   307                                  if(label(1:2).eq.
'S1') 
then   309                                  elseif(label(1:2).eq.
'S2') 
then   311                                  elseif(label(1:2).eq.
'S3') 
then   313                                  elseif(label(1:2).eq.
'S4') 
then   315                                  elseif(label(1:2).eq.
'S5') 
then   317                                  elseif(label(1:2).eq.
'S6') 
then   321                               read(newlabel(2:2),
'(i1)',iostat=istat) 
   323                               ialset(nalset)=iside+10*l
   333                   write(*,*) 
'*ERROR reading *SURFACE: element set ',
   335                   write(*,*) 
'       does not exist'   340                   write(*,*) 
'*WARNING reading *SURFACE: element ',
   342                   write(*,*) 
'         in set ',set(iset),
' > ne'   345                   if((lakon(l)(1:2).eq.
'CP').or.
   346      &                 (lakon(l)(2:2).eq.
'A')) 
then   347                      if(label(1:2).eq.
'S1') 
then   349                      elseif(label(1:2).eq.
'S2') 
then   351                      elseif(label(1:2).eq.
'S3') 
then   353                      elseif(label(1:2).eq.
'S4') 
then   355                      elseif(label(1:2).eq.
'S5') 
then   357                      elseif(label(1:2).eq.
'S6') 
then   361                   read(newlabel(2:2),
'(i1)',iostat=istat) iside
   363                   ialset(nalset)=iside+10*l
 
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21