Since a read of a Fortran NAMELIST scans a file for a match you can use this feature very easily to maintain a single configuration file for several programs. For example, if you have an input file that looks like:
This is file "config.nml" which contains setup information for
programs that launch xclock(1) and the xterm(1) program.
&xclock
background='black'
foreground='yellow'
geometry='64x64-0+0'
/
! setup for xterm program
&xterm
background='green'
foreground='black'
number=3
/
This contrived sample shows a single file ("config.nml") holding multiple NAMELIST input sets ("xterm" and "xclock") and a small program that reads the first "xterm" set (ignoring other content in the file) and builds and executes system commands using the information.
program config
character(len=30) :: background='black'
character(len=30) :: foreground='white'
integer :: number=1
namelist /xterm/ background, foreground, number
! before reading config file
call mysystem('xterm -bg '//background//' -fg '//foreground//'&')
open(10,file='config.nml',delim='apostrophe')
read(10,nml=xterm,iostat=ios)
! notice how the READ skipped down to the xterm NAMELIST group!!
! after reading config file
do i10=1,number
call mysystem('xterm -bg '//background//' -fg '//foreground//'&')
enddo
contains
subroutine mysystem(string)
character(len=*) :: string
write(*,*)'COMMAND:'//string
call execute_command(string)
end subroutine mysystem
end program config
COMMAND:xterm -bg black -fg white & COMMAND:xterm -bg green -fg black &