$title Generates HTM Model Library Files (GAMSHTM,SEQ=215) $onText Generates HTM model library files. GAMS Development Corporation, Modeling Tool Box. Generates all .htm related files for a set of models found in gamsmod.inc. Uses unpublished and unsupported PUT_Utilities features. The file gamsmod.inc is the master file for all other derived files. Files generated: seqindx.htm subindx.htm modlist.tex alfindx.htm *.htm for all model and include files All files $included, read and written have to be in the same directory. This program can be execute from another location by using the GAMS parameter U1, for example: >gams gamshtm.215 U1=c:\oldd\alex\gams\gamslib\ver008\test\ Keywords: GAMS language features, GAMS model library, generating htm files $offText $setglobal gamslib '%gams.u1%' File htm 'HTML file handle' / htm.htm / seqindx 'HTML sequence index' / '%gamslib%seqindx.htm' / subindx 'HTML subject index' / '%gamslib%subindx.htm' / alfindx 'HTML alpha index' / '%gamslib%alfindx.htm' / modlist 'TeX subject index' / '%gamslib%modlist.tex' /; Scalar first; $offListing $include "%gamslib%gamsmod.inc" $onListing * * model htm files * put htm; htm.pw = 4096; htm.lcase = 1; loop(sm(s,m), put_utilities 'ren'/ '%gamslib%' m.tl:0 '.htm'; put ' ' m.tl:0 '.gms' / '' / '

'm.tl:0 '.gms : ' m.te(m) '

'; put / '
'; put_utilities 'htm'/ '%gamslib%' m.tl:0 '.' s.tl:0; put / '
'; if(big(s), put 'Large '; else put 'Small ';); put 'Model of Type'; put$(sum(ts(t,s),1)>1) 's'; put ':'; htm.lcase = 2; loop(tss(t,s), put ' ' t.tl;); htm.lcase = 1; loop(ts(t,s)$(not tss(t,s)), put ' ' t.tl;); first = 1; loop(incmap(inc,s), if(first, put '   Includes:'; first = 0;); put$(not bininc(inc)) '  ' inc.tl:0 ''; put$bininc(inc) '  ' inc.tl:0 ''; ); put '
' / '' / '<!--#include virtual="%gamslib%' m.tl:0 '.' s.tl:0 '" -->'; * Either we do the < > replacement or we use plaintext * / '</pre>' * / '<!--#include virtual="/footer.html" -->' * / '</html>' ); * * include htm files * loop(inc$(not bininc(inc)), put_utilities 'ren'/ '%gamslib%' inc.tl:0 '.htm'; put '<html> <head> <title>' inc.tl:0 '</title>' / '<!--#include virtual="/header.html" -->' / '<h2>'inc.tl:0 ' : ' inc.te(inc) '</h2>' / '<hr> <p> Used by:'; loop((incmap(inc,s),sm(s,m)), put '&nbsp; <a href="' m.tl:0 '.htm">' m.tl:0 '.gms</a>';); put / '</p> <hr>' / '<pre>' / '<!--#include virtual="%gamslib%' inc.tl:0 '" -->' / '</pre>' / '<!--#include virtual="/footer.html" -->' / '</html>'; ); * * seqindx * seqindx.lcase = 1; put seqindx '<HTML> <HEAD> <TITLE> GAMS Model Library Chronological Index</TITLE></HEAD>' / '<!--#include virtual="/header.html" -->' /'<H1>Model Library Chronological Index</H1>' /'This is a listing of the model library in order of' /'submission date. The newest ones are at the top.' /'<P>' /'There is also an <A HREF="athindx.htm">author index</A>,' /'a <A HREF="subindx.htm">subject index</A>,' /'and an <A HREF="alfindx.htm">alphabetical index</A>.' /'<P>' / '<TABLE>' / '<TR>' / ' <TH ALIGN="LEFT">No</TH>' / ' <TH ALIGN="LEFT">Model</TH>' / ' <TH ALIGN="LEFT">Description</TH>' / ' <TH ALIGN="LEFT">Type</TH>' / '</TR>'; loop((srev(ss,s),sm(s,m))$(not deprecated(s)), put / '<TR>' / ' <TD>',s.tl:0,'</TD>' / ' <TD><A HREF="', m.tl:0,'.htm">', m.tl:0, '</A></TD>' / ' <TD>',m.te(m):0,'</TD>' / ' <TD>'; seqindx.lcase = 2; loop(tss(t,s), put t.tl:0;); put '</TD>' / '</TR>'; seqindx.lcase = 1; ); put / '</TABLE>' / '<!--#include virtual="/footer.html" -->' / '</html>'; * * subindx * subindx.lcase = 1; put subindx '<HTML> <HEAD><TITLE> GAMS Model Library Subject Index</TITLE></HEAD>' / '<!--#include virtual="/header.html" -->' /'<H1>Model Library Subject Index</H1>' /'The following subject areas are covered:' /'<UL>'; loop(a, put /'<LI> <A HREF="#', a.tl:0, '">', a.te(a):0, '</A>';); put /'</UL>' /'</UL>' /'<P>' /'There is also an <A HREF="alfindx.htm">alphabetical index</A>' /'an <A HREF="athindx.htm">author index</A>,' /'and a <A HREF="seqindx.htm">chronological index</A>.'; loop(a, put /'<H2> <A NAME="', a.tl:0,'">', a.te(a):0, '</A> </H2>' /'<TABLE WIDTH="100%">' /'<TR>' /' <TH ALIGN="LEFT" WIDTH="20%">Model</TD>' /' <TH ALIGN="LEFT" WIDTH="60%">Description</TD>' /' <TH ALIGN="LEFT" WIDTH="20%">Type</TD>' /'</TR>'; loop((m,as(a,s),sm(s,m))$(not deprecated(s)), put / '<TR>' / ' <TD><A HREF="', m.tl:0, '.htm">', m.tl:0, '</A></TD>' / ' <TD>',m.te(m):0,'</TD>' / ' <TD>'; subindx.lcase = 2; loop(tss(t,s), put t.tl:0;); put '</TD>' / '</TR>'; subindx.lcase = 1; ); put / '</TABLE>'; ); put / '<!--#include virtual="/footer.html" -->' / '</html>'; * * modlist * modlist.lcase = 1; put modlist '% Model library listed by application area' / loop(a, put / /'\subsubsection*{' a.te(a):0 '}' / /'\begin{modellist}' /'\Mname{\normalfont\textbf{Name}}' '\Mdesc{\textbf{Description}}' '\Mtype{\textbf{Type}}' '\Mnumber{\textbf{No.}}' loop((m,as(a,s),sm(s,m))$(not deprecated(s)), put / '\Mname{\textbf{' m.tl:0 '}}' '\Mdesc{' m.te(m):0 '}'; modlist.lcase = 2; loop(tss(t,s), put '\Mtype{' t.tl:0 '}';); put '\Mnumber{' s.tl:0 '}' /; modlist.lcase = 1; ); put / '\end{modellist}'; ); * * alfindx * alfindx.lcase = 1; put alfindx '<HTML> <HEAD><TITLE> GAMS Model Library Alphabetical Index</TITLE></HEAD>' / '<!--#include virtual="/header.html" -->' /'<H1>Model Library Alphabetical Index</H1>' /'This is an alphabetical listing of the models available' /'in the on-line model library.' /'There is also an <A HREF="athindx.htm">author index</A>,' /'a <A HREF="subindx.htm">subject index</A>, and' /'a <A HREF="seqindx.htm">chronological index</A>.' /'<P><b>Shortcuts:</b> '; alfindx.lcase = 2; loop(letters, put alfindx '<A HREF="#' letters.tl:0 '"> ' letters.tl:0 '</A>' /;); alfindx.lcase = 1; put alfindx /'<P><TABLE>' /'<TR>' /' <TD></TD>' /' <TH ALIGN="LEFT">Model</TH>' /' <TH ALIGN="LEFT">Description</TH>' /' <TH ALIGN="LEFT">Type</TH>' / '</TR>'; loop(m, if(letters(m), alfindx.lcase = 2; put /'<TR>' /' <TD></TD>' /'<TH COLSPAN=3 ALIGN="LEFT"><A NAME="'m.tl:0'">', m.tl:0, '</TH>' /'</TR>'; alfindx.lcase = 1; else if(not sum(sm(deprecated(s),m),1), put / '<TR>' * <TD><IMG SRC="/pics/new.gif"></TD> / ' <TD></TD>' / ' <TD><A HREF="', m.tl:0,'.htm">', m.tl:0, '</A></TD>' / ' <TD>', m.te(m):0, '</TD>' / ' <TD>'; alfindx.lcase = 2; loop(sm(s,m), loop(tss(t,s), put t.tl:0;); put '</TD>' / '</TR>'; alfindx.lcase = 1; ); ); ); ); put / '</TABLE>' / '<!--#include virtual="/footer.html" -->' / '</html>'; $exit