Difference between revisions of "Polling Input"
Jump to navigation
Jump to search
(Created page with "== Polling Input == When writing input routines for user elements and user material models it is recommended to use a polling input model. The basic idea it to use a <code>do...") |
|||
| Line 2: | Line 2: | ||
When writing input routines for user elements and user material models it is recommended to use a polling input model. The basic idea it to use a <code>do while</code> loop structure that reads your data based on keyword pairs, stores the values in <code>ud(:)</code>, and then terminates its reading when it encounters a blank line or some other string that you designate as the termination condition for your input. Here is a template that you can follow: | When writing input routines for user elements and user material models it is recommended to use a polling input model. The basic idea it to use a <code>do while</code> loop structure that reads your data based on keyword pairs, stores the values in <code>ud(:)</code>, and then terminates its reading when it encounters a blank line or some other string that you designate as the termination condition for your input. Here is a template that you can follow: | ||
< | <pre> | ||
logical pcomp,tinput,errck | logical pcomp,tinput,errck | ||
character type*15,text(2)*15,termination*15 | character type*15,text(2)*15,termination*15 | ||
| Line 25: | Line 25: | ||
endif | endif | ||
end do | end do | ||
</ | </pre> | ||
Latest revision as of 19:13, 12 February 2020
Polling Input
When writing input routines for user elements and user material models it is recommended to use a polling input model. The basic idea it to use a do while loop structure that reads your data based on keyword pairs, stores the values in ud(:), and then terminates its reading when it encounters a blank line or some other string that you designate as the termination condition for your input. Here is a template that you can follow:
logical pcomp,tinput,errck
character type*15,text(2)*15,termination*15
real*8 ud(*),td(10)
text(1) = 'start'
termination = ' ' ! or for example 'my input end'
do while (.not.pcomp(text(1),termination,4))
errck = tinput(text,2,td,9) ! Read two keywords and up to 9 values
if (pcomp(text(1),'key1',4)) then
if (pcomp(text(2),'key2',4)) then
ud(1) = td(1)
ud(2) = td(2)
elseif (pcomp(text(2),'key3',4)) then
ud(3) = td(1)
endif
elseif (pcomp(text(1),'key4',4)) then
if (pcomp(text(2),'key5',4)) then
ud(4) = td(1)
ud(5) = td(2)
ud(6) = td(3)
endif
endif
end do