30       logical nodefile_flag,elfile_flag,out3d,sectionforces,
    33       character*1 nodesys,elemsys,inpc(*)
    34       character*80 amname(*),timepointsname
    35       character*81 noset,set(*)
    37       character*132 textpart(16)
    39       integer istep,istat,n,key,ii,jout(2),joutl,nmethod,nener,
    41      &  iline,ipol,inl,ipoinp(2,*),inp(3,*),j,nlabel,nam,itpamp,i,
    42      &  idrct,ipoinpc(0:*),cfd,ifile_output,ipos,nset
    59      &
'*ERROR reading *NODE FILE or *EL FILE: *NODE FILE, *EL FILE'    60          write(*,*) 
'       *CONTACT FILE'    61          write(*,*) 
'       should only be used within a *STEP'     62          write(*,*) 
'       definition'    66       if(ifile_output.eq.1) 
then    70          if(.not.nodefile_flag) 
then    72             if((.not.elfile_flag).and.(.not.contactfile_flag)) 
then   116       elseif(ifile_output.eq.2) 
then   120          if(.not.elfile_flag) 
then   124             if((.not.nodefile_flag).and.(.not.contactfile_flag)) 
then   157             sectionforces=.false.
   159       elseif(ifile_output.eq.3)
then   163          if(.not.contactfile_flag) 
then   167             if((.not.nodefile_flag).and.(.not.elfile_flag)) 
then   178         if(textpart(ii)(1:10).eq.
'FREQUENCY=') 
then   179            read(textpart(ii)(11:20),
'(i10)',iostat=istat) joutl
   180            if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
   181      &
"*NODE FILE/OUTPUT or *EL FILE/OUTPUT or *CONTACT FILE/OUTPUT %")
   184                  call getnewline(inpc,textpart,istat,n,key,iline,ipol,
   185      &                inl,ipoinp,inp,ipoinpc)
   186                  if((key.eq.1).or.(istat.lt.0)) 
return   193         elseif(textpart(ii)(1:11).eq.
'FREQUENCYF=') 
then   194            read(textpart(ii)(12:21),
'(i10)',iostat=istat) joutl
   195            if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
   196      &
"*NODE FILE/OUTPUT or *EL FILE/OUTPUT or *CONTACT FILE/OUTPUT %")
   199                  call getnewline(inpc,textpart,istat,n,key,iline,ipol,
   200      &                inl,ipoinp,inp,ipoinpc)
   201                  if((key.eq.1).or.(istat.lt.0)) 
return   208         elseif(textpart(ii)(1:10).eq.
'GLOBAL=YES') 
then   211         elseif(textpart(ii)(1:9).eq.
'GLOBAL=NO') 
then   214         elseif((textpart(ii)(1:9).eq.
'OUTPUT=2D').or.
   215      &         (textpart(ii)(1:9).eq.
'OUTPUT=2d'))
then   219                  if(filab(j)(5:5).eq.
'E') filab(j)(5:5)=
'I'   223      &
'*WARNING reading *NODE FILE or *EL FILE: OUTPUT=2D has no'   224               write(*,*) 
'         effect in all but the first step'   226         elseif((textpart(ii)(1:9).eq.
'OUTPUT=3D').or.
   227      &         (textpart(ii)(1:9).eq.
'OUTPUT=3d'))
then   233            elseif(.not.out3d) 
then   235      &
'*WARNING reading *NODE FILE or *EL FILE: OUTPUT=3D has no'   236               write(*,*) 
'         effect in all but the first step'   238         elseif(textpart(ii)(1:13).eq.
'SECTIONFORCES') 
then   240         elseif(textpart(ii)(1:11).eq.
'TIMEPOINTS=') 
then   241            timepointsname=textpart(ii)(12:91)
   243               if(amname(i).eq.timepointsname) 
then   249               write(*,*) 
'*ERROR reading *NODE FILE or *EL FILE: time'   250               write(*,*) 
'       points definition',
   251      &               timepointsname,
' is unknown'   256      &
'*ERROR reading *NODE FILE or *EL FILE: the DIRECT option'   257               write(*,*) 
'       collides with a TIME POINTS '   258               write(*,*) 
'       specification'   263         elseif(textpart(ii)(1:5).eq.
'NSET=') 
then   264            noset=textpart(ii)(6:85)
   266            ipos=index(noset,
' ')
   268         elseif(textpart(ii)(1:14).eq.
'LASTITERATIONS') 
then   270         elseif(textpart(ii)(1:15).eq.
'CONTACTELEMENTS') 
then   274      &             
'*WARNING reading *NODE FILE or *EL FILE:'    275             write(*,*) 
'         parameter not recognized:'   277      &                 textpart(ii)(1:index(textpart(ii),
' ')-1)
   279      &
