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

Last change on this file since 149 was 62, checked in by raasch, 18 years ago

Id string added to all html files

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