CalculiX  2.13
A Free Software Three-Dimensional Structural Finite Element Program
noelfiles.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine noelfiles (inpc, textpart, jout, filab, nmethod, nodefile_flag, elfile_flag, ifile_output, nener, ithermal, istep, istat, n, iline, ipol, inl, ipoinp, inp, out3d, nlabel, amname, nam, itpamp, idrct, ipoinpc, cfd, contactfile_flag, set, nset, xmodal)
 

Function/Subroutine Documentation

◆ noelfiles()

subroutine noelfiles ( character*1, dimension(*)  inpc,
character*132, dimension(16)  textpart,
integer, dimension(2)  jout,
character*87, dimension(*)  filab,
integer  nmethod,
logical  nodefile_flag,
logical  elfile_flag,
integer  ifile_output,
integer  nener,
integer  ithermal,
integer  istep,
integer  istat,
integer  n,
integer  iline,
integer  ipol,
integer  inl,
integer, dimension(2,*)  ipoinp,
integer, dimension(3,*)  inp,
logical  out3d,
integer  nlabel,
character*80, dimension(*)  amname,
integer  nam,
integer  itpamp,
integer  idrct,
integer, dimension(0:*)  ipoinpc,
integer  cfd,
logical  contactfile_flag,
character*81, dimension(*)  set,
integer  nset,
real*8, dimension(*)  xmodal 
)
24 !
25 ! reading the *NODE FILE, *EL FILE and *CONTACT FILE cards in the
26 ! input deck
27 !
28  implicit none
29 !
30  logical nodefile_flag,elfile_flag,out3d,sectionforces,
31  & contactfile_flag
32 !
33  character*1 nodesys,elemsys,inpc(*)
34  character*80 amname(*),timepointsname
35  character*81 noset,set(*)
36  character*87 filab(*)
37  character*132 textpart(16)
38 !
39  integer istep,istat,n,key,ii,jout(2),joutl,nmethod,nener,
40  & ithermal,
41  & iline,ipol,inl,ipoinp(2,*),inp(3,*),j,nlabel,nam,itpamp,i,
42  & idrct,ipoinpc(0:*),cfd,ifile_output,ipos,nset
43 !
44  real*8 xmodal(*)
45 !
46  save sectionforces
47 !
48 ! default ist the global system
49 !
50  nodesys='G'
51  elemsys='G'
52 !
53  ipos=0
54  noset='
55  & '
56 !
57  if(istep.lt.1) then
58  write(*,*)
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'
63  call exit(201)
64  endif
65 !
66  if(ifile_output.eq.1) then
67 !
68 ! reset the nodal output requests
69 !
70  if(.not.nodefile_flag) then
71  filab(1)(1:2)=' '
72  if((.not.elfile_flag).and.(.not.contactfile_flag)) then
73  filab(1)(3:4)=' '
74  endif
75  filab(2)(1:4)=' '
76  filab(5)(1:4)=' '
77  do j=10,12
78  filab(j)(1:4)=' '
79  enddo
80  do j=14,17
81  filab(j)(1:4)=' '
82  enddo
83  filab(19)(1:4)=' '
84  do j=21,25
85  filab(j)(1:4)=' '
86  enddo
87  filab(28)(1:4)=' '
88  filab(29)(1:4)=' '
89  filab(31)(1:4)=' '
90  do j=34,38
91  filab(j)(1:4)=' '
92  enddo
93  filab(43)(1:4)=' '
94 !
95  filab(1)(6:87)=' '
96  filab(2)(6:87)=' '
97  filab(5)(6:87)=' '
98  do j=10,12
99  filab(j)(6:87)=' '
100  enddo
101  do j=14,17
102  filab(j)(6:87)=' '
103  enddo
104  filab(19)(6:87)=' '
105  do j=21,25
106  filab(j)(6:87)=' '
107  enddo
108  filab(28)(6:87)=' '
109  filab(29)(6:87)=' '
110  filab(31)(6:87)=' '
111  do j=34,38
112  filab(j)(6:87)=' '
113  enddo
114  filab(43)(6:87)=' '
115  endif
116  elseif(ifile_output.eq.2) then
117 !
118 ! reset the element output requests
119 !
120  if(.not.elfile_flag) then
121 !
122 ! reset "last iterations" and "contact elements"
123 !
124  if((.not.nodefile_flag).and.(.not.contactfile_flag)) then
125  filab(1)(3:4)=' '
126  endif
127  filab(3)(1:4)=' '
128  filab(4)(1:4)=' '
129  do j=6,9
130  filab(j)(1:4)=' '
131  enddo
132  filab(13)(1:4)=' '
133  filab(18)(1:4)=' '
134  filab(20)(1:4)=' '
135  filab(30)(1:4)=' '
136  filab(32)(1:4)=' '
137  do j=39,42
138  filab(j)(1:4)=' '
139  enddo
140 !
141  filab(3)(6:87)=' '
142  filab(4)(6:87)=' '
143  do j=6,9
144  filab(j)(6:87)=' '
145  enddo
146  filab(13)(6:87)=' '
147  filab(18)(6:87)=' '
148  filab(20)(6:87)=' '
149  filab(30)(6:87)=' '
150  filab(32)(6:87)=' '
151  do j=39,42
152  filab(j)(6:87)=' '
153  enddo
154  filab(44)(6:87)=' '
155  filab(45)(6:87)=' '
156 !
157  sectionforces=.false.
158  endif
159  elseif(ifile_output.eq.3)then
160 !
161 ! reset the contact print requests
162 !
163  if(.not.contactfile_flag) then
164 !
165 ! reset "last iterations" and "contact elements"
166 !
167  if((.not.nodefile_flag).and.(.not.elfile_flag)) then
168  filab(1)(3:4)=' '
169  endif
170  filab(26)(1:4)=' '
171  filab(26)(6:87)=' '
172  filab(27)(1:4)=' '
173  filab(27)(6:87)=' '
174  endif
175  endif
176 !
177  do ii=2,n
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 %")
182  if(joutl.eq.0) then
183  do
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
187  enddo
188  endif
189  if(joutl.gt.0) then
190  jout(1)=joutl
191  itpamp=0
192  endif
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 %")
197  if(joutl.eq.0) then
198  do
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
202  enddo
203  endif
204  if(joutl.gt.0) then
205  jout(2)=joutl
206  itpamp=0
207  endif
208  elseif(textpart(ii)(1:10).eq.'GLOBAL=YES') then
209  nodesys='G'
210  elemsys='G'
211  elseif(textpart(ii)(1:9).eq.'GLOBAL=NO') then
212  nodesys='L'
213  elemsys='L'
214  elseif((textpart(ii)(1:9).eq.'OUTPUT=2D').or.
215  & (textpart(ii)(1:9).eq.'OUTPUT=2d'))then
216  if(istep.eq.1) then
217  out3d=.false.
218  do j=1,nlabel
219  if(filab(j)(5:5).eq.'E') filab(j)(5:5)='I'
220  enddo
221  elseif(out3d) then
222  write(*,*)
223  &'*WARNING reading *NODE FILE or *EL FILE: OUTPUT=2D has no'
224  write(*,*) ' effect in all but the first step'
225  endif
226  elseif((textpart(ii)(1:9).eq.'OUTPUT=3D').or.
227  & (textpart(ii)(1:9).eq.'OUTPUT=3d'))then
228  if(istep.eq.1) then
229  out3d=.true.
230  do j=1,nlabel
231  filab(j)(5:5)='E'
232  enddo
233  elseif(.not.out3d) then
234  write(*,*)
235  &'*WARNING reading *NODE FILE or *EL FILE: OUTPUT=3D has no'
236  write(*,*) ' effect in all but the first step'
237  endif
238  elseif(textpart(ii)(1:13).eq.'SECTIONFORCES') then
239  filab(3)(5:5)='M'
240  elseif(textpart(ii)(1:11).eq.'TIMEPOINTS=') then
241  timepointsname=textpart(ii)(12:91)
242  do i=1,nam
243  if(amname(i).eq.timepointsname) then
244  itpamp=i
245  exit
246  endif
247  enddo
248  if(i.gt.nam) then
249  write(*,*) '*ERROR reading *NODE FILE or *EL FILE: time'
250  write(*,*) ' points definition',
251  & timepointsname,' is unknown'
252  call exit(201)
253  endif
254  if(idrct.eq.1) then
255  write(*,*)
256  &'*ERROR reading *NODE FILE or *EL FILE: the DIRECT option'
257  write(*,*) ' collides with a TIME POINTS '
258  write(*,*) ' specification'
259  call exit(201)
260  endif
261  jout(1)=1
262  jout(2)=1
263  elseif(textpart(ii)(1:5).eq.'NSET=') then
264  noset=textpart(ii)(6:85)
265  noset(81:81)=' '
266  ipos=index(noset,' ')
267  noset(ipos:ipos)='N'
268  elseif(textpart(ii)(1:14).eq.'LASTITERATIONS') then
269  filab(1)(4:4)='I'
270  elseif(textpart(ii)(1:15).eq.'CONTACTELEMENTS') then
271  filab(1)(3:3)='C'
272  else
273  write(*,*)
274  & '*WARNING reading *NODE FILE or *EL FILE:'
275  write(*,*) ' parameter not recognized:'
276  write(*,*) ' ',
277  & textpart(ii)(1:index(textpart(ii),' ')-1)
278  call inputwarning(inpc,ipoinpc,iline,
279  &"*NODE FILE/OUTPUT or *EL FILE/OUTPUT or *CONTACT FILE/OUTPUT %")
280  endif
281  enddo
282 !
283 ! check whether SECTION FORCES and OUTPUT=3D are both active
284 !
285  if((filab(3)(5:5).eq.'M').and.(out3d)) then
286  write(*,*)
287  &'*ERROR reading *NODE FILE or *EL FILE: SECTION FORCES and'
288  write(*,*) ' OUTPUT=3D are mutually exclusive'
289  call inputerror(inpc,ipoinpc,iline,
290  &"*NODE FILE/OUTPUT or *EL FILE/OUTPUT or *CONTACT FILE/OUTPUT %")
291  endif
292 !
293 ! check the existence of the node set (if any was specified)
294 !
295  if(ipos.ne.0) then
296  do i=1,nset
297  if(set(i).eq.noset) exit
298  enddo
299  if(i.gt.nset) then
300  noset(ipos:ipos)=' '
301  write(*,*) '*ERROR in transforms: node set ',noset
302  write(*,*) ' has not yet been defined.'
303  call exit(201)
304  endif
305  endif
306 !
307  do
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
311  do ii=1,n
312  if(textpart(ii)(1:4).eq.'U ') then
313  filab(1)(1:2)='U '
314  filab(1)(6:6)=nodesys
315  filab(1)(7:87)=noset
316  elseif(textpart(ii)(1:4).eq.'NT ') then
317  filab(2)(1:4)='NT '
318  filab(2)(6:6)=nodesys
319  filab(2)(7:87)=noset
320  elseif(textpart(ii)(1:4).eq.'S ') then
321  filab(3)(1:4)='S '
322  filab(3)(6:6)=elemsys
323  filab(3)(7:87)=noset
324  elseif(textpart(ii)(1:4).eq.'E ') then
325  filab(4)(1:4)='E '
326  filab(4)(6:6)=elemsys
327  filab(4)(7:87)=noset
328  elseif(textpart(ii)(1:4).eq.'RF ') then
329  filab(5)(1:4)='RF '
330  filab(5)(6:6)=nodesys
331  filab(5)(7:87)=noset
332  elseif(textpart(ii)(1:4).eq.'PEEQ') then
333  if((nmethod.eq.2).or.(nmethod.eq.3)) then
334  write(*,*)
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'
338  else
339  filab(6)(1:4)='PEEQ'
340  filab(6)(6:6)=elemsys
341  filab(6)(7:87)=noset
342  endif
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
349  write(*,*)
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'
354  else
355  write(*,*)
356  & '*WARNING in elprints: selection of CEEQ or CE or PE'
357  write(*,*) ' is converted into PEEQ; no distin
358  &ction'
359  write(*,*)
360  & ' is made between PEEQ, CEEQ, CE and PE'
361  filab(6)(1:4)='PEEQ'
362  filab(6)(6:6)=elemsys
363  filab(6)(7:87)=noset
364  endif
365  elseif(textpart(ii)(1:4).eq.'ENER') then
366  filab(7)(1:4)='ENER'
367  filab(7)(6:6)=elemsys
368  filab(7)(7:87)=noset
369  nener=1
370  elseif(textpart(ii)(1:4).eq.'SDV ') then
371  if((nmethod.eq.2).or.(nmethod.eq.3)) then
372  write(*,*)
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'
376  else
377  filab(8)(1:4)='SDV '
378  filab(8)(6:6)=elemsys
379  filab(8)(7:87)=noset
380  endif
381  elseif(textpart(ii)(1:4).eq.'HFL ') then
382  if((ithermal.le.1).and.(nmethod.le.7)) then
383  write(*,*)
384  &'*WARNING reading *NODE FILE or *EL FILE: HFL only makes '
385  write(*,*) ' sense for heat transfer '
386  write(*,*) ' calculations'
387  else
388  filab(9)(1:4)='HFL '
389  filab(9)(6:6)=elemsys
390  filab(9)(7:87)=noset
391  endif
392  elseif(textpart(ii)(1:4).eq.'RFL ') then
393  if(ithermal.le.1) then
394  write(*,*)
395  &'*WARNING reading *NODE FILE or *EL FILE: RFL only makes '
396  write(*,*) ' sense for heat transfer '
397  write(*,*) ' calculations'
398  else
399  filab(10)(1:4)='RFL '
400  filab(10)(6:6)=nodesys
401  filab(10)(7:87)=noset
402  endif
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
406  write(*,*)
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
411  write(*,*)
412  &'*WARNING reading *NODE FILE or *EL FILE: PU does not make'
413  write(*,*) ' sense for nonharmonic periodic'
414  write(*,*) ' excitations; use U instead'
415  else
416  filab(11)(1:4)='PU '
417  filab(11)(7:87)=noset
418  endif
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
431  filab(14)(1:4)='TT '
432  filab(14)(6:6)=nodesys
433  filab(14)(7:87)=noset
434  elseif(textpart(ii)(1:4).eq.'MF ') then
435  filab(15)(1:4)='MF '
436  filab(15)(6:6)=nodesys
437  filab(15)(7:87)=noset
438  elseif(textpart(ii)(1:4).eq.'PT ') then
439  filab(16)(1:4)='PT '
440  filab(16)(6:6)=nodesys
441  filab(16)(7:87)=noset
442  elseif(textpart(ii)(1:4).eq.'TS ') then
443  filab(17)(1:4)='TS '
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
448  write(*,*)
449  &'*WARNING reading *NODE FILE or *EL FILE: PHS only makes'
450  write(*,*) ' sense for frequency and steady'
451  write(*,*) ' state dynamics calculations'
452  else
453  filab(18)(1:4)='PHS '
454  filab(18)(6:6)=elemsys
455  filab(18)(7:87)=noset
456  endif
457  elseif(textpart(ii)(1:4).eq.'MAXU') then
458  if(nmethod.ne.2) then
459  write(*,*)
460  &'*WARNING reading *NODE FILE or *EL FILE: MAXU only makes'
461  write(*,*) ' sense for frequency calculations'
462  else
463  filab(19)(1:4)='MAXU'
464  filab(19)(6:6)=nodesys
465  filab(19)(7:87)=noset
466  endif
467  elseif(textpart(ii)(1:4).eq.'MAXS') then
468  if(nmethod.ne.2) then
469  write(*,*)
470  &'*WARNING reading *NODE FILE or *EL FILE: MAXS only makes'
471  write(*,*) ' sense for frequency calculations'
472  else
473  filab(20)(1:4)='MAXS'
474  filab(20)(6:6)=elemsys
475  filab(20)(7:87)=noset
476  endif
477  elseif(textpart(ii)(1:4).eq.'V ') then
478  if((nmethod.eq.4).or.(cfd.ne.0)) then
479  filab(21)(1:4)='V '
480  filab(21)(6:6)=nodesys
481  filab(21)(7:87)=noset
482  else
483  write(*,*)
484  &'*WARNING reading *NODE FILE or *EL FILE: V only available'
485  write(*,*) ' for dynamic calculations and'
486  write(*,*) ' 3-D fluid calculations'
487  endif
488  elseif(textpart(ii)(1:4).eq.'PS ') then
489  filab(22)(1:4)='PS '
490  filab(22)(6:6)=nodesys
491  filab(22)(7:87)=noset
492  elseif(textpart(ii)(1:4).eq.'MACH') then
493  if(cfd.eq.0) then
494  write(*,*)
495  &'*WARNING reading *NODE FILE or *EL FILE: MACH only makes'
496  write(*,*) ' sense for 3D fluid calculations'
497  else
498  filab(23)(1:4)='MACH'
499  filab(23)(6:6)=nodesys
500  filab(23)(7:87)=noset
501  endif
502  elseif(textpart(ii)(1:4).eq.'CP ') then
503  if(cfd.eq.0) then
504  write(*,*)
505  &'*WARNING reading *NODE FILE or *EL FILE: CP only makes'
506  write(*,*) ' sense for 3D fluid calculations'
507  else
508  filab(24)(1:4)='CP '
509  filab(24)(6:6)=nodesys
510  filab(24)(7:87)=noset
511  endif
512  elseif(textpart(ii)(1:4).eq.'TURB') then
513  if(cfd.eq.0) then
514  write(*,*)
515  &'*WARNING reading *NODE FILE or *EL FILE: TURB only makes'
516  write(*,*) ' sense for 3D fluid calculations'
517  else
518  filab(25)(1:4)='TURB'
519  filab(25)(6:6)=nodesys
520  filab(25)(7:87)=noset
521  endif
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
531  nener=1
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
542  write(*,*)
543  &'*WARNING reading *NODE FILE or *EL FILE: MAXE only makes'
544  write(*,*) ' sense for frequency calculations'
545  else
546  filab(30)(1:4)='MAXE'
547  filab(30)(6:6)=elemsys
548  filab(30)(7:87)=noset
549  endif
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
553  write(*,*)
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
558  write(*,*)
559  &'*WARNING reading *NODE FILE or *EL FILE: PRF does not make'
560  write(*,*) ' sense for nonharmonic periodic'
561  write(*,*) ' excitations; use RF instead'
562  else
563  filab(31)(1:4)='PRF '
564  filab(31)(7:87)=noset
565  endif
566  elseif(textpart(ii)(1:4).eq.'ME ') then
567  filab(32)(1:4)='ME '
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
575  if(cfd.eq.0) then
576  write(*,*)
577  &'*WARNING reading *NODE FILE or *EL FILE: VF only makes'
578  write(*,*) ' sense for 3D fluid calculations'
579  else
580  filab(34)(1:4)='VF '
581  filab(34)(6:6)=nodesys
582  filab(34)(7:87)=noset
583  endif
584  elseif(textpart(ii)(1:4).eq.'PSF ') then
585  if(cfd.eq.0) then
586  write(*,*)
587  &'*WARNING reading *NODE FILE or *EL FILE: PSF only makes'
588  write(*,*) ' sense for 3D fluid calculations'
589  else
590  filab(35)(1:4)='PSF '
591  filab(35)(6:6)=nodesys
592  filab(35)(7:87)=noset
593  endif
594  elseif(textpart(ii)(1:4).eq.'TSF ') then
595  if(cfd.eq.0) then
596  write(*,*)
597  &'*WARNING reading *NODE FILE or *EL FILE: TSF only makes'
598  write(*,*) ' sense for 3D fluid calculations'
599  else
600  filab(36)(1:4)='TSF '
601  filab(36)(6:6)=nodesys
602  filab(36)(7:87)=noset
603  endif
604  elseif(textpart(ii)(1:4).eq.'PTF ') then
605  if(cfd.eq.0) then
606  write(*,*)
607  &'*WARNING reading *NODE FILE or *EL FILE: PTF only makes'
608  write(*,*) ' sense for 3D fluid calculations'
609  else
610  filab(37)(1:4)='PTF '
611  filab(37)(6:6)=nodesys
612  filab(37)(7:87)=noset
613  endif
614  elseif(textpart(ii)(1:4).eq.'TTF ') then
615  if(cfd.eq.0) then
616  write(*,*)
617  &'*WARNING reading *NODE FILE or *EL FILE: TTF only makes'
618  write(*,*) ' sense for 3D fluid calculations'
619  else
620  filab(38)(1:4)='TTF '
621  filab(38)(6:6)=nodesys
622  filab(38)(7:87)=noset
623  endif
624  elseif(textpart(ii)(1:4).eq.'SF ') then
625  if(cfd.eq.0) then
626  write(*,*)
627  &'*WARNING reading *NODE FILE or *EL FILE: SF only makes'
628  write(*,*) ' sense for 3D fluid calculations'
629  else
630  filab(39)(1:4)='SF '
631  filab(39)(6:6)=elemsys
632  filab(39)(7:87)=noset
633  endif
634  elseif(textpart(ii)(1:4).eq.'HFLF') then
635  if(cfd.eq.0) then
636  write(*,*)
637  &'*WARNING reading *NODE FILE or *EL FILE: HFLF only makes'
638  write(*,*) ' sense for 3D fluid calculations'
639  else
640  filab(40)(1:4)='HFLF'
641  filab(40)(6:6)=elemsys
642  filab(40)(7:87)=noset
643  endif
644  elseif(textpart(ii)(1:4).eq.'SVF ') then
645  if(cfd.eq.0) then
646  write(*,*)
647  &'*WARNING reading *NODE FILE or *EL FILE: SVF only makes'
648  write(*,*) ' sense for 3D fluid calculations'
649  else
650  filab(41)(1:4)='SVF '
651  filab(41)(6:6)=elemsys
652  filab(41)(7:87)=noset
653  endif
654  elseif(textpart(ii)(1:3).eq.'ECD') then
655  if(nmethod.lt.8) then
656  write(*,*)
657  &'*WARNING reading *NODE FILE or *EL FILE: ECD only makes'
658  write(*,*)
659  & ' sense for electromagnetic calculations'
660  else
661  filab(42)(1:4)='ECD '
662  filab(42)(6:6)=elemsys
663  filab(42)(7:87)=noset
664  endif
665  elseif(textpart(ii)(1:3).eq.'POT') then
666  if(nmethod.lt.8) then
667  write(*,*)
668  &'*WARNING reading *NODE FILE or *EL FILE: POT only makes'
669  write(*,*)
670  & ' sense for electromagnetic calculations'
671  else
672  filab(43)(1:4)='POT '
673  filab(43)(6:6)=nodesys
674  filab(43)(7:87)=noset
675  endif
676  elseif(textpart(ii)(1:4).eq.'EMFE') then
677  if(nmethod.lt.8) then
678  write(*,*)
679  &'*WARNING reading *NODE FILE or *EL FILE: EMFE only makes'
680  write(*,*)
681  & ' sense for electromagnetic calculations'
682  else
683  filab(44)(1:4)='EMFE'
684  filab(44)(6:6)=elemsys
685  filab(44)(7:87)=noset
686  endif
687  elseif(textpart(ii)(1:4).eq.'EMFB') then
688  if(nmethod.lt.8) then
689  write(*,*)
690  &'*WARNING reading *NODE FILE or *EL FILE: EMFB only makes'
691  write(*,*)
692  & ' sense for electromagnetic calculations'
693  else
694  filab(45)(1:4)='EMFB'
695  filab(45)(6:6)=elemsys
696  filab(45)(7:87)=noset
697  endif
698  elseif(textpart(ii)(1:4).eq.'PCON') then
699  if((nmethod.ne.2).and.(nmethod.ne.5)) then
700  write(*,*)
701  &'*WARNING reading *NODE FILE or *EL FILE: PCON only makes'
702  write(*,*) ' sense for frequency and steady'
703  write(*,*) ' state dynamics calculations'
704  else
705  filab(46)(1:4)='PCON'
706  filab(46)(6:6)=elemsys
707  filab(46)(7:87)=noset
708  endif
709  elseif(textpart(ii)(1:4).eq.'SEN ') then
710  if(nmethod.ne.12) then
711  write(*,*)
712  &'*WARNING reading *NODE FILE or *EL FILE: SEN only makes'
713  write(*,*) ' sense for sensitivity'
714  write(*,*) ' calculations'
715  else
716  filab(47)(1:4)='SEN '
717  filab(47)(6:6)=elemsys
718  filab(47)(7:87)=noset
719  endif
720  else
721  write(*,*)
722  &'*WARNING reading *NODE FILE or *EL FILE: label not applicable'
723  write(*,*) ' or unknown; '
724  call inputwarning(inpc,ipoinpc,iline,
725  &"*NODE FILE/OUTPUT or *EL FILE/OUTPUT or *CONTACT FILE/OUTPUT %")
726  endif
727  enddo
728  enddo
729 !
730  return
subroutine inputwarning(inpc, ipoinpc, iline, text)
Definition: inputwarning.f:20
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21
subroutine inputerror(inpc, ipoinpc, iline, text)
Definition: inputerror.f:20
Hosted by OpenAircraft.com, (Michigan UAV, LLC)