"*NODE FILE/OUTPUT or *EL FILE/OUTPUT or *CONTACT FILE/OUTPUT %")
   285       if((filab(3)(5:5).eq.
'M').and.(out3d)) 
then   287      &
'*ERROR reading *NODE FILE or *EL FILE: SECTION FORCES and'   288          write(*,*) 
'       OUTPUT=3D are mutually exclusive'   290      &
"*NODE FILE/OUTPUT or *EL FILE/OUTPUT or *CONTACT FILE/OUTPUT %")
   297             if(set(i).eq.noset) 
exit   301             write(*,*) 
'*ERROR in transforms: node set ',noset
   302             write(*,*) 
'  has not yet been defined.'   308          call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
   309      &        ipoinp,inp,ipoinpc)
   310          if((key.eq.1).or.(istat.lt.0)) 
return   312             if(textpart(ii)(1:4).eq.
'U   ') 
then   314                filab(1)(6:6)=nodesys
   316             elseif(textpart(ii)(1:4).eq.
'NT  ') 
then   318                filab(2)(6:6)=nodesys
   320             elseif(textpart(ii)(1:4).eq.
'S   ') 
then   322                filab(3)(6:6)=elemsys
   324             elseif(textpart(ii)(1:4).eq.
'E   ') 
then   326                filab(4)(6:6)=elemsys
   328             elseif(textpart(ii)(1:4).eq.
'RF  ') 
then   330                filab(5)(6:6)=nodesys
   332             elseif(textpart(ii)(1:4).eq.
'PEEQ') 
then   333                if((nmethod.eq.2).or.(nmethod.eq.3)) 
then   335      &
'*WARNING reading *NODE FILE or *EL FILE: selection of PEEQ'   336                   write(*,*) 
'         does not make sense for a'   337                   write(*,*) 
'         frequency or bucking calculation'   340                   filab(6)(6:6)=elemsys
   343             elseif(((textpart(ii)(1:4).eq.
'CEEQ').or.
   344      &              (textpart(ii)(1:2).eq.
'CE').or.
   345      &              (textpart(ii)(1:2).eq.
'PE')).and.
   346      &             (textpart(ii)(1:4).ne.
'CELS')) 
then   347                textpart(ii)(1:4)=
'PEEQ'   348                if((nmethod.eq.2).or.(nmethod.eq.3)) 
then   350      &                
'*WARNING reading *NODE FILE or *EL FILE:'    351                   write(*,*) 
'         selection of CEEQ or CE or PE'   352                   write(*,*) 
'         does not make sense for a'   353                   write(*,*) 
'         frequency or bucking calculation'   356      &            
'*WARNING in elprints: selection of CEEQ or CE or PE'   357                   write(*,*) 
'         is converted into PEEQ; no distin   360      &             
'        is made between PEEQ, CEEQ, CE and PE'   362                   filab(6)(6:6)=elemsys
   365             elseif(textpart(ii)(1:4).eq.
'ENER') 
then   367                filab(7)(6:6)=elemsys
   370             elseif(textpart(ii)(1:4).eq.
'SDV ') 
then   371                if((nmethod.eq.2).or.(nmethod.eq.3)) 
then   373      &
'*WARNING reading *NODE FILE or *EL FILE: selection of SDV'   374                   write(*,*) 
'         does not make sense for a'   375                   write(*,*) 
'         frequency or bucking calculation'   378                   filab(8)(6:6)=elemsys
   381             elseif(textpart(ii)(1:4).eq.
'HFL ') 
then   382                if((ithermal.le.1).and.(nmethod.le.7)) 
then   384      &
'*WARNING reading *NODE FILE or *EL FILE: HFL only makes '   385                   write(*,*) 
'         sense for heat transfer '   386                   write(*,*) 
'          calculations'   389                   filab(9)(6:6)=elemsys
   392             elseif(textpart(ii)(1:4).eq.
'RFL ') 
then   393                if(ithermal.le.1) 
then   395      &
'*WARNING reading *NODE FILE or *EL FILE: RFL only makes '   396                   write(*,*) 
'         sense for heat transfer '   397                   write(*,*) 
'          calculations'   399                   filab(10)(1:4)=
'RFL '   400                   filab(10)(6:6)=nodesys
   401                   filab(10)(7:87)=noset
   403             elseif(textpart(ii)(1:4).eq.
'PU  ') 
then   404                if((nmethod.ne.2).and.(nmethod.ne.5).and.
   405      &            (nmethod.ne.6).and.(nmethod.ne.7)) 
