<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://ccrm.vims.edu/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dodet</id>
	<title>ccrmwiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://ccrm.vims.edu/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dodet"/>
	<link rel="alternate" type="text/html" href="http://ccrm.vims.edu/w/index.php/Special:Contributions/Dodet"/>
	<updated>2026-05-07T07:59:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://ccrm.vims.edu/w/index.php?title=For_developers&amp;diff=627</id>
		<title>For developers</title>
		<link rel="alternate" type="text/html" href="http://ccrm.vims.edu/w/index.php?title=For_developers&amp;diff=627"/>
		<updated>2013-03-05T16:22:12Z</updated>

		<summary type="html">&lt;p&gt;Dodet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All svn account holders need to familiarize themselves with the following rules.&lt;br /&gt;
&lt;br /&gt;
==Sharing I/O channels in SELFE==&lt;br /&gt;
&lt;br /&gt;
You need to exercise caution when dealing with parallel I/O especially for writing. For writing outputs, you’d generally let only 1 process do the job, e.g.&lt;br /&gt;
&lt;br /&gt;
if(myrank==0) write(10,*)…..&lt;br /&gt;
&lt;br /&gt;
If you do need to have all processes write e.g. debug messages, you’d then use channel 12 (see below).&lt;br /&gt;
&lt;br /&gt;
Here are all I/O channel numbers used in different sub-models of SELFE (bold numbers mean they have been used by other sub-models and you’d avoid using them):&lt;br /&gt;
&lt;br /&gt;
*	Hydro/: Channels between 8 and 200 are used by various codes for I/O. In particular:&lt;br /&gt;
**	12: this channel is initialized by different processes to point to files outputs/nonfatal_xxxx, where “xxxx” are the process IDs. Therefore it’s very useful for debugging purpose; you can use it ''anywhere''&lt;br /&gt;
**	'''101 to 100+noutputs''' (inclusive of both): reserved for global outputs (including from tracers from sediment, EcoSim, ICM, as well as WWM); &lt;br /&gt;
**	'''201-250''': non-standard outputs (e.g. at sidecenters, prism centers);&lt;br /&gt;
**	'''251 to 259''': reserved for station outputs&lt;br /&gt;
**	'''301 to 300+ntracers''': reading channels for non-point source inputs for ICM&lt;br /&gt;
**	10, 31, 32: used for one-off I/O – can be used by other sub-models as long as you close them immediately after use in your part of the code to dump messages to these files&lt;br /&gt;
**	16: this channel points to mirror.out (on rank 0), the main message output for info about the run. You should use it with if(myrank==0)&lt;br /&gt;
*	WWM&lt;br /&gt;
**	'''1100 to 1200''': handles for inputs/outputs etc&lt;br /&gt;
*	EcoSim&lt;br /&gt;
**	'''600''': outputting some messages&lt;br /&gt;
*	Sediment&lt;br /&gt;
* Sed2D&lt;br /&gt;
**	'''26'''&lt;br /&gt;
&lt;br /&gt;
==Rules for contributing your code to be included in the SELFE package==&lt;br /&gt;
&lt;br /&gt;
Here are some rules for preparing your own code:&lt;br /&gt;
*	No spaces between “#” (pre-processor) and if/else/end;&lt;br /&gt;
*	Don’t use “!” inside write/print or any other non-comment portion;&lt;/div&gt;</summary>
		<author><name>Dodet</name></author>
		
	</entry>
</feed>