1 | <html> |
---|
2 | <head> |
---|
3 | <style> |
---|
4 | TABLE {align: center; } |
---|
5 | H1 {color: #ffffff; background: Navy; font-weight: bold; font-family: Tahoma, Verdana; margin: 0px; padding: 2px; } |
---|
6 | H2 {color: #ffffff; background: #4682B4; font-weight: bold; font-family: Tahoma, Verdana; } |
---|
7 | TH {color: #ffffff; background: #4682B4; font-weight: bold; font-family: Tahoma, Verdana; } |
---|
8 | LI {font-weight: bold; font-family: Tahoma, Verdana; } |
---|
9 | </style> |
---|
10 | </head> |
---|
11 | |
---|
12 | <body> |
---|
13 | <H1>Jumbo90</H1> |
---|
14 | |
---|
15 | <p>Jumbo90 is a library written in Fortran for creating CML |
---|
16 | documents. Actually, Jumbo allows you to create XML, CML and STMML |
---|
17 | (another markup language closely related to CML). After a moments |
---|
18 | thought you may ask why do we need a library to write things? I mean, |
---|
19 | you can always type <pre>write(*,*) |
---|
20 | "<cml>stuff</cml>"</pre></p> |
---|
21 | |
---|
22 | <p>Well, while in theory it is a fairly simply task to write CML, or |
---|
23 | indeed any XML, in any language, in practice it's not quite that |
---|
24 | easy. Balancing tags that are opened at one end of a 2000 line |
---|
25 | source file and closed at the other or even opened and closed in |
---|
26 | different source files, is an unnecessary memory exercise, and |
---|
27 | balancing them in the right order a pain. More importantly, |
---|
28 | you'll probably only spot your mistake when you try to process the |
---|
29 | file, and given that XML is case sensitive it's a pretty easy to make |
---|
30 | a mistake. Furthermore, CML elements will often be built up in a |
---|
31 | standard manner using a large number of tags - and it can be fairly |
---|
32 | tedious typing in all of these. Add to this the fact that it is |
---|
33 | extremely difficult to correctly indent an XML document whose |
---|
34 | structure is as dynamic as that of the underlying program [1] (just |
---|
35 | using write statements). So, we decided that it was probably worth |
---|
36 | our while to create a library for handling the more tedious or tricky |
---|
37 | elements of creating a CML document. We also added functionality to |
---|
38 | check the well-formedness of all XML. In fact, most programming |
---|
39 | languages provide utilties for performing these seemingly simple |
---|
40 | tasks</p> |
---|
41 | |
---|
42 | <p>The original idea for Jumbo90 came from Peter Murray-Rust, who has |
---|
43 | a similar but much more rounded suite of tools written in Java, called |
---|
44 | Jumbo. I then converted Peter's original F77 code into F90, but it |
---|
45 | suffered a little from its F77 inheritance, so now the base XML |
---|
46 | formatting layer of Jumbo is provided by Alberto Garcia's WXML |
---|
47 | library.</p> |
---|
48 | |
---|
49 | <p>The Jumbo90 README containing a breakdown of all Jumbo90 |
---|
50 | subroutines is available <a href="jumbodocs.html">here</a></p> |
---|
51 | |
---|
52 | <br/> |
---|
53 | <hr/> |
---|
54 | <p align="right"><i>Jon Wakelin, March 2004</i></p> |
---|
55 | <p> [1] It's only a cosmetic feature but it's very useful when you |
---|
56 | need someone to read the file, of course, there's nothing wrong with |
---|
57 | writing a 12M XML file in a single line.</p> </body> |
---|
58 | |
---|
59 | </html> |
---|