then   407      &
'*WARNING reading *NODE FILE or *EL FILE: PU only makes'   408                   write(*,*) 
'         sense for frequency and steady'   409                   write(*,*) 
'         state dynamics calculations'   410                elseif((nmethod.eq.5).and.(xmodal(7).gt.0.d0)) 
then   412      &
'*WARNING reading *NODE FILE or *EL FILE: PU does not make'   413                   write(*,*) 
'         sense for nonharmonic periodic'   414                   write(*,*) 
'         excitations; use U instead'   417                   filab(11)(7:87)=noset
   419             elseif(textpart(ii)(1:4).eq.
'PNT ') 
then   420                filab(12)(1:4)=
'PNT '   421                filab(12)(7:87)=noset
   422             elseif(textpart(ii)(1:3).eq.
'ZZS') 
then   423                filab(13)(1:4)=
'ZZS '   424                filab(13)(6:6)=elemsys
   425                filab(13)(7:87)=noset
   426             elseif(textpart(ii)(1:3).eq.
'ERR') 
then   427                filab(13)(1:4)=
'ERR '   428                filab(13)(6:6)=elemsys
   429                filab(13)(7:87)=noset
   430             elseif(textpart(ii)(1:4).eq.
'TT  ') 
then   432                filab(14)(6:6)=nodesys
   433                filab(14)(7:87)=noset
   434             elseif(textpart(ii)(1:4).eq.
'MF  ') 
then   436                filab(15)(6:6)=nodesys
   437                filab(15)(7:87)=noset
   438             elseif(textpart(ii)(1:4).eq.
'PT  ') 
then   440                filab(16)(6:6)=nodesys
   441                filab(16)(7:87)=noset
   442             elseif(textpart(ii)(1:4).eq.
'TS  ') 
then   444                filab(17)(6:6)=nodesys
   445                filab(17)(7:87)=noset
   446             elseif(textpart(ii)(1:4).eq.
'PHS ') 
then   447                if((nmethod.ne.2).and.(nmethod.ne.5)) 
then   449      &
'*WARNING reading *NODE FILE or *EL FILE: PHS only makes'   450                   write(*,*) 
'         sense for frequency and steady'   451                   write(*,*) 
'         state dynamics calculations'   453                   filab(18)(1:4)=
'PHS '   454                   filab(18)(6:6)=elemsys
   455                   filab(18)(7:87)=noset
   457             elseif(textpart(ii)(1:4).eq.
'MAXU') 
then   458                if(nmethod.ne.2) 
then   460      &
'*WARNING reading *NODE FILE or *EL FILE: MAXU only makes'   461                   write(*,*) 
'         sense for frequency calculations'   463                   filab(19)(1:4)=
'MAXU'   464                   filab(19)(6:6)=nodesys
   465                   filab(19)(7:87)=noset
   467             elseif(textpart(ii)(1:4).eq.
'MAXS') 
then   468                if(nmethod.ne.2) 
then   470      &
'*WARNING reading *NODE FILE or *EL FILE: MAXS only makes'   471                   write(*,*) 
'         sense for frequency calculations'   473                   filab(20)(1:4)=
'MAXS'   474                   filab(20)(6:6)=elemsys
   475                   filab(20)(7:87)=noset
   477             elseif(textpart(ii)(1:4).eq.
'V   ') 
then   478                 if((nmethod.eq.4).or.(cfd.ne.0)) 
then   480                    filab(21)(6:6)=nodesys
   481                    filab(21)(7:87)=noset
   484      &
