access_AccessGBuild_xblnf - ACCESS-NRI/accessdev-Trac-archive GitHub Wiki
Documentation on building APS1 Global model executable (re UMUI job xblnf)
Michael Naughton, 1 August 2013
In principle, all that is needed to build the APS1 ACCESS-G UM executable is to process and run the xblnf UMUI job. Ilia's notes here document the details about the build procedure that are important for developers to understand what is going on in the build job.
Note that this is not the final version, Zhian's changes to clouds settings still need to be included, which will only require change to the SVN source version used for the build.
Ilia Bermous, 1 August 2013
There are several important components in relation to build a UM executable using UMUI:
- UM sources
- GCOM library and its location
- software stack (Intel compiler versions and OpenMPI library version) to build an executable
- building procedure including Fortran and C compiler options
- fcm stuff
Let’s address the above mentioned information:
-
UM sources are specified in a Model Selection => FCM Configuration => FCM Options for Atmosphere and Reconfiguration panel. As usually the sources are taken from a branch so a corresponding branch reference should be included in the “User Modification” table of the above mentioned panel using an explicit revision number specified in the “Revision” column. It is recommended that an “Include modifications from user working copy” option should not be selected.
-
GCOM library version and location is specified in the gcom_path variable in the configs/machines/linux-mpich2-meto/ext_libs/gcom_mpp.cfg file.
-
Software stack to build an executable is defined by Intel compiler revision and OpenMPI library version with the corresponding module settings. Currently the required module settings are hard coded and defined via /access/umdir/vn7.5/linux/scripts/prg_env_vn7.5_01 file. The corresponding hard coded references to this file is included in a UMUI umui2.0/vn7.5/processing/nds_bld_gencmd script. Note that the software stack used to create the GCOM library mentioned in item 2 should be the same as the software stack to build UM executable.
I would like to note that another way of setting up the building environment is done via .umsetvars_$VN (where $VN is UM version, in our case it is 7.5) script. If this file exists in the $USER home directory then the related enviornemnt is sourced by UMUI umui2.0/vn7.5/processing/fcm_script script otherwise a general version $UMDIR/vn$VN/$TARGET_MC/scripts/.umsetvars_$VN is used.
-
Building procedure including the names of Fortran and C compilers as well as compilation and some pre-processor options for a parallel version are set via configs/machines/linux-mpich2-meto/machine.cfg file for our system.
-
UK Met Office fcm utility is used to build an executable. **fcm1.**5 version is used to produce APS1 Global executable, so this version of fcm is hard coded in the related UMUI scripts. At the same time there is a possibility that some building jobs may include references to fcm related names for example such as nci_um_br which should be correctly defined in the user $USER/.fcm file. For example,
set::repos::nci_um_br !https://access-svn.nci.org.au/svn/um/branches
I would like to add some other comments which maybe are useful for a person not very familiar with the UMUI building procedure:
-
Compilation output location is set by default to the $HOME/output location. A different location can be specified via MY_OUTPUT environment variable setting in the Defined Environment Variables for Directories table of the Model Selection => Input/Output Control and Resources => Time Convention and SCRIPT Environment Variables panel.
-
The location of the extraction directory to build an executable is defined via the following things
- UM_ROUTDIR variable setting in the Model Selection => FCM Configuration => FCM Extract directories and Output levels panel.
- Then a UMUI vn7.5/processing/nds_extract script adds “automatically” a couple of subdirectory levels $USERID/$RUNID. The building is done under $UM_ROUTDIR/$USERID/$RUNID/ummodel and a model binary file in the case of success is produced in $UM_ROUTDIR/$USERID/$RUNID/ummodel/bin directory.
./nds_target_vars:export UM_ROUTDIR=%UMFCM_ROUTDIR/$USERID/$RUNID
-
From my experience the netcdf library to produce a UM executable is not used so references to the netcdf library should be removed from the corresponding compilation settings and the linking procedure in the above mentioned it can be removed from the building procedure to compile the sources and to link. The related references are in machines/linux-mpich2-meto/ext_libs/netcdf.cfg.
-
UMUI building job should not include any references for input/output which includes explicitly a $USER location.
-
UMUI building job should built a reconfiguration executable as well.
-
The purpose for UM_SVN_BASE environment variable setting in the Defined Environment Variables table of the Model Selection => Input/Output Control and Resources => Script Inserts and Modifications is not clear to me.
P.s. As I have not worked “closely” with UMUI for the past 1-2 years it took some time to prepare the above mentioned document which may not be so precise and requires further improvement.