<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.wiki.mohid.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.20.111&amp;*</id>
		<title>MohidWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.wiki.mohid.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.20.111&amp;*"/>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Special:Contributions/192.168.20.111"/>
		<updated>2026-04-04T17:25:16Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=ConvertToHdf5&amp;diff=144</id>
		<title>ConvertToHdf5</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=ConvertToHdf5&amp;diff=144"/>
				<updated>2007-02-26T20:16:41Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT[[ConvertToHDF5]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Main_Page&amp;diff=454</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Main_Page&amp;diff=454"/>
				<updated>2007-02-23T00:11:47Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;border-spacing:2em .1em;width:30%&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|class=&amp;quot;t_pink&amp;quot; style=&amp;quot;padding:.5em 1em&amp;quot;|&lt;br /&gt;
==&amp;lt;center&amp;gt;[[MOHID]] [[Wiki]]&amp;lt;/center&amp;gt;==&lt;br /&gt;
[[Mohid Water Modelling System|Water Modelling System]]&lt;br /&gt;
&lt;br /&gt;
[[Mohid Water]]&lt;br /&gt;
&lt;br /&gt;
[[Mohid Land]]&lt;br /&gt;
&lt;br /&gt;
[[Mohid River Network]]&lt;br /&gt;
&lt;br /&gt;
[[Mohid Graphical User Interfaces|Graphical User Interfaces]]&lt;br /&gt;
&lt;br /&gt;
[[Mohid Input/Output|Input/Output]]&lt;br /&gt;
&lt;br /&gt;
[[Mohid Programming|Programming]]&lt;br /&gt;
&lt;br /&gt;
[[Mohid Support Tools|Support Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Categorical index]]&lt;br /&gt;
&lt;br /&gt;
[[Special:Allpages|Index]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;csegoogle&amp;gt;007941234899421137885:xtadckhl66k&amp;lt;/csegoogle&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t_yellow&amp;quot; style=&amp;quot;margin:.3em 2em;width:90%;padding:.3em 0.5em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:25%;font-face:Verdana,Arial,Helvetica;&amp;quot; | &amp;lt;big&amp;gt;[http://www.mohid.com Homepage]&amp;lt;/big&amp;gt;&lt;br /&gt;
! style=&amp;quot;width:25%;font-face:Verdana,Arial,Helvetica;&amp;quot; | &amp;lt;big&amp;gt;[http://www.mohid.com/forum Forum]&amp;lt;/big&amp;gt;&lt;br /&gt;
! style=&amp;quot;width:25%;font-face:Verdana,Arial,Helvetica;&amp;quot; | &amp;lt;big&amp;gt;[http://www.mohid.com/hydrogroup Modeling Discussion Group]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! style=&amp;quot;width:25%;font-face:Verdana,Arial,Helvetica;&amp;quot; | &amp;lt;big&amp;gt;[http://data.mohid.com/index.xml Data]&amp;lt;/big&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
--------------&lt;br /&gt;
&lt;br /&gt;
Consult the [http://www.mediawiki.org/wiki/Help:Configuration_settings configuration settings list] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for information on customising and using the wiki software.&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Search&amp;diff=837</id>
		<title>Search</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Search&amp;diff=837"/>
				<updated>2007-02-23T00:11:16Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;csegoogle&amp;gt;007941234899421137885:xtadckhl66k&amp;lt;/csegoogle&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;csegoogleresults&amp;gt;007941234899421137885:xtadckhl66k&amp;lt;/csegoogleresults&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:tools]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Wikicolourboxes&amp;diff=947</id>
		<title>Wikicolourboxes</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Wikicolourboxes&amp;diff=947"/>
				<updated>2007-02-22T22:20:12Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: /* Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are some templates of coloured boxes to use inside your wiki. Choose your favorite color.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
{| style=&amp;quot;cell-spacing:.5em;width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:60%&amp;quot; | &amp;lt;code&amp;gt;{| class=&amp;quot;t_mauve&amp;quot;| This is an example |}&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40% |&lt;br /&gt;
{| &lt;br /&gt;
|class=&amp;quot;t_mauve&amp;quot;|This is an example &lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Colored tables templates ==&lt;br /&gt;
{|style=&amp;quot;width:50%;border-spacing:.5em&amp;quot;&lt;br /&gt;
|class=&amp;quot;t_pink&amp;quot; style=&amp;quot;width:50%&amp;quot;|&amp;lt;center&amp;gt;'''pink'''&amp;lt;/center&amp;gt;&lt;br /&gt;
*class: ''t_pink''&lt;br /&gt;
*border: ''gray''&lt;br /&gt;
*background: ''#FFEFF0''&lt;br /&gt;
|class=&amp;quot;t_blue&amp;quot;|&amp;lt;center&amp;gt;'''blue'''&amp;lt;/center&amp;gt;&lt;br /&gt;
*class: ''t_blue''&lt;br /&gt;
*border: ''#cedff2''&lt;br /&gt;
*background: ''#f5faff''&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;t_yellow&amp;quot; style=&amp;quot;width:50%&amp;quot;|&amp;lt;center&amp;gt;'''yellow'''&amp;lt;/center&amp;gt;&lt;br /&gt;
*class: ''t_yellow''&lt;br /&gt;
*border: ''#ffcc00''&lt;br /&gt;
*background: ''#FFFDDF''&lt;br /&gt;
|class=&amp;quot;t_mauve&amp;quot; style=&amp;quot;width:50%&amp;quot;|&amp;lt;center&amp;gt;'''mauve'''&amp;lt;/center&amp;gt;&lt;br /&gt;
*class: ''t_mauve''&lt;br /&gt;
*border: ''#ddcef2''&lt;br /&gt;
*background: ''#faf5ff''&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;t_green&amp;quot; style=&amp;quot;width:50%&amp;quot;|&amp;lt;center&amp;gt;'''green'''&amp;lt;/center&amp;gt;&lt;br /&gt;
*class: ''t_green''&lt;br /&gt;
*border: ''#cef2e0''&lt;br /&gt;
*background: ''#f5fffa''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Customized CSS template ==&lt;br /&gt;
For the table classes listed above be effective, one needs to edit the skin's css main file. Here's the inserted code:&lt;br /&gt;
 .t_pink {&lt;br /&gt;
    border: 1px solid gray;&lt;br /&gt;
    background: #FFEFF0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .t_yellow {&lt;br /&gt;
    border: 1px solid #ffcc00;&lt;br /&gt;
    background: #FFFDDF;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .t_green {&lt;br /&gt;
    border: 1px solid #cef2e0;&lt;br /&gt;
    background: #f5fffa;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .t_blue {&lt;br /&gt;
    border: 1px solid #cedff2;&lt;br /&gt;
    background: #f5faff;&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 .t_mauve {&lt;br /&gt;
    border: 1px solid #ddcef2;&lt;br /&gt;
    background: #faf5ff;&lt;br /&gt;
 }&lt;br /&gt;
== External References ==&lt;br /&gt;
*[http://meta.wikimedia.org/wiki/Help:Tables MediaWiki Tables]&lt;br /&gt;
[[Category:Wiki]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Tables&amp;diff=881</id>
		<title>Tables</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Tables&amp;diff=881"/>
				<updated>2007-02-22T22:06:58Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT:[[wikicolourboxes]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Posts&amp;diff=773</id>
		<title>Posts</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Posts&amp;diff=773"/>
				<updated>2007-02-22T19:37:34Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Posts count: {{NUMBEROFARTICLES}}&lt;br /&gt;
&lt;br /&gt;
Date: {{CURRENTDAYNAME}} {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}&lt;br /&gt;
&lt;br /&gt;
Time: {{CURRENTTIME}}&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=MatLab&amp;diff=468</id>
		<title>MatLab</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=MatLab&amp;diff=468"/>
				<updated>2007-02-16T15:14:49Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Matlab]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=H5dump&amp;diff=304</id>
		<title>H5dump</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=H5dump&amp;diff=304"/>
				<updated>2007-02-13T17:44:32Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[H5DUMP]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Quasi-geostrophic_equations&amp;diff=795</id>
		<title>Quasi-geostrophic equations</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Quasi-geostrophic_equations&amp;diff=795"/>
				<updated>2007-02-11T17:36:35Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Geostrophic &lt;br /&gt;
ow means a stationary &lt;br /&gt;
ow where the Coriolis force is balanced&lt;br /&gt;
by the pressure gradient. This has several implications&lt;br /&gt;
* the flow is stationary,&lt;br /&gt;
* any flow that satisfies the geostrophic momentum equations also satisfies exactly the continuity equation,&lt;br /&gt;
* the horizontal flow is vertically independent,&lt;br /&gt;
* no divergent or convergent flow is allowed.&lt;br /&gt;
Consider the horizontal momentum equations for an inviscid &lt;br /&gt;
uid under the ''beta'' plane approximation. &lt;br /&gt;
Also, the flow is nearly geostrophic, but not quite,&lt;br /&gt;
so we will consider the full equations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{D\,u}{Dt} - f\,v = -\frac{1}{\rho}\frac{\partial p}{\partial x}&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Rossby_radius&amp;diff=819</id>
		<title>Rossby radius</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Rossby_radius&amp;diff=819"/>
				<updated>2007-02-09T16:59:09Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Rossby radius of deformation '''a''' is the horizontal length scale at which rotation effects (characterized herein by the frequency '''f''') become as important as buoyancy effects (characterized here by the celerity '''c''' of the gravitational -or buoyant- restoring force).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a = \frac{c}{f}&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Scp&amp;diff=833</id>
		<title>Scp</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Scp&amp;diff=833"/>
				<updated>2007-02-07T20:04:51Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: /* How to use scp without prompting for passwords */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Secure Copy for linux systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;scp mpich.tar.gz guillaume@nfist.ist.utl.pt:mpich.tar.gz&lt;br /&gt;
This above line copies a local file to a target host.&lt;br /&gt;
 &amp;gt;scp guillaume@nfist.ist.utl.pt:mpich.tar.gz fedora@localhost&lt;br /&gt;
The above line does the converse from the prior.&lt;br /&gt;
&lt;br /&gt;
==How to use scp without prompting for passwords==&lt;br /&gt;
NOTE: CITING FROM [http://www.linuxjournal.com/article/8600 THIS] REFERENCE&lt;br /&gt;
&lt;br /&gt;
Here's an example demonstrating the most basic syntax for scp. To copy a file named abc.tgz from your local PC to the /tmp dir of a remote PC called bozo, use:&lt;br /&gt;
&lt;br /&gt;
 scp abc.tgz root@bozo:/tmp&lt;br /&gt;
&lt;br /&gt;
You now are asked for bozo's root password, so we're not quite there yet. The system still is asking for a password, so it's not easily scriptable. To fix that, follow this one-time procedure, after which you can make endless password-less scp copies:&lt;br /&gt;
&lt;br /&gt;
Decide which user on the local machine will be using scp later on. Of course, root gives you the most power, and that's how I personally have done it. I'm not going to give you a lecture here on the dangers of root, so if you don't understand them, choose a different user. Whatever you choose, log in as that user now and stay there for the rest of the procedure. Log in as this same user when you use scp later on.&lt;br /&gt;
&lt;br /&gt;
Generate a public/private key pair on the local machine. Say what? If you're not familiar with public key cryptography, here's the 15-second explanation. In public key cryptography, you generate a pair of mathematically related keys, one public and one private. You then give your public key to anyone and everyone in the world, but you never ever give out your private key. The magic is in the mathematical makeup of the keys; anyone with your public key can use it to encrypt a message, but only you can decrypt it with your private key. Anyway, the syntax to create the key pair is:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In response, you should see:&lt;br /&gt;
&lt;br /&gt;
 Generating public/private rsa key pair&lt;br /&gt;
 Enter file in which to save the key ... &lt;br /&gt;
&lt;br /&gt;
 Press Enter to accept this.&lt;br /&gt;
&lt;br /&gt;
In response, you should see:&lt;br /&gt;
&lt;br /&gt;
 Enter passphrase (empty for no passphrase):&lt;br /&gt;
&lt;br /&gt;
You don't need a passphrase, so press Enter twice.&lt;br /&gt;
&lt;br /&gt;
In response, you should see:&lt;br /&gt;
&lt;br /&gt;
 Your identification has been saved in ... &lt;br /&gt;
 Your public key has been saved in ... &lt;br /&gt;
&lt;br /&gt;
Note the name and location of the public key just generated. It always ends in .pub.&lt;br /&gt;
&lt;br /&gt;
Copy the public key just generated to all of your remote Linux boxes. You can use scp or FTP or whatever to make the copy. Assuming you're using root--again, see my warning in step 1--the key must be contained in the file /root/.ssh/authorized_keys. Or, if you are logging in as a user, for example, clyde, it would be in /home/clyde/authorized_keys. Notice that the authorized_keys file can contain keys from other PCs. So, if the file already exists and contains text, you need to append the contents of your public key file to what already is there.&lt;br /&gt;
&lt;br /&gt;
Now, with a little luck, you should be able to scp a file to the remote box without needing to use a password. So let's test it by trying our first example again. Copy a file named xyz.tgz from your local PC to the /tmp dir of a remote PC called bozo:&lt;br /&gt;
&lt;br /&gt;
 scp xyz.tgz root@bozo:/tmp&lt;br /&gt;
&lt;br /&gt;
Wow--it copied with no password!&lt;br /&gt;
&lt;br /&gt;
A word about security before we go on. This local PC just became pretty powerful, as it now has access to all the remote PCs with only the one local password. So that one password better be strong and well guarded.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Wget&amp;diff=939</id>
		<title>Wget</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Wget&amp;diff=939"/>
				<updated>2007-02-07T19:11:03Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Wget]] is a little utility that gets files by http via the command line&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
This example gets all files within an anonymous ftp folder.&lt;br /&gt;
 &amp;gt; wget ftp://ocdist6.sci.gsfc.nasa.gov/requested_files/*.*&lt;br /&gt;
&lt;br /&gt;
This example gets an rss feed from a php request and stores into a file.&lt;br /&gt;
 &amp;gt; wget -O wikichangesrss.xml  --user=wikiguest --password=wikiguest  http://www.mohid.com/wiki/index.php?title=Special:Recentchanges\&amp;amp;feed=rss&lt;br /&gt;
&lt;br /&gt;
[[category:Linux]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Module_Statistics&amp;diff=587</id>
		<title>Module Statistics</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Module_Statistics&amp;diff=587"/>
				<updated>2007-02-05T10:52:21Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: /* Hydrodynamic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Module Statistics]] calculates the following time statistics:&lt;br /&gt;
&lt;br /&gt;
- '''arithmetic average''';&lt;br /&gt;
&lt;br /&gt;
- '''geometric average''' (optional);&lt;br /&gt;
&lt;br /&gt;
- '''sample standard deviation from arithmetic average''';&lt;br /&gt;
&lt;br /&gt;
- '''sample standard deviation from geometric average''' (optional);&lt;br /&gt;
&lt;br /&gt;
- '''maximum value''';&lt;br /&gt;
&lt;br /&gt;
- '''minimum value''';&lt;br /&gt;
&lt;br /&gt;
- '''accumulated value''' (optional).&lt;br /&gt;
&lt;br /&gt;
- '''percentage of run-time below a critical value''' (optional).&lt;br /&gt;
&lt;br /&gt;
It is better described in the support tool [[HDF5Statistics]], but can be used in the [[MohidWater]] program.&lt;br /&gt;
&lt;br /&gt;
== Input file ==&lt;br /&gt;
Here's the input file &amp;lt;code&amp;gt;stats.dat&amp;lt;/code&amp;gt;:&lt;br /&gt;
 METHOD_STATISTIC        : ... (statistical method: 1 = Values3DStats3D, 3 = Values2DStats2D;&lt;br /&gt;
                                1 = default)&lt;br /&gt;
 &lt;br /&gt;
 GLOBAL_STATISTIC        : 0/1 (1 = calculate statistics for the whole time window period;&lt;br /&gt;
                                0 = default)&lt;br /&gt;
 DAILY_STATISTIC         : 0/1 (1 = calculate daily statistics; 0 = default)&lt;br /&gt;
 MONTHLY_STATISTIC       : 0/1 (1 = calculate monthly statistics; 0 = default)&lt;br /&gt;
 &lt;br /&gt;
 SPECIFIC_HOUR_STATISTIC : 0/1 (1 = calculate statistics for data referring to a specific hour&lt;br /&gt;
                                of the day; 0 = default) &lt;br /&gt;
 SPECIFIC_HOUR           : ... (if SPECIFIC_HOUR_STATISTIC : 1, hour of day for statistics&lt;br /&gt;
                                calculation; 12 = default)&lt;br /&gt;
 &lt;br /&gt;
 CRITICAL                : 0/1 (1 = calculate percentage of time below a critical value; 0 =&lt;br /&gt;
                                default)&lt;br /&gt;
 CRITICAL_VALUE          : ... (parameter critical value, real; default = 0.02)&lt;br /&gt;
 &lt;br /&gt;
 GEOMETRIC_MEAN          : 0/1 (0 = do not calculate geometric mean for non negative parameters,&lt;br /&gt;
                                1 = calculate geometric mean for non negative parameters;&lt;br /&gt;
                                0 = default)&lt;br /&gt;
 ACCUMULATED             : 0/1 (0 = do not calculate accumulated values, 1 = calculate&lt;br /&gt;
                                accumulated values; 0 = default)&lt;br /&gt;
&lt;br /&gt;
===Hydrodynamic===&lt;br /&gt;
Assign the following keywords to the hydrodynamic configuration file:&lt;br /&gt;
 STATISTICS               : 1 &lt;br /&gt;
 STATISTICS_FILE          : ..\..\GeneralData\Statistics\stats.dat&lt;br /&gt;
 &lt;br /&gt;
 STATISTICS_2D            : 1 &lt;br /&gt;
 STATISTICS_FILE_2D       : ..\..\GeneralData\Statistics\stats2D.dat&lt;br /&gt;
Note that there are two statistics files. One for the ''u'', ''v'' and ''w'' components (3D fields). And another for the ''waterlevel'' (2D field). Make sure you define the correct statistical method in each case.&lt;br /&gt;
&lt;br /&gt;
===WaterProperties===&lt;br /&gt;
Under each property assign the following keywords:&lt;br /&gt;
 &amp;lt;beginproperty&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 STATISTICS               : 1 &lt;br /&gt;
 STATISTICS_FILE          : ..\..\GeneralData\Statistics\stats.dat&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;lt;endproperty&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Code_Comment_Method&amp;diff=112</id>
		<title>Code Comment Method</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Code_Comment_Method&amp;diff=112"/>
				<updated>2007-01-31T09:53:28Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: /* Comments from the sample perl code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A good practice for any language programming is to comment abundantly the code. This way, things will be easier for the coder, or any code reader, to decode in the future the meaning of the code. However, each coder has its own standards to comment code; indeed as some coders are very succint, others are excessively prolific, while others remain cryptic at best.&lt;br /&gt;
&lt;br /&gt;
Hence, a standard for commenting code would prove useful. To do so, one needs to establish rules for code commenting, and Mohid does have a set of rules. However, these are quite flexible, and most of all, the implemented comments in the code is ill-formed nearly everywhere.&lt;br /&gt;
&lt;br /&gt;
The advantages to establish a strict set of rules are immense! The greatest one of them  would be to  automatically generate code documentation!&lt;br /&gt;
&lt;br /&gt;
Hence, basing ourselves in [http://en.wikipedia.org/wiki/Xml XML]/[http://en.wikipedia.org/wiki/Xsd XSD]/[http://en.wikipedia.org/wiki/Xsl XSLT] technology we will outline the principles for a sound code commenting practice. The method is currently applied to comment perl scripts, thus only the respective xml and schema are presented here.&lt;br /&gt;
&lt;br /&gt;
== Commenting code using the XML method ==&lt;br /&gt;
To comment code one needs to define for each program:&lt;br /&gt;
*The program name&lt;br /&gt;
*A header that contains:&lt;br /&gt;
**A description of the program&lt;br /&gt;
**The program user's syntax&lt;br /&gt;
**The program inputs&lt;br /&gt;
**The program outputs&lt;br /&gt;
*The code that contains:&lt;br /&gt;
**The generic comments&lt;br /&gt;
**The subroutines, which in turn contain:&lt;br /&gt;
***A description&lt;br /&gt;
***The inputs&lt;br /&gt;
***The outputs&lt;br /&gt;
&lt;br /&gt;
All of these directives are well-accepted and of common sense. However we decide to be very strict to them and decide to use XML to write the comments in the code. &lt;br /&gt;
=== Sample perl code ===&lt;br /&gt;
Here is a sample perl script that uses the commenting XML method:&lt;br /&gt;
 #!/usr/local/bin/perl&lt;br /&gt;
 #&amp;lt;PROGRAM_DOCUMENT&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;lt;TYPE&amp;gt;Perl&amp;lt;/TYPE&amp;gt;&lt;br /&gt;
 #&amp;lt;PROJECT&amp;gt;Operational Model Automated Scripts&amp;lt;/PROJECT&amp;gt;&lt;br /&gt;
 #&amp;lt;NAME&amp;gt;ExtractComments&amp;lt;/NAME&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;lt;HEADER&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;DESCRIPTION&amp;gt;&lt;br /&gt;
 # 	Program that extracts the comments from the perl scripts and outputs in&lt;br /&gt;
 # 	an XML format defined by a XSD schema.&lt;br /&gt;
 # 	!As a rule the first line is ignored!&lt;br /&gt;
 # &amp;lt;/DESCRIPTION&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;SYNTAX&amp;gt;&lt;br /&gt;
 #	$perl ExtractComments.pl &amp;amp;lt; perlscript.pl &amp;amp;gt; _perlscript.xml\n&lt;br /&gt;
 #	$more perlscript.pl | perl ExtractComments.pl &amp;amp;gt; _perlscript.xml.&lt;br /&gt;
 # &amp;lt;/SYNTAX&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;INPUT&amp;gt; &lt;br /&gt;
 #	&amp;lt;STDIN&amp;gt;void&amp;lt;/STDIN&amp;gt;&lt;br /&gt;
 #      &amp;lt;FILES&amp;gt;&lt;br /&gt;
 #          &amp;lt;FILE&amp;gt;perlscript.pl&amp;lt;/FILE&amp;gt;&lt;br /&gt;
 #      &amp;lt;/FILES&amp;gt;&lt;br /&gt;
 # &amp;lt;/INPUT&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;OUTPUT&amp;gt; &lt;br /&gt;
 #	&amp;lt;STDOUT&amp;gt;&lt;br /&gt;
 #           Comments in code.&lt;br /&gt;
 #	&amp;lt;/STDOUT&amp;gt;&lt;br /&gt;
 # &amp;lt;/OUTPUT&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;lt;/HEADER&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;lt;_CODE&amp;gt;&lt;br /&gt;
 use IO::File;&lt;br /&gt;
 &lt;br /&gt;
 if (!@ARGV)&lt;br /&gt;
 {&lt;br /&gt;
    @ARGV = &amp;lt;STDIN&amp;gt;;&lt;br /&gt;
    chomp(@ARGV);&lt;br /&gt;
 }&lt;br /&gt;
 #What if this happens?&lt;br /&gt;
 while (!($ARGV[0] =~ /&amp;lt;PROGRAM_DOCUMENT&amp;gt;/i)) #Are we at the beginning of the document yet?&lt;br /&gt;
 {&lt;br /&gt;
 	shift @ARGV; #No? Then keep looking.&lt;br /&gt;
 }&lt;br /&gt;
 foreach $line (@ARGV)&lt;br /&gt;
 {&lt;br /&gt;
 	$_= substr($line,0,1); #Isolate the first character&lt;br /&gt;
 	if ($_ =~ /#/) #Is it a comment char?&lt;br /&gt;
 	{&lt;br /&gt;
  		$newline = substr($line,1); #Extract the line without the &amp;quot;#&amp;quot; character.&lt;br /&gt;
 	 	push (@outtext, &amp;quot;$newline\n&amp;quot;); #and push it to the output.&lt;br /&gt;
 	}&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 print &amp;quot;@outtext\n&amp;quot;; #output to &amp;lt;STDOUT&amp;gt;&lt;br /&gt;
 # &amp;lt;SUBROUTINE&amp;gt;&lt;br /&gt;
 # &amp;lt;NAME&amp;gt;openlog&amp;lt;/NAME&amp;gt;&lt;br /&gt;
 # &amp;lt;DESCRIPTION&amp;gt;&lt;br /&gt;
 # 	This routine creates or opens a log file and appends a timestamp.&lt;br /&gt;
 # &amp;lt;/DESCRIPTION&amp;gt;&lt;br /&gt;
 # &amp;lt;INPUT&amp;gt;&lt;br /&gt;
 # 	logfilename.&lt;br /&gt;
 # &amp;lt;/INPUT&amp;gt;&lt;br /&gt;
 # &amp;lt;OUTPUT&amp;gt;&lt;br /&gt;
 # 	$LOG IO::File handler.&lt;br /&gt;
 # &amp;lt;/OUTPUT&amp;gt;&lt;br /&gt;
 # &amp;lt;/SUBROUTINE&amp;gt;&lt;br /&gt;
 sub openlog&lt;br /&gt;
 { &lt;br /&gt;
 	$timestamp=localtime();&lt;br /&gt;
 	$LOG = new IO::File &amp;quot;&amp;gt;&amp;gt;$_[0]&amp;quot;;&lt;br /&gt;
 	print $LOG &amp;quot;\n############# $timestamp $_[0] ######################\n\n&amp;quot;;&lt;br /&gt;
 	return $LOG;&lt;br /&gt;
 }&lt;br /&gt;
 #&amp;lt;/_CODE&amp;gt;&lt;br /&gt;
 #&amp;lt;/PROGRAM_DOCUMENT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extracting the comments from the code ==&lt;br /&gt;
At first, it may seem a bit absurd to use XML to comment code as it turns it a lot heavier than before. However, the perl sample script extracts the comments from the code. Here's the command:&lt;br /&gt;
 $perl ExtractComments.pl &amp;lt; ExtractComments.pl&lt;br /&gt;
=== Comments from the sample perl code ===&lt;br /&gt;
And here's the output:&lt;br /&gt;
 &amp;lt;PROGRAM_DOCUMENT&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;TYPE&amp;gt;Perl&amp;lt;/TYPE&amp;gt;&lt;br /&gt;
 &amp;lt;PROJECT&amp;gt;Operational Model Automated Scripts&amp;lt;/PROJECT&amp;gt;&lt;br /&gt;
 &amp;lt;NAME&amp;gt;ExtractComments&amp;lt;/NAME&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;HEADER&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;DESCRIPTION&amp;gt;&lt;br /&gt;
        Program that extracts the comments from the perl scripts and outputs in&lt;br /&gt;
        an XML format defined by a XSD schema.&lt;br /&gt;
        !As a rule the first line is ignored!&lt;br /&gt;
  &amp;lt;/DESCRIPTION&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;SYNTAX&amp;gt;&lt;br /&gt;
        $perl ExtractComments.pl &amp;amp;lt; perlscript.pl &amp;amp;gt; _perlscript.xml\n&lt;br /&gt;
        $more perlscript.pl | perl ExtractComments.pl &amp;amp;gt; _perlscript.xml.&lt;br /&gt;
  &amp;lt;/SYNTAX&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;INPUT&amp;gt; &lt;br /&gt;
 	&amp;lt;STDIN&amp;gt;void&amp;lt;/STDIN&amp;gt;&lt;br /&gt;
       &amp;lt;FILES&amp;gt;&lt;br /&gt;
           &amp;lt;FILE&amp;gt;perlscript.pl&amp;lt;/FILE&amp;gt;&lt;br /&gt;
       &amp;lt;/FILES&amp;gt;&lt;br /&gt;
  &amp;lt;/INPUT&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;OUTPUT&amp;gt; &lt;br /&gt;
 	&amp;lt;STDOUT&amp;gt;&lt;br /&gt;
            Comments in code.&lt;br /&gt;
 	&amp;lt;/STDOUT&amp;gt;&lt;br /&gt;
  &amp;lt;/OUTPUT&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/HEADER&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;_CODE&amp;gt;&lt;br /&gt;
 What if this happens?&lt;br /&gt;
  &amp;lt;SUBROUTINE&amp;gt;&lt;br /&gt;
  &amp;lt;NAME&amp;gt;openlog&amp;lt;/NAME&amp;gt;&lt;br /&gt;
  &amp;lt;DESCRIPTION&amp;gt;&lt;br /&gt;
        This routine creates or opens a log file and appends a timestamp.&lt;br /&gt;
  &amp;lt;/DESCRIPTION&amp;gt;&lt;br /&gt;
  &amp;lt;INPUT&amp;gt;&lt;br /&gt;
        logfilename.&lt;br /&gt;
  &amp;lt;/INPUT&amp;gt;&lt;br /&gt;
  &amp;lt;OUTPUT&amp;gt;&lt;br /&gt;
        $LOG IO::File handler.&lt;br /&gt;
  &amp;lt;/OUTPUT&amp;gt;&lt;br /&gt;
  &amp;lt;/SUBROUTINE&amp;gt;&lt;br /&gt;
 &amp;lt;/_CODE&amp;gt;&lt;br /&gt;
 &amp;lt;/PROGRAM_DOCUMENT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
[[Category:Perl]]&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
Neat, huh?&lt;br /&gt;
&lt;br /&gt;
==== The exception rule ====&lt;br /&gt;
The only exception rule is that the &amp;lt;code&amp;gt;&amp;lt;, &amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; characters cannot be displayed as is in XML format. The recommended alternative way to represent them is:&lt;br /&gt;
 &amp;lt;ampersand&amp;gt;lt; , &amp;lt;ampersand&amp;gt;gt; and &amp;lt;ampersand&amp;gt;amp;&lt;br /&gt;
&lt;br /&gt;
==Validating the comments from the code==&lt;br /&gt;
Indeed it's very interesting as we get &amp;quot;ready to use&amp;quot; XML code to produce a program documentation! However, well-formed xml is required to produce documentation. Furthermore, an XML Schema is also required if one wants to use a XSLT stylesheet to port the XML to HTML or PDF. Thus, validate the code comments is required in order to guarantee that code comments are well-formed and conform with  the rules.&lt;br /&gt;
&lt;br /&gt;
===The Schema===&lt;br /&gt;
Here is the XML Schema (XSD) that conforms to the example given above:&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;xsd:schema xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;lt;-- Root Level --&amp;gt;	&lt;br /&gt;
 	&amp;lt;xsd:element name=&amp;quot;PROGRAM_DOCUMENT&amp;quot; type=&amp;quot;PROGRAM_DOCUMENTtype&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;lt;-- Zeroth Level --&amp;gt;	&lt;br /&gt;
 	&amp;lt;-- 1 type to be defined here: PROGRAM_DOCUMENT --&amp;gt;	&lt;br /&gt;
 	&amp;lt;xsd:complexType name=&amp;quot;PROGRAM_DOCUMENTtype&amp;quot;&amp;gt;&lt;br /&gt;
 		&amp;lt;xsd:sequence&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;TYPE&amp;quot; type=&amp;quot;TYPEtype&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;PROJECT&amp;quot; type=&amp;quot;xsd:string&amp;quot; minOccurs=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;NAME&amp;quot; type=&amp;quot;xsd:string&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;HEADER&amp;quot; type=&amp;quot;HEADERtype&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;CODE&amp;quot; type=&amp;quot;CODEtype&amp;quot;/&amp;gt;&lt;br /&gt;
 		&amp;lt;/xsd:sequence&amp;gt;&lt;br /&gt;
 	&amp;lt;/xsd:complexType&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;lt;-- First Level --&amp;gt;	&lt;br /&gt;
 	&amp;lt;-- 3 types to be defined here: TYPE, HEADER, CODE --&amp;gt;	&lt;br /&gt;
 	&amp;lt;xsd:simpleType name=&amp;quot;TYPEtype&amp;quot;&amp;gt;&lt;br /&gt;
 		&amp;lt;xsd:restriction base=&amp;quot;xsd:string&amp;quot;&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:enumeration value=&amp;quot;Perl&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:enumeration value=&amp;quot;Fortran77&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:enumeration value=&amp;quot;Fortran90&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:enumeration value=&amp;quot;Fortran95&amp;quot;/&amp;gt;&lt;br /&gt;
 	 		&amp;lt;xsd:enumeration value=&amp;quot;VB&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:enumeration value=&amp;quot;Php&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:enumeration value=&amp;quot;Cgi&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:enumeration value=&amp;quot;Python&amp;quot;/&amp;gt;&lt;br /&gt;
 		&amp;lt;/xsd:restriction&amp;gt;&lt;br /&gt;
 	&amp;lt;/xsd:simpleType&amp;gt;&lt;br /&gt;
 	&lt;br /&gt;
 	&amp;lt;xsd:complexType name=&amp;quot;HEADERtype&amp;quot;&amp;gt;&lt;br /&gt;
 		&amp;lt;xsd:sequence&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;DESCRIPTION&amp;quot; type=&amp;quot;xsd:string&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;SYNTAX&amp;quot; type=&amp;quot;xsd:string&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;INPUT&amp;quot; type=&amp;quot;INPUTtype&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;OUTPUT&amp;quot; type=&amp;quot;OUTPUTtype&amp;quot;/&amp;gt;&lt;br /&gt;
 		&amp;lt;/xsd:sequence&amp;gt;&lt;br /&gt;
 	&amp;lt;/xsd:complexType&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 	&amp;lt;xsd:complexType name=&amp;quot;CODEtype&amp;quot; mixed=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
  		&amp;lt;xsd:sequence&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;SUBROUTINE&amp;quot; type=&amp;quot;SUBROUTINEtype&amp;quot; minOccurs=&amp;quot;0&amp;quot;  maxOccurs=&amp;quot;unbounded&amp;quot;/&amp;gt;&lt;br /&gt;
 		&amp;lt;/xsd:sequence&amp;gt;&lt;br /&gt;
 	&amp;lt;/xsd:complexType&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 	&amp;lt;-- Second Level --&amp;gt;	&lt;br /&gt;
 	&amp;lt;-- 3 types to be defined here: INPUT, OUTPUT, SUBROUTINE --&amp;gt;	&lt;br /&gt;
 	&amp;lt;xsd:complexType name=&amp;quot;INPUTtype&amp;quot; mixed=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
 		&amp;lt;xsd:sequence&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;STDIN&amp;quot; type=&amp;quot;STDtype&amp;quot; minOccurs=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;FILES&amp;quot; type=&amp;quot;FILEStype&amp;quot; minOccurs=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
 		&amp;lt;/xsd:sequence&amp;gt;&lt;br /&gt;
 	&amp;lt;/xsd:complexType&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 	&amp;lt;xsd:complexType name=&amp;quot;OUTPUTtype&amp;quot; mixed=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
 		&amp;lt;xsd:sequence&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;STDOUT&amp;quot; type=&amp;quot;STDtype&amp;quot; minOccurs=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;FILES&amp;quot; type=&amp;quot;FILEStype&amp;quot; minOccurs=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
 		&amp;lt;/xsd:sequence&amp;gt;&lt;br /&gt;
 	&amp;lt;/xsd:complexType&amp;gt;&lt;br /&gt;
 	&lt;br /&gt;
 	&amp;lt;xsd:complexType name=&amp;quot;SUBROUTINEtype&amp;quot; mixed=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
 		&amp;lt;xsd:sequence&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;NAME&amp;quot; type=&amp;quot;xsd:string&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;DESCRIPTION&amp;quot; type=&amp;quot;xsd:string&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;INPUT&amp;quot; type=&amp;quot;xsd:string&amp;quot;/&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;OUTPUT&amp;quot; type=&amp;quot;xsd:string&amp;quot;/&amp;gt;&lt;br /&gt;
 	 	&amp;lt;/xsd:sequence&amp;gt;&lt;br /&gt;
 	&amp;lt;/xsd:complexType&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 	&amp;lt;-- Third Level --&amp;gt;	&lt;br /&gt;
 	&amp;lt;-- 2 types to be defined here: STDtype, FILEStype --&amp;gt;	&lt;br /&gt;
 	&amp;lt;xsd:complexType name=&amp;quot;STDtype&amp;quot; mixed=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
 		&amp;lt;xsd:sequence&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;EXAMPLE&amp;quot; type=&amp;quot;xsd:string&amp;quot; minOccurs=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
 		&amp;lt;/xsd:sequence&amp;gt;&lt;br /&gt;
 	&amp;lt;/xsd:complexType&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 	&amp;lt;xsd:complexType name=&amp;quot;FILEStype&amp;quot;&amp;gt;&lt;br /&gt;
 		&amp;lt;xsd:sequence&amp;gt;&lt;br /&gt;
 			&amp;lt;xsd:element name=&amp;quot;FILE&amp;quot; type=&amp;quot;xsd:string&amp;quot; minOccurs=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
 		&amp;lt;/xsd:sequence&amp;gt;&lt;br /&gt;
 	&amp;lt;/xsd:complexType&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/xsd:schema&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== The validate action ===&lt;br /&gt;
Now that we have the comments in XML format and an XSD file to validate them against, we'll be requiring a command line utility that performs the validation. Here we will use the free java program [http://www.mohid.com/hydrogroup/data_sources/validateXML.jar validateXML.jar] and some shell scripting (piping) to perform the trick:&lt;br /&gt;
&lt;br /&gt;
==== The XML header====&lt;br /&gt;
First we need to give the XML comments a header that links the XML to the XSD. We use a little [[Perl#One-Liners|perl one-liner]] for that:&lt;br /&gt;
 $perl -p -e &amp;quot;s/&amp;lt;PROGRAM_DOCUMENT&amp;gt;/&amp;lt;?xml version = \&amp;quot;1.0\&amp;quot;?&amp;gt;\n\n&amp;lt;PROGRAM_DOCUMENT xmlns:xsi =  &lt;br /&gt;
 \&amp;quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance\&amp;quot; xsi:noNamespaceSchemaLocation = &lt;br /&gt;
 \&amp;quot;http:\/\/www.mohid.com\/hydrogroup\/data_sources\/metacode.xsd\&amp;quot;&amp;gt;/i;&amp;quot; &amp;lt; ExtractComments.xml&lt;br /&gt;
Here's an extract of the output:&lt;br /&gt;
 &amp;lt;?xml version = &amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;PROGRAM_DOCUMENT xmlns:xsi = &amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;  &lt;br /&gt;
 xsi:noNamespaceSchemaLocation = &amp;quot;http://www.mohid.com/hydrogroup/data_sources/metacode.xsd&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &amp;lt;TYPE&amp;gt;Perl&amp;lt;/TYPE&amp;gt;&lt;br /&gt;
 &amp;lt;PROJECT&amp;gt;Operational Model Automated Scripts&amp;lt;/PROJECT&amp;gt;&lt;br /&gt;
 &amp;lt;NAME&amp;gt;ExtractComments&amp;lt;/NAME&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
==== The validation check ====&lt;br /&gt;
Next we can check to see if the XML is well-formed and conform to its schema with [http://www.mohid.com/hydrogroup/data_sources/validateXML.jar validateXML.jar]:&lt;br /&gt;
 $java -jar validateXML.jar ExtractComments_new.xml&lt;br /&gt;
Here's the output if the XML is valid:&lt;br /&gt;
 Validating &amp;quot;ExtractComments_new.xml&amp;quot;:&lt;br /&gt;
 root element = &amp;quot;&amp;quot;:PROGRAM_DOCUMENT&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== Producing a document ==&lt;br /&gt;
If this method is rigorously applied and no program may be checked in the local documents repository until it passes the schema validation test, then structured coherent comments are readily available to be ported in a more reader-friendly format. The best way is to produce a XSLT stylesheet that transforms the XML into, say, a pdf format or openoffice, or word. This has [http://www.mohid.com/hydrogroup/codecomments/ExtractComments.pl.xml yet] to be implemented in this perl example. Another very interesting idea would be to post the code comments to a blog or a wiki or a web-page(via mail).&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
Currently, the perl commenting method files can be found in SourceSafe in the OtherTools database under the folder Perl/Meta. Also, an experimental [http://www.mohid.com/hydrogroup/codecomments.xml web-based code repository] is being tested.&lt;br /&gt;
&lt;br /&gt;
==External References==&lt;br /&gt;
*[http://www.w3.org/XML/ W3C XML.]&lt;br /&gt;
*[http://www.w3.org/XML/Schema W3C XML Schema.]&lt;br /&gt;
*[http://www.w3schools.com/schema/default.asp W3School XSD] is a popular tutorial for XSD.&lt;br /&gt;
*[http://xmlstar.sourceforge.net/ XmlStartlet] is a very useful suite of command line tools.&lt;br /&gt;
*[http://www.mohid.com/hydrogroup/data_sources/validateXML.jar validateXML.jar] is the java program used to validate the XML against the XSD.&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=MohidTube&amp;diff=611</id>
		<title>MohidTube</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=MohidTube&amp;diff=611"/>
				<updated>2007-01-14T03:05:36Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;youtube&amp;gt;UhVb3v7oa4E&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Winzip&amp;diff=955</id>
		<title>Winzip</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Winzip&amp;diff=955"/>
				<updated>2007-01-12T12:14:47Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: /* unzip.bat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here's how to use winzip32 from the command line:&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
===Zip===&lt;br /&gt;
Put the winzip32.exe directory in your &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; environment variable first.&lt;br /&gt;
 $ winzip32 -a images.zip *.bmp&lt;br /&gt;
or &lt;br /&gt;
 $ winzip32 -min -m images.zip *.bmp&lt;br /&gt;
====2zip.bat====&lt;br /&gt;
 ECHO 2zip.bat bmp&lt;br /&gt;
 winzip32 -min -m images.%1.zip *.%1&lt;br /&gt;
&lt;br /&gt;
===Unzip===&lt;br /&gt;
 $winzip32 -min -e -o archive.zip&lt;br /&gt;
&lt;br /&gt;
====unzip.bat====&lt;br /&gt;
 ECHO unzip.bat *&lt;br /&gt;
 ECHO unzip.bat archive.zip&lt;br /&gt;
 IF &amp;quot;%1&amp;quot;==&amp;quot;*&amp;quot; GOTO ALL&lt;br /&gt;
 winzip32 -min -e -o %1&lt;br /&gt;
 GOTO END&lt;br /&gt;
 &lt;br /&gt;
 :ALL&lt;br /&gt;
 FOR %%A IN (*.zip) DO winzip32 -min -e -o %%A&lt;br /&gt;
 &lt;br /&gt;
 :END&lt;br /&gt;
&lt;br /&gt;
==Winzip for handling image files==&lt;br /&gt;
Producing large amounts of snapshots and creating animations can be very time-consuming. Here are a few tips for speeding up with the commandline:&lt;br /&gt;
*Get the [[2gif]] utility and add the folder to the ''PATH'' environment variable.&lt;br /&gt;
*Get the ''winzip'' utility and add the folder to the ''PATH'' environment variable.&lt;br /&gt;
The idea is basically inside your figures folder, to create a subfolder with the number of the run, and save inside the images and animations. The goal is to keep the same structure for each run, thus  allowing more efficiency.&lt;br /&gt;
&lt;br /&gt;
Open a command line window and go to the figures folder:&lt;br /&gt;
 $ xcopy /T /E Run_1 Run_New&lt;br /&gt;
 $ cd Run_New&lt;br /&gt;
 Now create a snapshot of the results, and save the images and the animation&lt;br /&gt;
 $ 2gif.exe s=*.bmp -namegen=anim.gif -unite -Delay1000&lt;br /&gt;
 $ winzip32 -min -m images.zip *.bmp&lt;br /&gt;
 $ move *.* This_snap&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=2eps&amp;diff=6</id>
		<title>2eps</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=2eps&amp;diff=6"/>
				<updated>2007-01-12T11:09:06Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[convert]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Jpeg2ps&amp;diff=368</id>
		<title>Jpeg2ps</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Jpeg2ps&amp;diff=368"/>
				<updated>2007-01-12T10:21:19Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Useful windows utility to turn ''jpeg'' files into ''eps'' files.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
===Convert a single file===&lt;br /&gt;
 &amp;gt;jpeg2ps ''file.jpg'' &amp;gt; ''file.eps''&lt;br /&gt;
===Converts all files in directory===&lt;br /&gt;
 &amp;gt;FOR %A IN (*.jpg) DO jpeg2ps %A &amp;gt; %A.eps&lt;br /&gt;
==External References==&lt;br /&gt;
*[http://www.pdflib.com/products/more/jpeg2ps.html Download here.]&lt;br /&gt;
*[[2jpeg]]&lt;br /&gt;
*[[2gif]]&lt;br /&gt;
*[[Convert]]&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Pydap&amp;diff=789</id>
		<title>Pydap</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Pydap&amp;diff=789"/>
				<updated>2006-11-29T21:14:28Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: /* Requisites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Excellent alternative to opendap, written in python! See all the docs [http://pydap.org here].&lt;br /&gt;
&lt;br /&gt;
* Start service&lt;br /&gt;
 &amp;gt;sudo paster serve &amp;lt;server_root/&amp;gt;server.ini --daemon&lt;br /&gt;
* Check status&lt;br /&gt;
 &amp;gt;sudo paster serve &amp;lt;server_root/&amp;gt;server.ini status&lt;br /&gt;
* Reload service&lt;br /&gt;
 &amp;gt;sudo paster serve &amp;lt;server_root/&amp;gt;server.ini restart --daemon&lt;br /&gt;
* Stop service&lt;br /&gt;
 &amp;gt;sudo paster serve &amp;lt;server_root/&amp;gt;server.ini stop&lt;br /&gt;
&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
*Numpy. Download and extract [Numpy] then type:&lt;br /&gt;
 &amp;gt; sudo python setup.py&lt;br /&gt;
and follow the interface.&lt;br /&gt;
*Numarray. Download and extract [Numarray] then type:&lt;br /&gt;
 &amp;gt; sudo python setup.py --help-commands&lt;br /&gt;
*HDF5. Make sure you install [[*Nix platforms|correctly]] the hdf5 libs.&lt;br /&gt;
*PyTables. Download and extract [PyTables] then type:&lt;br /&gt;
 &amp;gt; sudo python setup.py --hdf5=&amp;lt;HDF5HOME&amp;gt; --help-commands&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Kill_a_process&amp;diff=376</id>
		<title>Kill a process</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Kill_a_process&amp;diff=376"/>
				<updated>2006-11-29T19:10:52Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Example==&lt;br /&gt;
The example below kills a process whose PID is 22060&lt;br /&gt;
 &amp;gt;kill -s kill 22060&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Big-endian_little-endian&amp;diff=62</id>
		<title>Big-endian little-endian</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Big-endian_little-endian&amp;diff=62"/>
				<updated>2006-11-25T17:07:30Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Intel Fortran Compiler can write unformatted sequential files in big-endian format and also can read files produced in big-endian format by using the little-endian-to-big-endian conversion feature.&lt;br /&gt;
&lt;br /&gt;
Both on IA-32-based processors and on Itanium®-based processors, Intel Fortran handles internal data in little-endian format. The little-endian-to-big-endian conversion feature is intended for Fortran unformatted input/output operations in unformatted sequential files. The feature enables: &lt;br /&gt;
&lt;br /&gt;
In order to use the little-endian-to-big-endian conversion feature, specify the numbers of the units to be used for conversion purposes by setting the F_UFMTENDIAN environment variable. Then, the READ/WRITE statements that use these unit numbers, will perform relevant conversions. Other READ/WRITE statements will work in the usual way.&lt;br /&gt;
&lt;br /&gt;
In the general case, the variable consists of two parts divided by a semicolon. No spaces are allowed inside the F_UFMTENDIAN value. The variable has the following syntax:&lt;br /&gt;
&lt;br /&gt;
 F_UFMTENDIAN=MODE | [MODE;] EXCEPTION&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
 MODE = big | little&lt;br /&gt;
 EXCEPTION = big:ULIST | little:ULIST | ULIST&lt;br /&gt;
 ULIST = U | ULIST,U&lt;br /&gt;
 U = decimal | decimal -decimal&lt;br /&gt;
&lt;br /&gt;
      MODE defines current format of data, represented in the files; it can be omitted.&lt;br /&gt;
      The keyword little means that the data have little endian format and will not be converted. This keyword is a default.&lt;br /&gt;
      The keyword big means that the data have big endian format and will be converted. This keyword may be omitted together with the colon.&lt;br /&gt;
&lt;br /&gt;
      EXCEPTION is intended to define the list of exclusions for MODE; it can be omitted. EXCEPTION keyword (little or big) defines data format in the files that are connected to the units from the EXCEPTION list. This value overrides MODE value for the units listed.&lt;br /&gt;
&lt;br /&gt;
      Each list member U is a simple unit number or a number of units. The number of list members is limited to 64.&lt;br /&gt;
      decimal is a non-negative decimal number less than 232.&lt;br /&gt;
&lt;br /&gt;
Converted data should have basic data types, or arrays of basic data types. Derived data types are disabled.&lt;br /&gt;
&lt;br /&gt;
Command lines for variable setting with different shells:&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Xcopy&amp;diff=963</id>
		<title>Xcopy</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Xcopy&amp;diff=963"/>
				<updated>2006-11-22T10:59:13Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Copies files and directory trees for windows.&lt;br /&gt;
&lt;br /&gt;
 XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]&lt;br /&gt;
                            [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]&lt;br /&gt;
                            [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]&lt;br /&gt;
                            [/EXCLUDE:file1[+file2][+file3]...]&lt;br /&gt;
 &lt;br /&gt;
  source       Specifies the file(s) to copy.&lt;br /&gt;
  destination  Specifies the location and/or name of new files.&lt;br /&gt;
  /A           Copies only files with the archive attribute set,&lt;br /&gt;
               doesn't change the attribute.&lt;br /&gt;
  /M           Copies only files with the archive attribute set,&lt;br /&gt;
               turns off the archive attribute.&lt;br /&gt;
  /D:m-d-y     Copies files changed on or after the specified date.&lt;br /&gt;
               If no date is given, copies only those files whose&lt;br /&gt;
               source time is newer than the destination time.&lt;br /&gt;
  /EXCLUDE:file1[+file2][+file3]...&lt;br /&gt;
               Specifies a list of files containing strings.  Each string&lt;br /&gt;
               should be in a separate line in the files.  When any of the&lt;br /&gt;
               strings match any part of the absolute path of the file to be&lt;br /&gt;
               copied, that file will be excluded from being copied.  For&lt;br /&gt;
               example, specifying a string like \obj\ or .obj will exclude&lt;br /&gt;
               all files underneath the directory obj or all files with the&lt;br /&gt;
               .obj extension respectively.&lt;br /&gt;
  /P           Prompts you before creating each destination file.&lt;br /&gt;
  /S           Copies directories and subdirectories except empty ones.&lt;br /&gt;
  /E           Copies directories and subdirectories, including empty ones.&lt;br /&gt;
               Same as /S /E. May be used to modify /T.&lt;br /&gt;
  /V           Verifies each new file.&lt;br /&gt;
  /W           Prompts you to press a key before copying.&lt;br /&gt;
  /C           Continues copying even if errors occur.&lt;br /&gt;
  /I           If destination does not exist and copying more than one file,&lt;br /&gt;
               assumes that destination must be a directory.&lt;br /&gt;
  /Q           Does not display file names while copying.&lt;br /&gt;
  /F           Displays full source and destination file names while copying.&lt;br /&gt;
  /L           Displays files that would be copied.&lt;br /&gt;
  /G           Allows the copying of encrypted files to destination that does&lt;br /&gt;
               not support encryption.&lt;br /&gt;
  /H           Copies hidden and system files also.&lt;br /&gt;
  /R           Overwrites read-only files.&lt;br /&gt;
  /T           Creates directory structure, but does not copy files. Does not&lt;br /&gt;
               include empty directories or subdirectories. /T /E includes&lt;br /&gt;
               empty directories and subdirectories.&lt;br /&gt;
  /U           Copies only files that already exist in destination.&lt;br /&gt;
  /K           Copies attributes. Normal Xcopy will reset read-only attributes.&lt;br /&gt;
  /N           Copies using the generated short names.&lt;br /&gt;
  /O           Copies file ownership and ACL information.&lt;br /&gt;
  /X           Copies file audit settings (implies /O).&lt;br /&gt;
  /Y           Suppresses prompting to confirm you want to overwrite an&lt;br /&gt;
               existing destination file.&lt;br /&gt;
  /-Y          Causes prompting to confirm you want to overwrite an&lt;br /&gt;
               existing destination file.&lt;br /&gt;
  /Z           Copies networked files in restartable mode.&lt;br /&gt;
 &lt;br /&gt;
 The switch /Y may be preset in the COPYCMD environment variable.&lt;br /&gt;
 This may be overridden with /-Y on the command line.&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Perl_utilities&amp;diff=759</id>
		<title>Perl utilities</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Perl_utilities&amp;diff=759"/>
				<updated>2006-11-21T22:14:51Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article lists a few perl useful utilities. The full and updated list may be found [http://www.mohid.com/hydrogroup/codecomments.xml here].&lt;br /&gt;
&lt;br /&gt;
==Copying, moving, renaming, matching files==&lt;br /&gt;
*[http://www.mohid.com/hydrogroup/codecomments/_perl_filem.pl.xml _perl_filem.pl]&lt;br /&gt;
*[http://www.mohid.com/hydrogroup/codecomments/_perl_fileop.pl.xml _perl_fileop.pl]&lt;br /&gt;
&lt;br /&gt;
==Setting environment variables==&lt;br /&gt;
*[http://www.mohid.com/hydrogroup/codecomments/SetEnvVar.pl.xml SetEnvVar.pl]&lt;br /&gt;
&lt;br /&gt;
==Substitution in files==&lt;br /&gt;
*[http://www.mohid.com/hydrogroup/codecomments/SubstituteInFiles.pl.xml SubstituteInFiles.pl]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Data.mohid.com&amp;diff=188</id>
		<title>Data.mohid.com</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Data.mohid.com&amp;diff=188"/>
				<updated>2006-11-18T18:42:08Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: /* 20061118 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation log==&lt;br /&gt;
===20061118===&lt;br /&gt;
Automated LAS update of the Mercator-IST models was implemented:&lt;br /&gt;
*On the host machine:&lt;br /&gt;
**''mercator_genLas.pl YYYYMMDD'' model property will create the xml from root_model_property.xml templates, as well as it will update the las.xml file.&lt;br /&gt;
**''mercator_sync_daplas.pl'' will synchronize information between the datalist.xml maintained at http://data.mohid.com/data.xml and the Las regarding the mercator-IST pre-operational model, thus synchronizing the Opendap and the LAS registry.&lt;br /&gt;
*On the web server machine:&lt;br /&gt;
**&amp;quot;las.php&amp;quot; basically updates the Opendap registry (datalist.xml) as well as synchronizes with the LAS registry, regarding the Mercator-IST models. It also updates the LAS database and reboots the tomcat server.&lt;br /&gt;
**&amp;quot;mercator_genlas.php&amp;quot; simply updates one Mercator-IST dataset into the LAS, performing the full LAS regeneration (consisting of updating the xml files, followed by the LAS database and a tomcat server reboot).&lt;br /&gt;
&lt;br /&gt;
===20061104===&lt;br /&gt;
Worked out the LAS:&lt;br /&gt;
*Copied the full las tree to ''/home/guillaume/public_html/las''&lt;br /&gt;
*Reconfigured the las&lt;br /&gt;
*Added the following lines to ''httpd.conf'':&lt;br /&gt;
 ScriptAlias  /las-bin/ /home/guillaume/public_html/las/server/&lt;br /&gt;
 Alias /las-output/ /home/guillaume/public_html/las/server/output/&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Directory &amp;quot;/home/guillaume/public_html/las/server&amp;quot;&amp;gt;&lt;br /&gt;
     AllowOverride None&lt;br /&gt;
     Options ExecCGI&lt;br /&gt;
     Order allow,deny&lt;br /&gt;
     Allow from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
*Un/commented the following lines in http.conf:&lt;br /&gt;
 &amp;lt;IfModule mod_userdir.c&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     #UserDir disable&lt;br /&gt;
     ...&lt;br /&gt;
     UserDir public_html&lt;br /&gt;
     ...&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
*Restarted ''httpd''&lt;br /&gt;
*performed the following permissions in ''/home'':&lt;br /&gt;
 &amp;gt; sudo chown -R guillaume:apache guillaume&lt;br /&gt;
 &amp;gt; sudo chmod -R 755 guillaume&lt;br /&gt;
*Restarted the las tomcat&lt;br /&gt;
*Performed a simple test from ''/home/guillaume/public_html/las'':&lt;br /&gt;
 &amp;gt; bin/lasget.pl  -x -10:10 -y -30:-20 -z 0 -f txt -o salt.txt http://data.mohid.com/las-bin/LASserver.pl levitus_climatology_cdf salt&lt;br /&gt;
&lt;br /&gt;
===20061103===&lt;br /&gt;
Installed:&lt;br /&gt;
*Added libraries netcdf libraries, manually.&lt;br /&gt;
*LAS --&amp;gt; not working well&lt;br /&gt;
*Added Samba, manually. Accessible via windows explorer through \\data.mohid.com. Ask the administrator for a login.&lt;br /&gt;
*Created a website: http://data.mohid.com. It contains an updated list of all the files served by the opendap server.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, hidromod doesn't see the http://data.mohid.com pages&lt;br /&gt;
&lt;br /&gt;
Corrected in:&lt;br /&gt;
*php.ini --&amp;gt; enabled errors. Now php error pages aren't blank anymore!&lt;br /&gt;
*Copied StartProfiler.php into /mediawiki as it is missing in the RPM package!&lt;br /&gt;
*http.d/mediawiki.conf --&amp;gt; turned alias /mediawiki into /wiki.&lt;br /&gt;
*mediawiki/LocalSettings.php --&amp;gt; changed /mediawiki into /wiki everywhere.&lt;br /&gt;
*mediawiki now works! Maths too!&lt;br /&gt;
&lt;br /&gt;
===20061102===&lt;br /&gt;
Obtained and copied by scp the following software list:&lt;br /&gt;
*[[LAS|las]]&lt;br /&gt;
**[[ferret]]&lt;br /&gt;
***compat-libstdc++-33&lt;br /&gt;
***xorg-X11-deprecated-libs&lt;br /&gt;
**[[mysql]]&lt;br /&gt;
**ant&lt;br /&gt;
**[[netcdf]]&lt;br /&gt;
**expat&lt;br /&gt;
**java platform&lt;br /&gt;
&lt;br /&gt;
Created a new ethernet device on ''administration-&amp;gt;network'' on ''eth0'' nicknamed ''intranet''. It sets up a static ip address at ''192.168.20.222''. Now it is possible to roam out and in from the dmz by deactivating and activating the respective ethernet devices. This is really important when adding/updating rpm packages. Remember to switch the plugin of the ethernet cable, accordingly!&lt;br /&gt;
&lt;br /&gt;
Installed the following software:&lt;br /&gt;
*[[ferret]]&lt;br /&gt;
**compat-libstdc++-33&lt;br /&gt;
**xorg-X11-deprecated-libs&lt;br /&gt;
Changed the following line in the ''ferret_paths'' script with next one:&lt;br /&gt;
 export PATH=&amp;quot;$PATH $FER_DIR/bin&amp;quot; &lt;br /&gt;
 export PATH=&amp;quot;$PATH:$FER_DIR/bin&amp;quot;&lt;br /&gt;
*nxserver --&amp;gt; working&lt;br /&gt;
*mysql &lt;br /&gt;
*tomcat5 --&amp;gt; not running well&lt;br /&gt;
*mediawiki --&amp;gt; not running well&lt;br /&gt;
**mediawiki-math&lt;br /&gt;
*dap-server-cgi&lt;br /&gt;
*netcdf&lt;br /&gt;
*hdf&lt;br /&gt;
*hdf5&lt;br /&gt;
&lt;br /&gt;
===20061031===&lt;br /&gt;
*acquired David Brito's old machine.&lt;br /&gt;
*Created a FC6 dvd.&lt;br /&gt;
*Changed temporarily diogo's dvd player to now rebaptized ''data'' machine.&lt;br /&gt;
*Installed FC6 on ''data''&lt;br /&gt;
*Configured network on ''data''. It's ip is now 192.168.21.40.&lt;br /&gt;
*ssh test worked from ''guillaume''.&lt;br /&gt;
*apache test worked from ''guillaume'' after starting the httpd service.&lt;br /&gt;
&lt;br /&gt;
I need to &lt;br /&gt;
*make it automatically start the http; &lt;br /&gt;
*make an init 3 level boot only; &lt;br /&gt;
*install and configure samba properly;&lt;br /&gt;
*install and configure VMware properly;&lt;br /&gt;
*install the freeNX and nx client;&lt;br /&gt;
*install webmin;&lt;br /&gt;
*install netcdf;&lt;br /&gt;
*install opendap;&lt;br /&gt;
*install LAS.&lt;br /&gt;
&lt;br /&gt;
==External references==&lt;br /&gt;
*http://data.mohid.com&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=CopyMohidProject&amp;diff=152</id>
		<title>CopyMohidProject</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=CopyMohidProject&amp;diff=152"/>
				<updated>2006-11-13T16:08:50Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: /* Copy (win) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Eventually it is useful to copy a full aplication of Mohid&lt;br /&gt;
but without the output (the hdf5 files).&lt;br /&gt;
&lt;br /&gt;
== Copy (win) ==&lt;br /&gt;
&lt;br /&gt;
To do so is fairly easy from the command line and with the addition of an exclude file types file. Here's what you should type:&lt;br /&gt;
&lt;br /&gt;
 xcopy /C /E .\CurrAplication\*.* .\NewAplication /EXCLUDE:exclude.txt&lt;br /&gt;
&lt;br /&gt;
That command will create a duplicata of folder ''CurrAplication'' but without the files whose extensions are cited in ''exclude.txt''.&lt;br /&gt;
The exclude.txt file should contain the following text:&lt;br /&gt;
&lt;br /&gt;
 .hdf5&lt;br /&gt;
 .srh&lt;br /&gt;
 .bmp&lt;br /&gt;
 .fin&lt;br /&gt;
 .srw&lt;br /&gt;
 .ppt&lt;br /&gt;
 .jpg&lt;br /&gt;
 .gif&lt;br /&gt;
 .pdf&lt;br /&gt;
 .ps&lt;br /&gt;
 .eps&lt;br /&gt;
 .doc&lt;br /&gt;
 .log&lt;br /&gt;
 .zip&lt;br /&gt;
&lt;br /&gt;
== Configure (win) ==&lt;br /&gt;
Now you need to configure your project so it can run from Mohid GUI. To do so you need to edit the ''.moh'' file and replace all the references to ''CurrAplication'' with ''NewAplication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Tools]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Mohid_mesh&amp;diff=659</id>
		<title>Mohid mesh</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Mohid_mesh&amp;diff=659"/>
				<updated>2006-11-10T12:09:50Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Module Geometry]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=X_server&amp;diff=961</id>
		<title>X server</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=X_server&amp;diff=961"/>
				<updated>2006-11-08T21:11:54Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The X server allows different clients to display their X applications on it. X applications means graphical windowed applications in unix/linux. Thus, the application process is resident on the client side, but its display and I/O interaction is resident on the server side.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
In this example we will pop up a windowed clock on a X server based system whose ip address is''server_ip'':&lt;br /&gt;
===X server side===&lt;br /&gt;
Usually you sit behind the X server side:&lt;br /&gt;
 &amp;gt; startx&lt;br /&gt;
 &amp;gt; printenv | grep DISPLAY&lt;br /&gt;
 &amp;gt; xhosts + &amp;lt;client_ip&amp;gt;&lt;br /&gt;
Simply note down the value of the environment variable DISPLAY for future reference.&lt;br /&gt;
===X client side===&lt;br /&gt;
Connect to the client side using ssh&lt;br /&gt;
 &amp;gt; ssh &amp;lt;client_ip&amp;gt;&lt;br /&gt;
Then perform the following commands using the previously annotated value for the DISPLAY environment variable&lt;br /&gt;
 &amp;gt; export DISPLAY= server_ip:port.number&lt;br /&gt;
 &amp;gt; xclock&lt;br /&gt;
or&lt;br /&gt;
 &amp;gt; xclock -display server_ip:port.number&lt;br /&gt;
&lt;br /&gt;
And lo, a clock should have popped up in your X server terminal! Neat, uh?&lt;br /&gt;
&lt;br /&gt;
==External References==&lt;br /&gt;
*[http://www.hungry.com/~jamie/xexport.html Background]&lt;br /&gt;
[[Category:linux]]&lt;br /&gt;
[[Category:technology]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Freenx&amp;diff=260</id>
		<title>Freenx</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Freenx&amp;diff=260"/>
				<updated>2006-11-02T20:48:16Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:remotedesktop.JPG|right|450px|thumb|Accessing Einstein via remote desktop from a Nomachine remote session to the Dual_64 workstation. And all this from a windows computer within MARETEC domain.]]&lt;br /&gt;
[[Freenx]] allows remote desktop services. It is ultra-fast. The comercial version is [[Nx nomachine]].&lt;br /&gt;
&lt;br /&gt;
==Installation on linux==&lt;br /&gt;
Basically follow [http://fedoranews.org/contributors/rick_stout/freenx/ this] tutorial.&lt;br /&gt;
 &amp;gt; yum install freenx&lt;br /&gt;
Then copy the client key from ''/etc/nxserver'' to the client computer (with scp). Then while configuring the nx client, remember to import the client key.&lt;br /&gt;
&lt;br /&gt;
==Installation on Windows==&lt;br /&gt;
Run this windows installer:&lt;br /&gt;
#Install the [http://64.34.161.181/download/2.1.0/Windows/nxclient-2.1.0-6.exe nx windows client],&lt;br /&gt;
&lt;br /&gt;
==Accessing Dual_64==&lt;br /&gt;
From the windows start panel:&lt;br /&gt;
 Start-&amp;gt;NX client for windows-&amp;gt;NX client for windows&lt;br /&gt;
Type Dual_64 on session and type your login for the Dual_64 workstation. If you don't have a login then you need to create one for you. Call the Dual_64 workstation administrator for that.&lt;br /&gt;
[[Image:nx_login.JPG|center|Thumb|NX windows client login session splash screen.]]&lt;br /&gt;
Then click on ''Configure'' and choose the GNOME desktop. Save the configuration, login and you're on!&lt;br /&gt;
[[Image:nx_configure.JPG|center|Thumb|NX windows client login configure form.]]&lt;br /&gt;
&lt;br /&gt;
'''NOTE: IF ERROR OCCURS, THEN REPLACE HOSTNAME ''DUAL_64'' WITH ''192.168.23.151.'''''&lt;br /&gt;
&lt;br /&gt;
'''NOTE: The free version of the nx server only allows 2 users and 2 concurrent connections! Currently the 2 users are ''fedora'' and ''guillaume''.'''&lt;br /&gt;
&lt;br /&gt;
==Accessing data.mohid.com==&lt;br /&gt;
From the windows start panel:&lt;br /&gt;
 Start-&amp;gt;NX client for windows-&amp;gt;NX client for windows&lt;br /&gt;
Type data.mohid.com on session and type your login for the data.mohid.com workstation. If you don't have a login then you need to create one for you. Call the data.mohid.com workstation administrator for that.&lt;br /&gt;
Then click on ''Configure'', import the key and choose the GNOME desktop. Finally on advanced, select the SSL secure connection. Save the configuration, login and you're on!&lt;br /&gt;
&lt;br /&gt;
'''NOTE: IF ERROR OCCURS, THEN REPLACE HOSTNAME ''data.mohid.com'' WITH ''192.168.20.222.'''''&lt;br /&gt;
&lt;br /&gt;
==External references==&lt;br /&gt;
*http://www.nomachine.com/&lt;br /&gt;
*http://fedoranews.org/contributors/rick_stout/freenx/&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Nx_nomachine&amp;diff=715</id>
		<title>Nx nomachine</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Nx_nomachine&amp;diff=715"/>
				<updated>2006-11-02T19:36:05Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:remotedesktop.JPG|right|450px|thumb|Accessing Einstein via remote desktop from a Nomachine remote session to the Dual_64 workstation. And all this from a windows computer within MARETEC domain.]]&lt;br /&gt;
Nx allows remote desktop services. It is ultra-fast. The opensource version is [[freenx]].&lt;br /&gt;
&lt;br /&gt;
==Installation on linux==&lt;br /&gt;
Install these rpm packages following the sequence:&lt;br /&gt;
#Install the [http://64.34.161.181/download/2.1.0/Linux/nxclient-2.1.0-6.i386.rpm nx linux client],&lt;br /&gt;
#Install the [http://64.34.161.181/download/2.1.0/Linux/nxnode-2.1.0-7.i386.rpm nx node client],&lt;br /&gt;
#Install the [http://64.34.161.181/download/2.1.0/Linux/FE/nxserver-2.1.0-9.i386.rpm nx linux server].&lt;br /&gt;
&lt;br /&gt;
==Installation on Windows==&lt;br /&gt;
Run this windows installer:&lt;br /&gt;
#Install the [http://64.34.161.181/download/2.1.0/Windows/nxclient-2.1.0-6.exe nx windows client],&lt;br /&gt;
&lt;br /&gt;
==Accessing Dual_64==&lt;br /&gt;
From the windows start panel:&lt;br /&gt;
 Start-&amp;gt;NX client for windows-&amp;gt;NX client for windows&lt;br /&gt;
Type Dual_64 on session and type your login for the Dual_64 workstation. If you don't have a login then you need to create one for you. Call the Dual_64 workstation administrator for that.&lt;br /&gt;
[[Image:nx_login.JPG|center|Thumb|NX windows client login session splash screen.]]&lt;br /&gt;
Then click on ''Configure'' and choose the GNOME desktop. Save the configuration, login and you're on!&lt;br /&gt;
[[Image:nx_configure.JPG|center|Thumb|NX windows client login configure form.]]&lt;br /&gt;
&lt;br /&gt;
'''NOTE: IF ERROR OCCURS, THEN REPLACE HOSTNAME ''DUAL_64'' WITH ''192.168.23.151.'''''&lt;br /&gt;
&lt;br /&gt;
'''NOTE: The free version of the nx server only allows 2 users and 2 concurrent connections! Currently the 2 users are ''fedora'' and ''guillaume''.'''&lt;br /&gt;
&lt;br /&gt;
==External references==&lt;br /&gt;
*http://www.nomachine.com/&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Mercator_Automatic_Data_Acquisition&amp;diff=488</id>
		<title>Mercator Automatic Data Acquisition</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Mercator_Automatic_Data_Acquisition&amp;diff=488"/>
				<updated>2006-10-27T14:28:05Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article describes the automatic data acquisition system built to get large-scale circulation model gridded data from Mercator-Océan ftp server. [[Automatic Data Interpolation|Another article]] is written to describe the interpolation automated task for a given model.&lt;br /&gt;
&lt;br /&gt;
==Objective==&lt;br /&gt;
Every week Mercator-Océan releases a set of 63 netcdf gzipped files to their ftp site in a timestamped folder. The goal is to get these files, store them in the local network and perform data manipulation on them.&lt;br /&gt;
&lt;br /&gt;
The catch is that sometimes some files are missing at the ftp site, sometimes the connection breaks down for some reason. Hence the data acquisition system must be &amp;quot;intelligent&amp;quot; to &amp;quot;know&amp;quot; when he has fetched all the files and when he must try again a new ftp connection to fetch the missing files.&lt;br /&gt;
&lt;br /&gt;
==Technological base==&lt;br /&gt;
Perl and shell scripting, using ftp and smtp perl modules. Mohid tools to convert from netcdf to HDF5, and to interpolate. Scheduler or crontab to agend the task weekly.&lt;br /&gt;
&lt;br /&gt;
==Control flow diagram==&lt;br /&gt;
[[Image:perl_proj.jpg|center|450px|thumb|Control Flow Diagram: Yellow boxes are perl programs or shell commands, purple boxes are input/output files, blue triangles are flow control elements, dark edges show the program flow, white edges show the input/output from/to files and white losangle edges show appending output to files.]]&lt;br /&gt;
Aside is the control flow diagram and below is&lt;br /&gt;
the full batch file describing all the operations:&lt;br /&gt;
 REM CalcDate.bat&lt;br /&gt;
 :CALC&lt;br /&gt;
 perl CalculateCurrentDate.pl &amp;gt; _date.tmp&lt;br /&gt;
 IF %ERRORLEVEL% NEQ 0 GOTO CALC&lt;br /&gt;
 IF ERRORLEVEL 0 GOTO CREATE&lt;br /&gt;
 &lt;br /&gt;
 REM ftp_get.bat&lt;br /&gt;
 :CREATE&lt;br /&gt;
 more &amp;lt; _date.tmp | perl Create_ftp_address.pl &amp;gt; _ftp_address.tmp&lt;br /&gt;
 IF %ERRORLEVEL% NEQ 0 GOTO CREATE&lt;br /&gt;
 IF ERRORLEVEL 0 GOTO GET&lt;br /&gt;
 &lt;br /&gt;
 :GET&lt;br /&gt;
 more &amp;lt; _ftp_address.tmp | perl ftp_get.pl&lt;br /&gt;
 IF %ERRORLEVEL% NEQ 0 GOTO CREATE&lt;br /&gt;
 IF ERRORLEVEL 0 GOTO CHECKFILES&lt;br /&gt;
 &lt;br /&gt;
 :CHECKFILES&lt;br /&gt;
 more &amp;lt; _ftp_address.tmp &amp;gt; _Extract.tmp&lt;br /&gt;
 echo (ist_meteog-mercatorPsy2v2r1v_R\d{8})&amp;gt;&amp;gt; _Extract.tmp&lt;br /&gt;
 &lt;br /&gt;
 more &amp;lt; _Extract.tmp | perl ExtractPattern.pl  &amp;gt; _Count.tmp&lt;br /&gt;
 echo .nc.gz&amp;gt;&amp;gt; _Count.tmp&lt;br /&gt;
 &lt;br /&gt;
 more &amp;lt; _Count.tmp | perl CountFiles.pl | Checkfiles.pl&lt;br /&gt;
 IF %ERRORLEVEL% NEQ 0 GOTO CREATE&lt;br /&gt;
 IF ERRORLEVEL 0 GOTO CONVERT&lt;br /&gt;
 &lt;br /&gt;
 REM convert.bat&lt;br /&gt;
 :CONVERT&lt;br /&gt;
 more &amp;lt; _date.tmp | perl Convert.pl&lt;br /&gt;
 IF %ERRORLEVEL% NEQ 0 GOTO CONVERT&lt;br /&gt;
 IF ERRORLEVEL 0 GOTO CHECK&lt;br /&gt;
 &lt;br /&gt;
 REM interpol.bat&lt;br /&gt;
 REM Still misses ...&lt;br /&gt;
 &lt;br /&gt;
 REM check.bat&lt;br /&gt;
 :CHECK&lt;br /&gt;
 more &amp;lt; _date.tmp | perl check.pl&lt;br /&gt;
 IF %ERRORLEVEL% NEQ 0 GOTO BAD&lt;br /&gt;
 IF ERRORLEVEL 0 GOTO GOOD&lt;br /&gt;
 &lt;br /&gt;
 :BAD&lt;br /&gt;
 more mail_Bad.txt | perl smtp.pl&lt;br /&gt;
 GOTO END&lt;br /&gt;
 &lt;br /&gt;
 :GOOD&lt;br /&gt;
 more mail_Ok.txt | perl smtp.pl&lt;br /&gt;
 GOTO END &lt;br /&gt;
 &lt;br /&gt;
 :END&lt;br /&gt;
 del *.tmp&lt;br /&gt;
The command names are pretty self-explaining. The perl files are best described at their [http://www.mohid.com/hydrogroup/codecomments.xml repository] where the [[Code Comment Method|commented code]] is published. Some care was taken so most of the little perl programs could be re-used generically.&lt;br /&gt;
&lt;br /&gt;
==Comments==&lt;br /&gt;
===20061025===&lt;br /&gt;
This week two new problems rose:&lt;br /&gt;
#3 intruder files were in the ftp download folder. This makes a number of 66 downloaded instead of 63. Thus the automatic data acquisition system ends up looping endlessly until 63 arrives.&lt;br /&gt;
#The other problem is that when the ftp connection fails, the program re-hooks the ftp and continues to download the next non-existent file. The problem is that a zero bytes files exists and isn't downloaded again.&lt;br /&gt;
&lt;br /&gt;
The solutions are:&lt;br /&gt;
#Give in the ftp address file a regexp pattern for the ftp-get program to match, so it will download only the wanted files.&lt;br /&gt;
#Check, besides the existence of the file, its size also. If zero bytes then download.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
[[Category:Operational Modeling]]&lt;br /&gt;
[[Category:Mercator]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Automatic_Data_Interpolation&amp;diff=46</id>
		<title>Automatic Data Interpolation</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Automatic_Data_Interpolation&amp;diff=46"/>
				<updated>2006-10-26T16:53:54Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A model is setup to run every week. However he will OBCs and initial conditions for u, v, S, T and waterlevel. Thus, the external data needs to be interpolated for model's grid, as well as for the submodels.&lt;br /&gt;
&lt;br /&gt;
==Technology used==&lt;br /&gt;
Perl and shell scripting, using ftp and smtp perl modules. Mohid tools to convert from netcdf to HDF5, and to interpolate. Scheduler or crontab to agend the task weekly.&lt;br /&gt;
&lt;br /&gt;
==Control flow chart==&lt;br /&gt;
[[Image:perl_proj_interpol.jpg|right|450px|thumb|Control Flow Diagram: Yellow boxes are perl programs or shell commands, blue triangles are flow control elements, dark edges show the program flow.]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
[[Category:Operational Modeling]]&lt;br /&gt;
[[Category:Mercator]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Chmod&amp;diff=98</id>
		<title>Chmod</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Chmod&amp;diff=98"/>
				<updated>2006-10-26T09:23:01Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: /* chmod to a reference file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Chmod is used in linux systems to change permissions to users of a file.&lt;br /&gt;
Here's the help:&lt;br /&gt;
 [root@dual_64 home]# chmod --help&lt;br /&gt;
 Usage: chmod [OPTION]... MODE[,MODE]... FILE...&lt;br /&gt;
   or:  chmod [OPTION]... OCTAL-MODE FILE...&lt;br /&gt;
   or:  chmod [OPTION]... --reference=RFILE FILE...&lt;br /&gt;
 Change the mode of each FILE to MODE.&lt;br /&gt;
 &lt;br /&gt;
   -c, --changes           like verbose but report only when a change is made&lt;br /&gt;
       --no-preserve-root  do not treat `/' specially (the default)&lt;br /&gt;
       --preserve-root     fail to operate recursively on `/'&lt;br /&gt;
   -f, --silent, --quiet   suppress most error messages&lt;br /&gt;
   -v, --verbose           output a diagnostic for every file processed&lt;br /&gt;
       --reference=RFILE   use RFILE's mode instead of MODE values&lt;br /&gt;
   -R, --recursive         change files and directories recursively&lt;br /&gt;
       --help     display this help and exit&lt;br /&gt;
       --version  output version information and exit&lt;br /&gt;
 &lt;br /&gt;
 Each MODE is of the form `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.&lt;br /&gt;
&lt;br /&gt;
==chmod to a reference file==&lt;br /&gt;
This command will copy all permission attributes from the directory fedora to the directory newuser&lt;br /&gt;
 &amp;gt; chmod -R --reference=/home/fedora /home/newuser&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
[[CategorY:Linux]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=/etc&amp;diff=4</id>
		<title>/etc</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=/etc&amp;diff=4"/>
				<updated>2006-10-26T09:13:48Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: /* Editing the &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; environment variable at boot time */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt; is an important directory for linux administrators. Here we will try to give it a description. &lt;br /&gt;
&lt;br /&gt;
==The /etc tree structure == &lt;br /&gt;
'''The present text is citing [http://www.linuxjournal.com/article/8601 this article].'''&lt;br /&gt;
&lt;br /&gt;
;/etc/exports: this file contains the partition configuration to load NFS (network filesystem). It states how partitions are mounted and shared with other Linux/UNIX systems.&lt;br /&gt;
;/etc/ftpusers: this file contains the login names of users who are not allowed to log in by way of FTP. For security reasons, it is recommended to add the root user to this file.&lt;br /&gt;
;/etc/fstab: this file automatically mounts filesystems that are spread across multiple drives or separate partitions. This file is checked when the system boots and filesystems are mounted.&lt;br /&gt;
;/etc/hosts.[allow, deny]: you can control access to your network by using these files. Adds hosts that you want to grant access to your network to the hosts.allow file; add hosts that you want to deny access to hosts.deny.&lt;br /&gt;
;/etc/inetd.conf or /etc/xinetd.conf: the inetd file can be called the father of networking services. This file is responsible for starting services such as FTP, telnet and the like. Some Linux distributions come with xinetd.conf, which stands for extended Internet services daemon. This file provides all the functionalities and capabilities of inetd but extends them further.&lt;br /&gt;
;/etc/inittab: this file describes what takes place or which processes are started at bootup or at different runlevels. A runlevel is defined as the state in which the Linux box currently is in. Linux has seven runlevels, from 0-6.&lt;br /&gt;
;/etc/motd: motd stands for message of the day. This file is executed and its contents displayed after a successful login.&lt;br /&gt;
;/etc/passwd: this file contains user information. Whenever a new user is added, an entry is added to this file containing the user's login name, password and so on. This file is readable by everyone on the system. If the password field contains &amp;quot;x&amp;quot;, then encrypted passwords are stored in /etc/shadow, a file that is accessible only by the root user.&lt;br /&gt;
;/etc/profile: when a user logs in, a number of configuration files are executed, including /etc/profile. This file contains settings and global startup information for the bash shell.&lt;br /&gt;
;/etc/services: this file works in conjunction with /etc/inetd.conf or /etc/xinetd.conf files (see above). This file determines which port a service mentioned in inetd.conf is to use, for example, FTP/21, TELNET/23 and so on.&lt;br /&gt;
;/etc/securetty: this file lists TTYs from which root is allowed to log in. For security reasons it is recommended to keep only tty1 for root login.&lt;br /&gt;
;/etc/shells: this file contains the names of all the shells installed on the system, along with their full path names.&lt;br /&gt;
&lt;br /&gt;
==Editing the &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; environment variable at boot time==&lt;br /&gt;
The smoothest way to edit the &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; at boot time is simply to create a shell scripting file containing the changes and copy it to &amp;lt;code&amp;gt;/etc/profile.d&amp;lt;/code&amp;gt;. Then give it the read and execute permissions to the desired users. Here's a sample file that gives access to root to the &amp;lt;code&amp;gt;sbin&amp;lt;/code&amp;gt; commands:&lt;br /&gt;
 #! /bin/sh &lt;br /&gt;
 #/etc/profile.d/path.sh&lt;br /&gt;
 PATH=$PATH:/sbin&lt;br /&gt;
 PATH=$PATH:/usr/sbin&lt;br /&gt;
 PATH=$PATH:/usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Change its permissions with&lt;br /&gt;
 &amp;gt;[[chmod]] a-rwx path.sh&lt;br /&gt;
 &amp;gt;chmod u+rx path.sh&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Linux_rdesktop&amp;diff=414</id>
		<title>Linux rdesktop</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Linux_rdesktop&amp;diff=414"/>
				<updated>2006-10-22T18:01:01Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Linux rdesktop|rdesktop]] allows to connect remotely to windows systems:&lt;br /&gt;
 &amp;gt; rdesktop -u Administrator -d MARETEC Einstein&lt;br /&gt;
To access to fedora@dual_64 type.&lt;br /&gt;
 $ vncviewer dual_64.maretec.ist.utl.pt:0&lt;br /&gt;
&lt;br /&gt;
However [[nx nomachine]] provides a higher performance.&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Baseline_data&amp;diff=50</id>
		<title>Baseline data</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Baseline_data&amp;diff=50"/>
				<updated>2006-10-03T09:45:36Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Baseline data is raw experimental data coming from diferent sources. In water quality modeling data splits into two families:&lt;br /&gt;
*point based data.&lt;br /&gt;
*gridded data.&lt;br /&gt;
&lt;br /&gt;
The latter one usually comes from models, analyses, satellite data, whereas the former one is based on campaign samplings.&lt;br /&gt;
&lt;br /&gt;
At Maretec the main server data server is ''\\\kepler\DataCenter\DadosBase''.&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=MohidWater&amp;diff=613</id>
		<title>MohidWater</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=MohidWater&amp;diff=613"/>
				<updated>2006-09-11T17:55:45Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MohidWater is the software that runs the Mohid Water modeling tool. Designed in an [[Object Oriented]] fashion, it's composed of integrated modules. Here's MohidWater [[Modules|modular structure]].&lt;br /&gt;
&lt;br /&gt;
==Installing MohidWater==&lt;br /&gt;
#Download the Mohid Water Modelling System [http://www.mohid.com/MembersArea/index.asp here]. Just remember to register first.&lt;br /&gt;
#Install it by running the installation software (win XP).&lt;br /&gt;
&lt;br /&gt;
===Linux platforms===&lt;br /&gt;
If you're using Linux, you can send an e-mail to '''general@mohid.com''' asking for source files package.&lt;br /&gt;
Refer to [[%2ANIX_platforms]] on how to build it and install it.&lt;br /&gt;
&lt;br /&gt;
==How to setup a simulation==&lt;br /&gt;
To setup a simulation one should follow the right [[Model setup methodology|methodology]]:&lt;br /&gt;
*[[Model setup methodology]]&lt;br /&gt;
You will probably need to use the following tools:&lt;br /&gt;
*[[Mohid GIS]], to create bathymetries, tidal gauges and other horizontal fields.&lt;br /&gt;
*[[Mohid GUI]], to graphically create and configure simulations and runs.&lt;br /&gt;
Also you will need to configure an extensive list of configuration files:&lt;br /&gt;
*[[/Simulation]]&lt;br /&gt;
&lt;br /&gt;
==External References==&lt;br /&gt;
*[http://www.mohid.com Mohid HomeSite]&lt;br /&gt;
*[http://www.mohid.com/forum Mohid Forum]&lt;br /&gt;
*[http://www.mohid.com/MembersArea/index.asp Mohid Documentation]&lt;br /&gt;
*[http://www.mohid.com/hydrogroup Modeling Discussion group]&lt;br /&gt;
*[http://intranet.mohid.com/management Intranet resources]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Timestamp_ISO_conventions&amp;diff=907</id>
		<title>Timestamp ISO conventions</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Timestamp_ISO_conventions&amp;diff=907"/>
				<updated>2006-08-22T15:16:26Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: /* Recommended Timestamp Convention */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Timestamp convention could be ''13th August 2006'' or ''13/08/2006'', or yet ''08/13/2006'' followed by the hours: ''13:30.5'' or ''13:30:30'' or ''13h03m30s'' etc...&lt;br /&gt;
&lt;br /&gt;
==Recommended Timestamp Convention==&lt;br /&gt;
For example if one would choose the ''13-08-2006'' convention then here's a date set's chronological sorting:&lt;br /&gt;
*13-08-2006&lt;br /&gt;
*11-09-2006&lt;br /&gt;
*12-10-2006&lt;br /&gt;
And here's the same set's alphabetical sorting (this is the default sorting when prompting for a directory listing):&lt;br /&gt;
*11-09-2006&lt;br /&gt;
*12-10-2006&lt;br /&gt;
*13-08-2006&lt;br /&gt;
The alphabetical and chronological sorting don't match! This is a nuisance, especially when dealing with timestamped files (ex: ''11-09-2006_myfile.dat''). Thus, the best suited Timestamp Convention in computerized systems is one that matches alphabetical sorting with chronological sorting. The simplest one is the ''20060813'' convention. Here's the same set's alphabetical sorting:&lt;br /&gt;
*20060811&lt;br /&gt;
*20060812&lt;br /&gt;
*20060813&lt;br /&gt;
and here's the chronological sorting:&lt;br /&gt;
*20060811&lt;br /&gt;
*20060812&lt;br /&gt;
*20060813&lt;br /&gt;
They're the same! Thus, throughout this wiki, editors are encouraged to use the ''20060813'' timestamp convention.&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Citations&amp;diff=104</id>
		<title>Citations</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Citations&amp;diff=104"/>
				<updated>2006-08-03T11:48:17Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki code&lt;br /&gt;
outputs the folowing:&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Mohid_Water_support_tools&amp;diff=657</id>
		<title>Mohid Water support tools</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Mohid_Water_support_tools&amp;diff=657"/>
				<updated>2006-07-04T15:44:49Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Mohid Support Tools]]&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=MERCATOR&amp;diff=424</id>
		<title>MERCATOR</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=MERCATOR&amp;diff=424"/>
				<updated>2006-06-09T16:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are receiving every week data from the ftp site:&lt;br /&gt;
&lt;br /&gt;
ftp://ftp.mercator-ocean.fr/pub/users/ist_meteog/last&lt;br /&gt;
&lt;br /&gt;
Instructions&lt;br /&gt;
&lt;br /&gt;
# Get the near weekly 600MB of compressed netcdf data into the folder ''\\guillaume\data\mercator\ist_meteog-mercatorPsy2v2r1v_RYYYYMMDD'' where ''YYYYMMDD'' is the date of the data release.&lt;br /&gt;
# Unzip one or two datasets and open them with [[OpenDAP|NcBrowse]] to see if they're not corrupted.&lt;br /&gt;
# Reply to the following e-mail ''service-operationnel-ist-mercator@mercator-ocean.fr'' with the following subject ''produits Mercator-Océan pour IST : XX'' where ''XX=nominal'' or ''XX=dégradé'' wether the data is nominal or corrupted.&lt;br /&gt;
# Copy the weekly data to a CD, label it with ''ist-mercator-yyyymmdd'' where ''yyyymmdd'' stands for the date of the release of the data.&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Matg&amp;diff=476</id>
		<title>Matg</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Matg&amp;diff=476"/>
				<updated>2006-04-19T17:51:35Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=ROI&amp;diff=801</id>
		<title>ROI</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=ROI&amp;diff=801"/>
				<updated>2006-04-04T13:04:00Z</updated>
		
		<summary type="html">&lt;p&gt;192.168.20.111: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;is an [http://en.wikipedia.org/wiki/Acronym acronym] for '''R'''egion '''O'''f '''I'''neterest. Sometimes it stands for '''R'''egion '''O'''f '''I'''ntegration.&lt;/div&gt;</summary>
		<author><name>192.168.20.111</name></author>	</entry>

	</feed>