New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
user/rfurner/FCMmake (diff) – NEMO

Changes between Initial Version and Version 1 of user/rfurner/FCMmake


Ignore:
Timestamp:
2014-01-14T18:07:36+01:00 (10 years ago)
Author:
rfurner
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • user/rfurner/FCMmake

    v1 v1  
     1the majority of information on how to use FCM make to build NEMO executables can be found http://www.nemo-ocean.eu/Using-NEMO/User-Guides/Basics/NEMO-Quick-Start-Guide/Building-NEMO-executables-using-FCM-make, this page includes some additional informations for developers 
     2 
     3'''Combining multiple branches on extract''' 
     4 
     5If required is easy to use fcm make to combine multiple branches, list the base (usually the trunk) and a number of branches in the fcm-make.cfg file such as; 
     6 
     7{{{ 
     8# Specify the location of the branch or your working copy 
     9$nemo_location = fcm:nemo-br/dev/frdm/r9493_fcm-make 
     10#$nemo_location = ~/my/working/directory 
     11# Specify which set of CPP keys you want to use 
     12# Choose from: amm12 gyre gyre_pisces orca2_lim orca2_lim_cfc 
     13#              orca2_lim_pisces orca2_off_pisces orca2_sam_lim 
     14$nemo_config = orca2_lim 
     15 
     16include = $nemo_location/NEMOGCM/fcm-make/pwr7-xlf-meto.cfg 
     17 
     18extract.location[nemo]  = fcm:nemo-tr@9519 
     19 
     20extract.location{diff}[nemo] = \ 
     21       branches/dev/frsy/vn3.5_beta_BDY_bug_fixes@9519 \ 
     22       branches/dev/hadcv/vn3.5_beta_c1d_fixes@9519 \ 
     23       branches/dev/hadcv/vn3.5_beta_kara_mld@9519 
     24}}} 
     25 
     26However for this to work all branches much be branched from the same revision of the trunk as is used for the base. 
     27 
     28'''Make configuration notes''' 
     29 
     30* Various source files from NEMO/LIM_SRC_2 & TOOLS/OBSTOOLS/src and also the entire TOOLS/REBUILD directory are excluded from the extract step. This is because they are all symbolic links or contain symbolic links. If these are not excluded FCM works fine (the extract step will just skip symbolic links) but gives lots of warnings. If fcm make is adopted it should be possible to remove all these symbolic links from the source tree in the future. 
     31* Various source files from EXTERNAL/IOIPSL/tools are excluded from the extract step since they are not used (and the pre-processing step is not configured to handle them). 
     32* NEMO/OPA_SRC/TRD/trdmod_trc.F90 is excluded from the extract step because it is a dummy version of NEMOGCM/NEMO/TOP_SRC/TRP/trdmod_trc.F90 and results in a duplicate target if this module is required. 
     33* TOOLS/WEIGHTS/SCRIP1.4 & TOOLS/WEIGHTS/nocsutil are excluded from the extract step since they are not used (and they result in duplicate targets if left in). 
     34* As noted above, the make configuration is set up to build all the executables in a single make. If this is not not considered useful then separate config files could be set up for each executable, or maybe one to build all the tools and one to build the main NEMO executable? 
     35* Currently the build is split into 2 steps because there are a number of cases where slightly different versions of the same program unit are used in different executables. If this could be avoided (perhaps by using runtime switches or optional arguments to handle any required differences in behaviour) then a single build step could be used which would simplify the configuration considerably and also speed up the make (the 2 build steps are run serially). The problem files are as follows: 
     36   * domain.mod: NEMO/OPA_SRC/DOM/domain.F90 & TOOLS/GRIDGEN/src/domain.f90 
     37   * par_oce.mod: NEMO/OPA_SRC/par_oce.F90 & TOOLS/OBSTOOLS/src/par_oce.F90 
     38   * io_netcdf.mod: TOOLS/GRIDGEN/src/io_netcdf.f90 & TOOLS/NESTING/src/io_netcdf.f90 
     39   * in_out_manager.mod: NEMO/OPA_SRC/IOM/in_out_manager.F90 & TOOLS/OBSTOOLS/src/in_out_manager.F90