Changes between Version 85 and Version 86 of doc/install


Ignore:
Timestamp:
Jan 30, 2017 4:09:25 PM (8 years ago)
Author:
knoop
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • doc/install

    v85 v86  
    55There are three methods to install and run PALM:
    66
    7  - [#automatic An automatic installer].
    8  - [#simple A simple manual installation method].
    9  - [#advanced An advanced manual installation method].
     7 - [wiki:doc/install/automatic An automatic installer].
     8 - [wiki:doc/install/simple A simple manual installation method].
     9 - [wiki:doc/install/advanced An advanced manual installation method].
    1010
    1111With the automatic installer and the simple installation method, you can just run PALM interactively on the local computer. They do not allow to setup the creation of batch jobs and restart runs on any remote computer. This method is only recommended for users who like to do a quick test of PALM.\\\\
     
    3535The examples given in this chapter refer to an installation of PALM on an IMUK Linux workstation and (for the [#advanced advanced method]) the SGI-ICE system of HLRN, used as remote host. They are just referred to as local and remote host from now on.\\\\
    3636The installation process for the advanced method requires a valid account on the local and on the remote host as well.\\\\
    37 
    38 == [=#automatic] Automatic installer ==
    39 
    40 The easiest way to install PALM is our automatic PALM installation script (beta). Please do the following:
    41 
    42  1. Make sure, you meet the requirements!
    43  2. Download the automatic installation script [raw-attachment:palm_installer here].
    44  3. Open your terminal, go to your download directory and run the script by typing {{{bash palm_installer}}}
    45 
    46 The script will guide you through the installation process. As the installation script is still in beta, you may encounter problems. Please let us know, so we can further improve it.\\
    47 '''Note:''' This script is currently not able to deal with batch systems. Only local installation and interactive MPI execution is possible. For batch system support please consolidate the [#advanced advanced installation method].\\\\
    48 
    49 == [=#simple]Simple installation method ==
    50 
    51 The simple installation method is using the scripts '''palm_simple_install''' and '''palm_simple_run''' for installing and running PALM.\\\\
    52 
    53 === [=#package_installation_simple]Package installation ===
    54 
    55 '''First step:''' Create a directory:
    56 {{{
    57   mkdir -p ~/palm/current_version/
    58 }}}
    59 You can freely choose the directory name, but if you intend to switch to the [#advanced advanced method] of running PALM later, you should use {{{~/palm/current_version}}}. This directory will be called working directory from now on. '''All commands listed below have to be run from this working directory unless otherwise specified.'''\\\\
    60 '''Second step:''' Check out a working copy of the recent PALM version from the svn-repository. Replace {{{<your username>}}} by your valid repository username, and {{{<#>}}} by any of the available PALM releases, e.g. "''3.9''" (new releases will be announced to members of the PALM mailing list).
    61 {{{
    62   cd ~/palm/current_version
    63   svn checkout --username <your username> https://palm.muk.uni-hannover.de/svn/palm/tags/release-<#> trunk
    64 }}}
    65 You will be prompted for your password. After completion, a subdirectory trunk will appear in your working directory. It contains a number of further subdirectories, which contain e.g. the PALM source code ({{{SOURCE}}}) and the scripts for running PALM ({{{SCRIPTS}}}). For checking out the most recent PALM version (developer version), see the [#advanced advanced installation method].\\\\
    66 Please never touch any file in your working copy of PALM, unless you really know what you are doing.\\\\
    67 
    68 === [=#config_simple]Configuration and compilation ===
    69 
    70 '''Third step:''' To use the PALM scripts, the {{{PATH}}}-variable has to be extended and the environment variable {{{PALM_BIN}}} has to be set. For convenience, setting should be done in the respective profile of the users default shell (e.g. in {{{.profile}}}, if {{{ksh}}} is used):
    71 {{{
    72   export PALM_BIN=$HOME/palm/current_version/trunk/SCRIPTS
    73   export PATH=$PALM_BIN:$PATH
    74 }}}
    75 You may have to login again in order to activate the profile settings.\\\\
    76 '''Fourth step:''' Call the installation script:
    77 {{{
    78   palm_simple_install -i <compiler-option-set>
    79 }}}
    80 {{{<compiler-option-set>}}} has to re replaced by the name of a file containing compiler options and library paths appropriate for your system. You can find some tested and verified files with compiler-option sets in the [source:palm/trunk/INSTALL INSTALL directory] of the repository. Look for filenames starting with {{{MAKE.inc.}}} and replace {{{<compiler-option-set>}}} with one of these names. If no one of these sets satisfies your requirements, just choose anyone and modify it in a later step (see below). The script copies the PALM source code as well as the file with this set of compiler options into a new subdirectory {{{MAKE_DEPOSITORY_simple}}}. '''This command has to be run from your working directory (e.g. {{{~/palm/current_version}}}).'''
    81 
    82 This directory will then contain a {{{Makefile}}} and an include file {{{MAKE.inc}}} to be used for compiling the code in the next step. The include file contains compiler name, compiler options, library path for netCDF, etc. '''If necessary, please adjust these settings in file {{{MAKE.inc}}} as required by your system, before you proceed with the next step.''' You probably will have to adjust at least the paths to the netCDF- and MPI-library on your respective system (arguments of Options {{{-L}}} and {{{-I}}}). '''This, of course, requires that you have already installed netCDF and MPI on your system (see [#requirements requirements]).'''
    83 {{{
    84   cd MAKE_DEPOSITORY_simple
    85   make
    86   cd ..
    87 }}}
    88 In order to speed up compilation time, you can run make in parallel, e.g. {{{make -j 4}}} runs 4 compile threads simultaneously.\\\\
    89 '''Fifth step:''' Carry out a test run in order to check the installation. The test run (as every PALM run) requires a parameter file for steering PALM, which is in FORTRAN-NAMELIST format. This file has been already generated by the installation script '''palm_simple_install''' under {{{JOBS/example_cbl/INPUT/example_cbl_p3d}}}. PALM is started with script '''palm_simple_run'''. '''Before''' the first run, it may be necessary to change the MPI-execution command ({{{mpiexec}}}, {{{mpirun}}}, etc.) and options in this script, depending on the MPI-library that you are using. The script can be found in directory {{{.../trunk/SCRIPTS}}}. Default settings in this script are for the SGI-mpt-library installed on HLRN. You will find the execution command almost at the end of this script. After having adjusted the MPI-execution command, start the run with:
    90 {{{
    91   palm_simple_run -p 4 -n 4 -c example_cbl -e <execution-command>
    92 }}}
    93 where option {{{-p}}} gives the total number of MPI tasks, {{{-n}}} gives the number of MPI tasks per node, {{{-c}}} gives the parameter file to be used, and {{{-e}}} defines the execution command to be used to run the PALM executable. '''Note that this command also has to be run from your working directory (e.g. {{{~/palm/current_version}}}).''' You can choose from a number of different execution commands (see at the end of the script [source:palm/trunk/SCRIPTS/palm_simple_run palm_simple_run]), but you will probably have to modify them or oven add your own command to the script, since the mpiexec syntax differs a lot among the different MPI libraries. Example: if you want to do a run on the SGI-ICE system of HLRN with the SGI-mpt-environment, you can just use {{{-e sgi-mpt}}}.\\
    94 After the run has finished, all OUTPUT files can be found in directory {{{OUTPUT...}}}. Names and contents of PALM output files are described [../app/iofiles here]. The directory name is composed of the parameter file name, the number of cores that have been used, and the current data and time. For every run a unique directory is created.\\\\
    95 '''Sixth step:''' To verify the results of this example run, compare it with the default result:
    96 {{{
    97 diff  OUTPUT..../RUN_CONTROL   trunk/INSTALL/example_cbl_rc
    98 }}}
    99 '''You should not find any difference between these two files,''' except for the run date and time displayed at the top of the file header, and, maybe, the number of cores that have been used. If the file contents are identical, the installation is successfully completed.
    100 \\
    101 \\
    102 \\
    103 
    104 == [=#advanced]Advanced installation method ==
    105 
    106 === Passwordless login via ssh ===
    107 
    108 All hosts (local as well as remote) are accessed via the secure shell (ssh). The user must establish passwordless login using the [[./passwordless|private/public-key mechanism]] (HLRNIII users please see [[wiki:/doc/app/machine/hlrnIII|hints]]). '''To ensure proper function of mrun, passwordless login must be established in both directions, from the local to the remote host as well as from the remote to the local host! '''Test this by carrying out e.g. on the local host:
    109 {{{
    110   ssh  <username on remote host>@<remote IP-address>
    111 }}}
    112 and on the remote host:
    113 {{{
    114   ssh  <username on local host>@<local IP-address>
    115 }}}
    116 In both cases you should not be prompted for a password. '''Before continuing the further installation process, this must be absolutely guaranteed! '''It must also be guaranteed for '''all''' other remote hosts, on which PALM shall run.\\\\
    117 Please note that on many remote hosts, passwordless login must also work '''within the remote host''', i.e. for ssh connections from the remote host to itself. Test this by executing on the remote host:
    118 {{{
    119   ssh <username on remote host>@<remote IP-address>
    120 }}}
    121 You should not be prompted for a password.\\\\
    122 
    123 === [=#package_installation]Package installation ===
    124 
    125 The '''first installation step''' requires creating a set of directories on the local and, for the [#advanced advanced method], on the remote host. These are:
    126 {{{
    127   ~/job_queue
    128   ~/palm
    129   ~/palm/current_version
    130   ~/palm/current_version/JOBS
    131 }}}
    132 The names of these directories can be freely selected (except {{{~/job_queue}}}), however new users should choose them as suggested, since many examples in this documentation as well as all example files are based on these settings. The directory {{{~/palm/current_version}}} on the local host will be called the working directory from now on.\\\\
    133 In the '''second step''' a working copy of the recent PALM version, including the source code, scripts, documentation, etc.  must be copied to the working directory (local host!) by executing the following commands. Replace {{{<your username>}}} by the name that you have chosen to access the repository, and {{{<#>}}} by any of the available PALM releases, e.g. "''3.7a''" (new releases will be announced to members of the PALM mailing list).
    134 {{{
    135   cd ~/palm/current_version
    136   svn checkout --username <your username> https://palm.muk.uni-hannover.de/svn/palm/tags/release-<#> trunk
    137 }}}
    138 You will then be prompted for your password. After completion, there should be a subdirectory {{{trunk}}} in your working directory. It contains a number of further subdirectories, which contain e.g. the PALM source code ({{{SOURCE}}}) and the scripts for running PALM ({{{SCRIPTS}}}).\\\\
    139 Alternatively, executing
    140 {{{
    141   svn checkout --username <your username> https://palm.muk.uni-hannover.de/svn/palm/tags/release-<#> abcde
    142 }}}
    143 will place your working copy in a directory named {{{abcde}}} (instead of a directory named {{{trunk}}}). But keep in mind that you will have to adjust several paths given below, if you do not use the default directory {{{trunk}}}.\\\\
    144 Please never touch any file in your working copy of PALM, unless you know what you are doing.\\\\
    145 You can also get a copy of the most recent developer code by executing
    146 {{{
    147   svn checkout --username <your username> https://palm.muk.uni-hannover.de/svn/palm/trunk trunk
    148 }}}
    149 This version may contain new features (they might not be documented well), but it may also contain bugs.\\\\
    150 
    151 === [=#package_configuration]Package configuration ===
    152 
    153 To use the PALM scripts, the {{{PATH}}}-variable has to be extended and the environment variable {{{PALM_BIN}}} has to be set (on local and remote host) in the respective profile of the users default shell (e.g. in {{{.profile}}}, if {{{ksh}}} is used):
    154 {{{
    155   export PATH=$HOME/palm/current_version/trunk/SCRIPTS:$PATH
    156   export PALM_BIN=$HOME/palm/current_version/trunk/SCRIPTS
    157 }}}
    158 You may have to login again in order to activate these settings.\\\\
    159 On the local and on the remote host, some small helper/utility programs have to be installed, which are later used by '''mrun''' e.g. for PALM data postprocessing. The installation is done by '''mbuild'''. This script requires a configuration file {{{.mrun.config}}}, which will be also used by '''mrun''' in the following. A copy has to be put into the working directory under the name {{{.mrun.config}}} by
    160 {{{
    161   cp trunk/SCRIPTS/.mrun.config.<compiler> .mrun.config
    162 }}}
    163 Please replace {{{<compiler>}}} with either {{{gfortran}}} or {{{ifort}}} in order to get the default configuration file for the respective compiler. Beside many other things, this file contains typical installation parameters like compiler name, compiler options, etc. for a set of different (remote) hosts. Please edit this file, uncomment lines like
    164 {{{
    165   #%remote_username  <replace by your ... username>   <host identifier>
    166 }}}
    167 by removing the first hash (#) character and replace the string "{{{<replace by ...>}}}" by your username on the respective host given in the {{{<host identifier>}}}. You only have to uncomment lines for those hosts on which you intend to use PALM.\\\\
    168 '''Warning: When editing the configuration file, please NEVER use the TAB key. Otherwise, very confusing errors may occur when mrun is executing.'''\\\\
    169 Beside the default configuration files {{{.mrun.config.<compiler>}}}, the directory {{{trunk/SCRIPTS}}} contains additional configuration files which are already adjusted for special hosts, e.g. {{{.mrun.config.imuk}}} can be used at Hannover University, etc.. These files have to be edited in the same way as described above.\\\\
    170 After modifying the configuration file, the respective executables are generated by executing
    171 {{{
    172   mbuild -u -h lcmuk
    173   mbuild -u -h lccrayh
    174 }}}
    175 The second call also copies the PALM scripts (like '''mrun''' and '''mbuild''') to the remote host.\\\\
    176 
    177 === [=#pre_compilation]Pre-compilation of PALM code ===
    178 
    179 To avoid the re-compilation of the complete source code for each model run, PALM willl be pre-compiled once on the remote host by again using the script '''mbuild'''. Due to the use of FORTRAN modules in the source code, the subroutines must be compiled in a certain order. Therefore the so-called ''make'' mechanism is used (see the respective man-page of the Unix operating system), requiring a {{{Makefile}}}, in which the dependencies are described. This file is found in subdirectory {{{trunk/SOURCE}}}, where also the PALM code is stored. The compiled sources (object files) are stored on the remote computer in the default directory {{{~/palm/current_version/MAKE_DEPOSITORY_<block_descriptor>}}}, where {{{<block_descriptor>}}} is composed of the third (and fourth, if existing) column of the respective block in the configuration file (e.g. {{{lccrayh_parallel}}} for HLRN).
    180 
    181 The pre-compilation for the remote host (here the SGI-ICE system of HLRN) is done by
    182 {{{
    183   mbuild -h lccrayh 
    184 }}}
    185 'mbuild' will prompt some queries, which must all be answered "y" by the user. The compiling process will take some time. '''mbuild''' transfers the respective compiler calls to the remote host where they are carried out interactively. You can follow the progress at the terminal window, where also error messages are displayed (hopefully not for this standard installation). By just entering
    186 {{{
    187   mbuild
    188 }}}
    189 PALM will be (consecutively) pre-compiled for all remote hosts listed in the configuration file. If you want to compile for the local host only, please enter
    190 {{{
    191   mbuild -h lcmuk
    192 }}}
    193 \\
    194 
    195 === [=#verification]Installation verification ===
    196 
    197 As a last step, after the compilation has been finished, the PALM installation has to be verified. For this purpose a simple test run is carried out. This once again requires the '''mrun''' [[wiki:doc/app/configexample|configuration file]], as well as the [[wiki:doc/app/par|parameter file]]. The parameter file must be copied from the PALM working copy by
    198 {{{
    199   mkdir -p JOBS/example_cbl/INPUT
    200   cp trunk/INSTALL/example_cbl_p3d JOBS/example_cbl/INPUT/example_cbl_p3d
    201 }}}
    202 The test run can now be started by executing the command
    203 {{{
    204   mrun -d example_cbl -h lccrayh -K parallel -X 8 -T 8 -t 500 -q mpp1testq -r "d3# pr#"
    205 }}}
    206 This specific run will be carried out on 8 PEs and is allowed to use up to 500 seconds CPU time. After pressing <return>, the most important settings of the job are displayed at the terminal window and the user is prompted for o.k. ("{{{y}}}"). Next, a message of the queuing system like "''Request … Submitted to queue… by…''" should be displayed. Now the job is queued and either started immediately or at a later time, depending on the current workload of the remote host. Provided that it is executed immediately and that all things work as designed, the job protocol of this run will appear under the file name {{{~/job_queue/lccrayh_example}}} no more than a few minutes later. The content of this file should be carefully examined for any error messages.\\\\
    207 Beside the job protocol and according to the configuration file and arguments given for 'mrun' options {{{-d}}} and {{{-r}}}, further files should be found in the directories
    208 {{{
    209   ~/palm/current_version/JOBS/example_cbl/MONITORING
    210 }}}
    211 and
    212 {{{
    213   ~/palm/current_version/JOBS/example_cbl/OUTPUT
    214 }}}
    215 Please compare the contents of file
    216 {{{
    217   ~/palm/current_version/JOBS/example_cbl/MONITORING/lccrayh_example_rc
    218 }}}
    219 with those of the example result file which can be found under {{{trunk/INSTALL/example_cbl_rc}}}, e.g. by using the standard {{{diff}}} command
    220 {{{
    221 diff  JOBS/example_cbl/MONITORING/lccrayh_example_cbl_rc trunk/INSTALL/example_cbl_rc
    222 }}}
    223 where it is assumed that your working directory is {{{~/palm/current_version}}}.\\\\
    224 '''You should not find any difference between these two files''', except for the run date and time displayed at the top of the file header. If the file contents are identical, the installation is successfully completed.\\\\
    225 
    226 === [=#other_machines]Configuration for other machines ===
    227 
    228 Starting from version 3.2a, beside the default hosts (HLRN, etc.), PALM can also be installed and run on other Linux-Cluster-, IBM-AIX, or NEC-SX-systems. To configure PALM for a non-default host only requires to add some lines to the configuration file {{{.mrun.config}}}.\\\\
    229 First, you have to define the host identifier (a string of arbitrary length) under which your local host shall be identified by adding a line
    230 {{{
    231   %host_identifier  <hostname>  <host identifier>
    232 }}}
    233 to the configuration file (best to do this in the section where the other default host identifiers are defined). Here {{{<hostname>}}} must be the name of your local host as provided by the unix-command "{{{hostname}}}". The first characters of {{{<host identifier>}}} have to be "{{{lc}}}", if your system is (part of) a linux-cluster, "{{{ibm}}}", or "{{{nec}}}" in case of an IBM-AIX- or NEC-SX-system, respectively. For example, if you want to install on a linux-cluster, the line may read as
    234 {{{
    235   %host_identifier  foo  lc_bar
    236 }}}
    237 In the second step, you have to give all informations neccessary to compile and run PALM on your local host by adding an additional section to the configuration file:
    238 {{{
    239   %remote_username   <1>      <host identifier> parallel
    240   %tmp_user_catalog  <2>      <host identifier> parallel
    241   %compiler_name     <3>      <host identifier> parallel
    242   %compiler_name_ser <4>      <host identifier> parallel
    243   %cpp_options       <5>      <host identifier> parallel
    244   %netcdf_inc        <6>      <host identifier> parallel
    245   %netcdf_lib        <7>      <host identifier> parallel
    246   %fopts             <8>      <host identifier> parallel
    247   %lopts             <9>      <host identifier> parallel
    248 }}}
    249 The section consists of four columns each separated by one or more blanks. The first column gives the name of the respective environment variable used by '''mrun''' and '''mbuild''', while the second column defines its value. The third column has to be the host identifier as defined above, and the last column in each line must contain the string "{{{parallel}}}". Otherwise, the respective line(s) will be interpreted as belonging to the setup for compiling and running a serial (non-parallel) version of PALM.\\\\
    250 All brackets have to be replaced by the appropriate settings for your local host:
    251 
    252   * {{{<1>}}} is the username on your LOCAL host
    253   * {{{<2>}}} is the temporary directory in which PALM runs will be carried out
    254   * {{{<3>}}} is the compiler name which generates parallel code
    255   * {{{<4>}}} is the compiler name for generating serial code
    256   * {{{<5>}}} are the preprocessor options to be invoked. In most of the cases, it will be neccessary to adjust the MPI data types to double precision by giving {{{-DMPI_REAL=MPI_DOUBLE_PRECISION -DMPI_2REAL=MPI_2DOUBLE_PRECISION}}}. To switch on the netCDF support, you also have to give {{{-D__netcdf}}} and {{{-D__netcdf4}}} (if you like to have netCDF4/HDF5 data format; this requires a netCDF4 library!).
    257   * {{{<6>}}} is the compiler option for specifying the include path to search for the netCDF module/include files
    258   * {{{<7>}}} are the linker options to search for the netCDF library
    259   * {{{<8>}}} are the general compiler options to be used. You should allways switch on double precision (e.g. {{{-r8}}}) and code optimization (e.g. {{{-O2}}}).
    260   * {{{<9>}}} are the linker options
    261   * {{{<host identifier>}}} is the host identifier as defined before
    262 
    263 A typical example may be:
    264 {{{
    265   %remote_username   raasch                                  lc_bar parallel
    266   %tmp_user_catalog  /tmp                                    lc_bar parallel
    267   %compiler_name     mpif90                                  lc_bar parallel
    268   %compiler_name_ser ifort                                   lc_bar parallel
    269   %cpp_options       -DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf  lc_bar parallel
    270   %netcdf_inc        -I:/usr/local/netcdf/include            lc_bar parallel
    271   %netcdf_lib        -L/usr/local/netcdf/lib:-lnetcdf        lc_bar parallel
    272   %fopts             -axW:-cpp:-openmp:-r8:-nbs              lc_bar parallel
    273   %lopts             -axW:-cpp:-openmp:-r8:-nbs:-Vaxlib      lc_bar parallel
    274 }}}
    275 Currently (version 3.7a), depending on the MPI version which is running on your local host, the options for the execution command (which may be {{{mpirun}}} or {{{mpiexec}}}) may have to be adjusted manually in the '''mrun'''-script. A future version will allow to give the respective settings in the configuration file.\\\\
    276 If you have any problems with the PALM installation, the members of the PALM working group are pleased to help you.\\\\\\
    277 
    278 
    279 = [=#update]Installation of new / other versions, version update =
    280 
    281 The PALM group announces code revisions by emails send to the PALM mailing list. If you like to be put on this list, just send an email to raasch@muk.uni-hannover.de. Details about new releases can be found in the [../tec/changelog PALM change log].\\\\
    282 Generally, there are two ways of installing new / other versions. You can install a version from the list of available PALM releases or you can update your current installation with the newest developer version of PALM.\\\\
    283 If you have previously checked out the most recent (at that time) PALM developer version by using
    284 {{{
    285   svn checkout ...../palm/trunk trunk
    286 }}}
    287 you can easily make an update to the newest version by changing into the working directory {{{~/palm/current_version}}} and executing
    288 {{{
    289   svn update trunk
    290 }}}
    291 This updates all files in the PALM working copy in subdirectory {{{trunk}}}. The update may fail due the '''subversion''' rules, if you have modified the contents of trunk. In case of any conflicts with the repository, please refer to the '''subversion''' documentation on how to remove them. In order to avoid such conflicts, modifications of the default PALM code should be omitted and be restricted to the user-interface only (see [../app/userint here]).\\\\
    292 Alternatively, you can install new or other releases in a different directory, eg.
    293 {{{
    294   mkdir ~/palm/release-3.1c
    295   cd ~/palm/release-3.1c
    296   svn checkout --username <your username> https://palm.muk.uni-hannover.de/svn/palm/tags/release-3.1c trunk
    297 }}}
    298 However, this would require to carry out again the complete installation process described above. So far, different versions of PALM cannot be used at the same time. The PALM releases from {{{palm/tags}}} never have to be updated with "{{{svn update}}}", since these releases are frozen! \\\\
    299 After updating the working copy, please check for any differences between your current configuration file ({{{.mrun.config}}}) and the default configuration files under {{{trunk/SCRIPTS/.mrun.config.<compiler>}}} and adjust your current file, if neccessary.\\\\
    300 The scripts and the pre-compiled code must then be updated via
    301 {{{
    302   mbuild -u -h lcmuk
    303   mbuild -u -h ibmh
    304   mbuild -h ibmh
    305 }}}
    306 or via
    307 {{{
    308   mbuild -u
    309   mbuild 
    310 }}}
    311 on all remote hosts listed in the configuration file {{{.mrun.config}}}.\\\\
    312 You can use '''subversion''' for code comparison between the different versions. Also, modified code can be committed to the repository, but this is restricted to PALM developers.\\\\
    313 
    314 If you want to recompile PALM via {{{mbuild}}} after you have modified the configuration file {{{.mrun.config}}} (e.g. if you switch to a newer compiler or NetCDF version), you will have to perform the touch command on all source files:
    315 {{{
    316 touch trunk/SOURCE/* .
    317 }}}
    318 because otherwise the {{{make}}} mechanism will not be able to recompile the code.
    319 
    320 As a last step, a suitable test run should be carried out. It should be carefully examined whether and how the results created by the new version differ from those of the old version. Possible discrepancies which go beyond the ones announced in the [../tec/changelog PALM change log] should be communicated as soon as possible to the PALM group.