//FILE IN USE 05/24/2004 -- present. //genesis /* This script reads parameters from an asci file ** The first line needs to contain the number of parameter lines ** as the first argument, and the number of parameters in each line ** as the second argument ** Each subsequent line contains a list of 1-20 parameters, and as last ** item on the line also contains a 0 ** The getfilepar function replaces the 0 with a 1 for lines that ** have been processed ** The user needs to have write permission to the current directory */ str filepar1, filepar2, filepar3, filepar4, filepar5, filepar6 str filepar7, filepar8, filepar9, filepar10 str filepar11, filepar12, filepar13, filepar14, filepar15, filepar16 str filepar17, filepar18, filepar19, filepar20 function getfilepar (fname) str fname // This function reads a command file // and sets a simulation parameter to the // first value in the command file, that // is not followed by a 1 as second value in a line // It then rewrites the command file to reflect // the processing of the current parameter /* LOCK FILE */ // str lockFile = {fname} @ ".lock" // while ({ls {lockFile}} != 256) // echo Waiting for lock release ... // end // touch {lockFile} // clearerrors str tmpfname tmpfname = {fname} @ ".tmp" openfile {fname} r openfile {tmpfname} w str instr int lines int nopar int i int done = 0 int control str parstr instr = {readfile {fname} -l} writefile {tmpfname} {instr} lines = {getarg {arglist {instr}} -arg 1} nopar = {getarg {arglist {instr}} -arg 2} for(i=0; i < lines; i = i + 1) instr = {readfile {fname} -l} if(done == 1) writefile {tmpfname} {instr} else filepar1 = {getarg {arglist {instr}} -arg 1} parstr = {filepar1} if(nopar > 1) filepar2 = {getarg {arglist {instr}} -arg 2} parstr = {parstr} @ " " @ {filepar2} end if(nopar > 2) filepar3 = {getarg {arglist {instr}} -arg 3} parstr = {parstr} @ " " @ {filepar3} end if(nopar > 3) filepar4 = {getarg {arglist {instr}} -arg 4} parstr = {parstr} @ " " @ {filepar4} end if(nopar > 4) filepar5 = {getarg {arglist {instr}} -arg 5} parstr = {parstr} @ " " @ {filepar5} end if(nopar > 5) filepar6 = {getarg {arglist {instr}} -arg 6} parstr = {parstr} @ " " @ {filepar6} end if(nopar > 6) filepar7 = {getarg {arglist {instr}} -arg 7} parstr = {parstr} @ " " @ {filepar7} end if(nopar > 7) filepar8 = {getarg {arglist {instr}} -arg 8} parstr = {parstr} @ " " @ {filepar8} end if(nopar > 8) filepar9 = {getarg {arglist {instr}} -arg 9} parstr = {parstr} @ " " @ {filepar9} end if(nopar > 9) filepar10 = {getarg {arglist {instr}} -arg 10} parstr = {parstr} @ " " @ {filepar10} end if(nopar > 10) filepar11 = {getarg {arglist {instr}} -arg 11} parstr = {parstr} @ " " @ {filepar11} end if(nopar > 11) filepar12 = {getarg {arglist {instr}} -arg 12} parstr = {parstr} @ " " @ {filepar12} end if(nopar > 12) filepar13 = {getarg {arglist {instr}} -arg 13} parstr = {parstr} @ " " @ {filepar13} end if(nopar > 13) filepar14 = {getarg {arglist {instr}} -arg 14} parstr = {parstr} @ " " @ {filepar14} end if(nopar > 14) filepar15 = {getarg {arglist {instr}} -arg 15} parstr = {parstr} @ " " @ {filepar15} end if(nopar > 15) filepar16 = {getarg {arglist {instr}} -arg 16} parstr = {parstr} @ " " @ {filepar16} end if(nopar > 16) filepar17 = {getarg {arglist {instr}} -arg 17} parstr = {parstr} @ " " @ {filepar17} end if(nopar > 17) filepar18 = {getarg {arglist {instr}} -arg 18} parstr = {parstr} @ " " @ {filepar18} end if(nopar > 18) filepar19 = {getarg {arglist {instr}} -arg 19} parstr = {parstr} @ " " @ {filepar19} end if(nopar > 19) filepar20 = {getarg {arglist {instr}} -arg 20} parstr = {parstr} @ " " @ {filepar20} end control = {getarg {arglist {instr}} -arg {{nopar}+1}} if(control == 1) writefile {tmpfname} {instr} else writefile {tmpfname} {parstr} 1 done = 1 end end end closefile {fname} closefile {tmpfname} cp {tmpfname} {fname} if(done == 0) echo ------------------------------------------------------- echo No more parameters in command file, quitting simulation echo ------------------------------------------------------- quit end end