'*WARNING reading *NODE FILE or *EL FILE: V only available'   485                    write(*,*) 
'         for dynamic calculations and'   486                    write(*,*) 
'         3-D fluid calculations'   488             elseif(textpart(ii)(1:4).eq.
'PS  ') 
then   490                filab(22)(6:6)=nodesys
   491                filab(22)(7:87)=noset
   492             elseif(textpart(ii)(1:4).eq.
'MACH') 
then   495      &
'*WARNING reading *NODE FILE or *EL FILE: MACH only makes'   496                   write(*,*) 
'         sense for 3D fluid calculations'   498                   filab(23)(1:4)=
'MACH'   499                   filab(23)(6:6)=nodesys
   500                   filab(23)(7:87)=noset
   502             elseif(textpart(ii)(1:4).eq.
'CP  ') 
then   505      &
'*WARNING reading *NODE FILE or *EL FILE: CP only makes'   506                   write(*,*) 
'         sense for 3D fluid calculations'   509                   filab(24)(6:6)=nodesys
   510                   filab(24)(7:87)=noset
   512             elseif(textpart(ii)(1:4).eq.
'TURB') 
then   515      &
'*WARNING reading *NODE FILE or *EL FILE: TURB only makes'   516                   write(*,*) 
'         sense for 3D fluid calculations'   518                   filab(25)(1:4)=
'TURB'   519                   filab(25)(6:6)=nodesys
   520                   filab(25)(7:87)=noset
   522             elseif((textpart(ii)(1:4).eq.
'CSTR').or.
   523      &             (textpart(ii)(1:4).eq.
'CDIS')) 
then   524                filab(26)(1:4)=
'CONT'   525                filab(26)(6:6)=nodesys
   526                filab(26)(7:87)=noset
   527             elseif(textpart(ii)(1:4).eq.
'CELS') 
then   528                filab(27)(1:4)=
'CELS'   529                filab(27)(6:6)=nodesys
   530                filab(27)(7:87)=noset
   532             elseif(textpart(ii)(1:4).eq.
'DEPT') 
then   533                   filab(28)(1:4)=
'DEPT'   534                   filab(28)(6:6)=nodesys
   535                   filab(28)(7:87)=noset
   536             elseif(textpart(ii)(1:4).eq.
'HCRI') 
then   537                   filab(29)(1:4)=
'HCRI'   538                   filab(29)(6:6)=nodesys
   539                   filab(29)(7:87)=noset
   540             elseif(textpart(ii)(1:4).eq.
'MAXE') 
then   541                if(nmethod.ne.2) 
then   543      &
'*WARNING reading *NODE FILE or *EL FILE: MAXE only makes'   544                   write(*,*) 
'         sense for frequency calculations'   546                   filab(30)(1:4)=
'MAXE'   547                   filab(30)(6:6)=elemsys
   548                   filab(30)(7:87)=noset
   550             elseif(textpart(ii)(1:4).eq.
'PRF ') 
then   551                if((nmethod.ne.2).and.(nmethod.ne.5).and.
   552      &            (nmethod.ne.6).and.(nmethod.ne.7)) 
