source: palm/trunk/DOC/app/chapter_3.5.html @ 17

Last change on this file since 17 was 5, checked in by raasch, 18 years ago

html-documentation added

File size: 7.0 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html><head>
3  <meta content="text/html; charset=windows-1252" http-equiv="CONTENT-TYPE">
4 
5  <title>PALM chapter 3.5</title><meta content="StarOffice 7  (Win32)" name="GENERATOR">
6  <meta content="Siegfried Raasch" name="AUTHOR">
7  <meta content="20040802;10431831" name="CREATED">
8  <meta content="20041112;14292662" name="CHANGED">
9  <meta content="parallel LES model" name="KEYWORDS">
10  <style>
11        <!--
12                @page { size: 21cm 29.7cm }
13        -->
14        </style></head>
15
16<body dir="ltr" lang="en-US">
17<h3 style="line-height: 100%;">3.5 Programming of user-defined code
18extensions<br>
19</h3>
20<p style="line-height: 100%;">Programming user-defined code
21extensions usually requires exact knowledge of the internal structure
22of PALM.
23Appropriate explanations in <a href="chapter_2.0.html">chapter
242.0</a> and the technical documentation are usually not sufficient
25and must be supplemented by the rigorous study of the source code of
26the model. Programming experiences with FORTRAN95 and if necessary
27experiences with the parallelization tool MPI are absolutely
28neccessary! </p>
29<p style="line-height: 100%;">Changes of the standard model code by the
30user
31should be avoided whenever possible and are reserved to the
32developer-group of PALM. The corrections, revisions and extensions of
33the
34model accomplished by this group are published in the
35<a href="../tec/index.html">technical/numerical
36documentation</a> and the accordingly updated source files are
37accessible to the users (see <a href="chapter_5.1.html">chapter
385.1</a>).</p>
39<p style="line-height: 100%;">However, the user frequently may feel the
40need to make extensions of the model code for his/her own simulations.
41For this purpose, a set
42of interfaces is available, which can be used to add user-defined code
43to the model. This
44chapter describes the programming of such user-defined code extensions.</p><p style="line-height: 100%;">The integration of user-defined code
45occurs in the form of subroutine calls, which are made at a set of
46places in the model code, by default. These subroutines have
47pre-defined names, which must not be changed by the user. Their basic
48versions are a component of the standard model
49code and they are all included in the source code file
50<tt><font style="font-size: 10pt;" size="2">user_interface.f90</font></tt><font style="font-size: 10pt;" size="2">.</font>
51<font color="#000000">The</font> basic versions accomplish nearly no
52actions, thus they are pure templates, which can be extended by the
53user as required. Actions which are already accomplished in these
54basic versions by default should not be changed. Here is an example
55of such a basic version: </p>
56<p style="line-height: 100%;">&nbsp; </p>
57<pre style="line-height: 100%;"><font color="#000000"><font style="font-size: 10pt;" size="2">SUBROUTINE user_init</font></font><br><br><font color="#000000"><font style="font-size: 10pt;" size="2">!------------------------------------------------------------------------------</font></font><br><font color="#000000"><font style="font-size: 10pt;" size="2">!</font></font><br><font color="#000000"><font style="font-size: 10pt;" size="2">!</font></font><br><font color="#000000"><font style="font-size: 10pt;" size="2">! Description:</font></font><br><font color="#000000"><font style="font-size: 10pt;" size="2">! -----------</font></font><br><font color="#000000"><font style="font-size: 10pt;" size="2">! Execution of user-defined initializing actions</font></font><br><font color="#000000"><font style="font-size: 10pt;" size="2">!------------------------------------------------------------------------------</font></font><br><font color="#000000"><font style="font-size: 10pt;" size="2">!</font></font><br><br><font color="#000000"> <font style="font-size: 10pt;" size="2">USE control_parameters</font></font><br><font color="#000000"> <font style="font-size: 10pt;" size="2">USE user</font></font><br><br><font color="#000000"> <font style="font-size: 10pt;" size="2">IMPLICIT NONE</font></font><br><br><font color="#000000"><font style="font-size: 10pt;" size="2">!</font></font><br><font color="#000000"><font style="font-size: 10pt;" size="2">!-- Here the user defined initializing actions follow:</font></font><br><br><br><font color="#000000"><font style="font-size: 10pt;" size="2">END SUBROUTINE user_init</font></font></pre>
58<p style="line-height: 100%;">The communication (handling of variables)
59with the model occurs via the
60global variables, which are defined within the individual FORTRAN -
61modules of PALM. The appropriate modules (they are all in the
62source code file <tt><font style="font-size: 10pt;" size="2">modules.f90</font></tt>)
63must be declared by means of <font size="2"><font face="Cumberland, monospace">USE</font></font> statements in the
64user-defined routines in order to be able to work with the variables
65contained in them. As in the example, this is already done with the
66module <tt><font style="font-size: 10pt;" size="2">control_parameters</font></tt>.
67This yields access to most of the existing parameters for steering the
68model. Furthermore, the module <tt><font style="font-size: 11pt;" size="2">user</font></tt> appears in the example
69above. This is a
70user-defined module (it is located at
71the beginning of the file <tt><font style="font-size: 10pt;" size="2">user_interface.f90</font></tt>)
72and can be used for communication between the user-defined routines. In
73this module own variables can be declared as desired. It
74is not used outside of the user code. </p>
75<p style="line-height: 100%;">A very typical request of users is the
76calculation and output of
77quantities which are not part of PALM's standard output. Several
78routines in the basic user interface are already designed and prepared
79for calculating and output of such quantities (see <a href="chapter_3.5.4.html">3.5.4</a>).</p><p style="line-height: 100%;">As already mentioned, the contents of
80the file <tt><font style="font-size: 10pt;" size="2">user_interface.f90</font></tt>
81can be used as a basis for extensions. However the file should not be
82manipulated directly (it is anyway write protected by default), but it
83should be
84copied to another file. User write permits for this new file must be
85declared by means of the unix command <tt><font style="font-size: 10pt;" size="2">chmod</font></tt>.
86</p>
87<p style="line-height: 100%;">The following sections describe, which
88interfaces for user-defined code exist in the
89model, how user parameters can be defined for steering this code
90and how it is translated and linked to the model. &nbsp;</p>
91<hr>
92<p style="line-height: 100%;"><br>
93<font color="#000080"><font color="#000080"><a href="chapter_3.4.html"><font color="#000080"><img name="Grafik1" src="left.gif" align="bottom" border="2" height="32" width="32"></font></a><a href="index.html"><font color="#000080"><img name="Grafik2" src="up.gif" align="bottom" border="2" height="32" width="32"></font></a><a href="chapter_3.5.1.html"><font color="#000080"><img name="Grafik3" src="right.gif" align="bottom" border="2" height="32" width="32"></font></a></font></font></p>
94<p style="line-height: 100%;"><i>Last change:&nbsp;</i> 15/04/05 (SR)</p>
95</body></html>
Note: See TracBrowser for help on using the repository browser.