Changeset 62 for palm/trunk/DOC/app/chapter_3.5.html
- Timestamp:
- Mar 13, 2007 2:52:40 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/DOC/app/chapter_3.5.html
r54 r62 1 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2 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 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 9 code 18 10 extensions<br> 19 </h3> 20 <p style="line-height: 100%;">Programminguser-defined code11 </h3><p style="line-height: 100%;">Programming 12 user-defined code 21 13 extensions usually requires exact knowledge of the internal structure 22 14 of PALM. 23 15 Appropriate explanations in <a href="chapter_2.0.html">chapter 24 2.0</a> and the technical documentation are usually not sufficient 16 2.0</a> and the technical documentation are usually not 17 sufficient 25 18 and must be supplemented by the rigorous study of the source code of 26 19 the model. Programming experiences with FORTRAN95 and if necessary 27 20 experiences with the parallelization tool MPI are absolutely 28 21 neccessary! </p> 29 <p style="line-height: 100%;">Changes of the standard model code by the 22 <p style="line-height: 100%;">Changes of the standard 23 model code by the 30 24 user 31 25 should be avoided whenever possible and are reserved to the … … 37 31 accessible to the users (see <a href="chapter_5.1.html">chapter 38 32 5.1</a>).</p> 39 <p style="line-height: 100%;">However, the user frequently may feel the 33 <p style="line-height: 100%;">However, the user frequently 34 may feel the 40 35 need to make extensions of the model code for his/her own simulations. 41 36 For this purpose, a set 42 37 of interfaces is available, which can be used to add user-defined code 43 38 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 39 chapter describes the programming of such user-defined code extensions.</p><p style="line-height: 100%;">The integration of user-defined 40 code 45 41 occurs in the form of subroutine calls, which are made at a set of 46 42 places in the model code, by default. These subroutines have … … 49 45 code and they are all included in the source code file 50 46 <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 47 <font color="#000000">The</font> basic versions 48 accomplish nearly no 52 49 actions, thus they are pure templates, which can be extended by the 53 50 user as required. Actions which are already accomplished in these … … 55 52 of such a basic version: </p> 56 53 <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 ofvariables)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 55 variables) 59 56 with the model occurs via the 60 57 global variables, which are defined within the individual FORTRAN - 61 58 modules of PALM. The appropriate modules (they are all in the 62 59 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 60 must be declared by means of <font size="2"><font face="Cumberland, monospace">USE</font></font> 61 statements in the 64 62 user-defined routines in order to be able to work with the variables 65 63 contained in them. As in the example, this is already done with the 66 64 module <tt><font style="font-size: 10pt;" size="2">control_parameters</font></tt>. 67 65 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 66 model. Furthermore, the module <tt><font style="font-size: 11pt;" size="2">user</font></tt> 67 appears in the example 69 68 above. This is a 70 69 user-defined module (it is located at … … 73 72 this module own variables can be declared as desired. It 74 73 is not used outside of the user code. </p> 75 <p style="line-height: 100%;">A very typical request of users is the 74 <p style="line-height: 100%;">A very typical request of 75 users is the 76 76 calculation and output of 77 77 quantities which are not part of PALM's standard output. Several 78 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 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 80 contents of 80 81 the file <tt><font style="font-size: 10pt;" size="2">user_interface.f90</font></tt> 81 82 can be used as a basis for extensions. However the file should not be … … 85 86 declared by means of the unix command <tt><font style="font-size: 10pt;" size="2">chmod</font></tt>. 86 87 </p> 87 <p style="line-height: 100%;">The following sections describe, which 88 <p style="line-height: 100%;">The following sections 89 describe, which 88 90 interfaces for user-defined code exist in the 89 91 model, how user parameters can be defined for steering this code 90 92 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> 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: </i> 95 $Id$</p> 95 96 </body></html>
Note: See TracChangeset
for help on using the changeset viewer.