[5] | 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 |
---|
| 18 | extensions<br> |
---|
| 19 | </h3> |
---|
| 20 | <p style="line-height: 100%;">Programming user-defined code |
---|
| 21 | extensions usually requires exact knowledge of the internal structure |
---|
| 22 | of PALM. |
---|
| 23 | Appropriate explanations in <a href="chapter_2.0.html">chapter |
---|
| 24 | 2.0</a> and the technical documentation are usually not sufficient |
---|
| 25 | and must be supplemented by the rigorous study of the source code of |
---|
| 26 | the model. Programming experiences with FORTRAN95 and if necessary |
---|
| 27 | experiences with the parallelization tool MPI are absolutely |
---|
| 28 | neccessary! </p> |
---|
| 29 | <p style="line-height: 100%;">Changes of the standard model code by the |
---|
| 30 | user |
---|
| 31 | should be avoided whenever possible and are reserved to the |
---|
| 32 | developer-group of PALM. The corrections, revisions and extensions of |
---|
| 33 | the |
---|
| 34 | model accomplished by this group are published in the |
---|
| 35 | <a href="../tec/index.html">technical/numerical |
---|
| 36 | documentation</a> and the accordingly updated source files are |
---|
| 37 | accessible to the users (see <a href="chapter_5.1.html">chapter |
---|
| 38 | 5.1</a>).</p> |
---|
| 39 | <p style="line-height: 100%;">However, the user frequently may feel the |
---|
| 40 | need to make extensions of the model code for his/her own simulations. |
---|
| 41 | For this purpose, a set |
---|
| 42 | of interfaces is available, which can be used to add user-defined code |
---|
| 43 | to the model. This |
---|
| 44 | chapter describes the programming of such user-defined code extensions.</p><p style="line-height: 100%;">The integration of user-defined code |
---|
| 45 | occurs in the form of subroutine calls, which are made at a set of |
---|
| 46 | places in the model code, by default. These subroutines have |
---|
| 47 | pre-defined names, which must not be changed by the user. Their basic |
---|
| 48 | versions are a component of the standard model |
---|
| 49 | code 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 |
---|
| 52 | actions, thus they are pure templates, which can be extended by the |
---|
| 53 | user as required. Actions which are already accomplished in these |
---|
| 54 | basic versions by default should not be changed. Here is an example |
---|
| 55 | of such a basic version: </p> |
---|
| 56 | <p style="line-height: 100%;"> </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) |
---|
| 59 | with the model occurs via the |
---|
| 60 | global variables, which are defined within the individual FORTRAN - |
---|
| 61 | modules of PALM. The appropriate modules (they are all in the |
---|
| 62 | source code file <tt><font style="font-size: 10pt;" size="2">modules.f90</font></tt>) |
---|
| 63 | must be declared by means of <font size="2"><font face="Cumberland, monospace">USE</font></font> statements in the |
---|
| 64 | user-defined routines in order to be able to work with the variables |
---|
| 65 | contained in them. As in the example, this is already done with the |
---|
| 66 | module <tt><font style="font-size: 10pt;" size="2">control_parameters</font></tt>. |
---|
| 67 | This yields access to most of the existing parameters for steering the |
---|
| 68 | model. Furthermore, the module <tt><font style="font-size: 11pt;" size="2">user</font></tt> appears in the example |
---|
| 69 | above. This is a |
---|
| 70 | user-defined module (it is located at |
---|
| 71 | the beginning of the file <tt><font style="font-size: 10pt;" size="2">user_interface.f90</font></tt>) |
---|
| 72 | and can be used for communication between the user-defined routines. In |
---|
| 73 | this module own variables can be declared as desired. It |
---|
| 74 | is not used outside of the user code. </p> |
---|
| 75 | <p style="line-height: 100%;">A very typical request of users is the |
---|
| 76 | calculation and output of |
---|
| 77 | quantities which are not part of PALM's standard output. Several |
---|
| 78 | routines in the basic user interface are already designed and prepared |
---|
| 79 | for 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 |
---|
| 80 | the file <tt><font style="font-size: 10pt;" size="2">user_interface.f90</font></tt> |
---|
| 81 | can be used as a basis for extensions. However the file should not be |
---|
| 82 | manipulated directly (it is anyway write protected by default), but it |
---|
| 83 | should be |
---|
| 84 | copied to another file. User write permits for this new file must be |
---|
| 85 | declared 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 |
---|
| 88 | interfaces for user-defined code exist in the |
---|
| 89 | model, how user parameters can be defined for steering this code |
---|
| 90 | and how it is translated and linked to the model. </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: </i> 15/04/05 (SR)</p> |
---|
| 95 | </body></html> |
---|