then   554      &
'*WARNING reading *NODE FILE or *EL FILE: PRF only makes'   555                   write(*,*) 
'         sense for frequency and steady'   556                   write(*,*) 
'         state dynamics calculations'   557                elseif((nmethod.eq.5).and.(xmodal(7).gt.0.d0)) 
then   559      &
'*WARNING reading *NODE FILE or *EL FILE: PRF does not make'   560                   write(*,*) 
'         sense for nonharmonic periodic'   561                   write(*,*) 
'         excitations; use RF instead'   563                   filab(31)(1:4)=
'PRF '   564                   filab(31)(7:87)=noset
   566             elseif(textpart(ii)(1:4).eq.
'ME  ') 
then   568                filab(32)(6:6)=elemsys
   569                filab(32)(7:87)=noset
   570             elseif(textpart(ii)(1:3).eq.
'HER') 
then   571                filab(33)(1:4)=
'HER '   572                filab(33)(6:6)=elemsys
   573                filab(33)(7:87)=noset
   574             elseif(textpart(ii)(1:4).eq.
'VF  ') 
then   577      &
'*WARNING reading *NODE FILE or *EL FILE: VF only makes'   578                   write(*,*) 
'         sense for 3D fluid calculations'   581                   filab(34)(6:6)=nodesys
   582                   filab(34)(7:87)=noset
   584             elseif(textpart(ii)(1:4).eq.
'PSF ') 
then   587      &
'*WARNING reading *NODE FILE or *EL FILE: PSF only makes'   588                   write(*,*) 
'         sense for 3D fluid calculations'   590                   filab(35)(1:4)=
'PSF '   591                   filab(35)(6:6)=nodesys
   592                   filab(35)(7:87)=noset
   594             elseif(textpart(ii)(1:4).eq.
'TSF ') 
then   597      &
'*WARNING reading *NODE FILE or *EL FILE: TSF only makes'   598                   write(*,*) 
'         sense for 3D fluid calculations'   600                   filab(36)(1:4)=
'TSF '   601                   filab(36)(6:6)=nodesys
   602                   filab(36)(7:87)=noset
   604             elseif(textpart(ii)(1:4).eq.
'PTF ') 
then   607      &
'*WARNING reading *NODE FILE or *EL FILE: PTF only makes'   608                   write(*,*) 
'         sense for 3D fluid calculations'   610                   filab(37)(1:4)=
'PTF '   611                   filab(37)(6:6)=nodesys
   612                   filab(37)(7:87)=noset
   614             elseif(textpart(ii)(1:4).eq.
'TTF ') 
then   617      &
'*WARNING reading *NODE FILE or *EL FILE: TTF only makes'   618                   write(*,*) 
'         sense for 3D fluid calculations'   620                   filab(38)(1:4)=
'TTF '   621                   filab(38)(6:6)=nodesys
   622                   filab(38)(7:87)=noset
   624             elseif(textpart(ii)(1:4).eq.
'SF  ') 
then   627      &
'*WARNING reading *NODE FILE or *EL FILE: SF only makes'   628                   write(*,*) 
'         sense for 3D fluid calculations'   631                   filab(39)(6:6)=elemsys
   632                   filab(39)(7:87)=noset
   634             elseif(textpart(ii)(1:4).eq.
'HFLF') 
then   637      &
'*WARNING reading *NODE FILE or *EL FILE: HFLF only makes'   638                   write(*,*) 
'         sense for 3D fluid calculations'   640                   filab(40)(1:4)=
'HFLF'   641                   filab(40)(6:6)=elemsys
   642                   filab(40)(7:87)=noset
   644             elseif(textpart(ii)(1:4).eq.
'SVF ') 
then   647      &
'*WARNING reading *NODE FILE or *EL FILE: SVF only makes'   648                   write(*,*) 
'         sense for 3D fluid calculations'   650                   filab(41)(1:4)=
'SVF '   651                   filab(41)(6:6)=elemsys
   652                   filab(41)(7:87)=noset
   654             elseif(textpart(ii)(1:3).eq.
'ECD') 
then   655                if(nmethod.lt.8) 
then   657      &
'*WARNING reading *NODE FILE or *EL FILE: ECD only makes'   659      &         
'         sense for electromagnetic calculations'   661                   filab(42)(1:4)=
'ECD '   662                   filab(42)(6:6)=elemsys
   663                   filab(42)(7:87)=noset
   665             elseif(textpart(ii)(1:3).eq.
'POT') 
then   666                if(nmethod.lt.8) 
then   668      &
'*WARNING reading *NODE FILE or *EL FILE: POT only makes'   670      &         
'         sense for electromagnetic calculations'   672                   filab(43)(1:4)=
'POT '   673                   filab(43)(6:6)=nodesys
   674                   filab(43)(7:87)=noset
   676             elseif(textpart(ii)(1:4).eq.
'EMFE') 
then   677                if(nmethod.lt.8) 
then   679      &
'*WARNING reading *NODE FILE or *EL FILE: EMFE only makes'   681      &         
'         sense for electromagnetic calculations'   683                   filab(44)(1:4)=
'EMFE'   684                   filab(44)(6:6)=elemsys
   685                   filab(44)(7:87)=noset
   687             elseif(textpart(ii)(1:4).eq.
'EMFB') 
then   688                if(nmethod.lt.8) 
then   690      &
'*WARNING reading *NODE FILE or *EL FILE: EMFB only makes'   692      &         
'         sense for electromagnetic calculations'   694                   filab(45)(1:4)=
'EMFB'   695                   filab(45)(6:6)=elemsys
   696                   filab(45)(7:87)=noset
   698             elseif(textpart(ii)(1:4).eq.
'PCON') 
then   699                if((nmethod.ne.2).and.(nmethod.ne.5)) 
then   701      &
'*WARNING reading *NODE FILE or *EL FILE: PCON only makes'   702                   write(*,*) 
'         sense for frequency and steady'   703                   write(*,*) 
'         state dynamics calculations'   705                   filab(46)(1:4)=
'PCON'   706                   filab(46)(6:6)=elemsys
   707                   filab(46)(7:87)=noset
   709             elseif(textpart(ii)(1:4).eq.
'SEN ') 
then   710                if(nmethod.ne.12) 
then   712      &
'*WARNING reading *NODE FILE or *EL FILE: SEN only makes'   713                   write(*,*) 
'         sense for sensitivity'   714                   write(*,*) 
'         calculations'   716                   filab(47)(1:4)=
'SEN '   717                   filab(47)(6:6)=elemsys
   718                   filab(47)(7:87)=noset
   722      &
'*WARNING reading *NODE FILE or *EL FILE: label not applicable'   723                write(*,*) 
'         or unknown; '   725      &
"*NODE FILE/OUTPUT or *EL FILE/OUTPUT or *CONTACT FILE/OUTPUT %")
 
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21