access_AccessGBuild_xbknf - ACCESS-NRI/accessdev-Trac-archive GitHub Wiki

Documentation on building a UMUI APS1 Global model executable (UMUI job ID is xblnf)

'''From: Ilia Bermous ''' Date: 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:

  1. 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.

  2. GCOM library version and it location is specified in the configs/machines/linux-mpich2-meto/ext_libs/gcom_mpp.cfg file for a parallel version of the corresponding UM executable in the gcom_path term setting.

  3. 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.

  1. 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.

  2. 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:

  1. 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.

  2. 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

  1. 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.

  2. UMUI building job should not include any references for input/output which includes explicitly a $USER location.

  3. UMUI building job should built a reconfiguration executable as well.

  4. 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.