MARS environnement : Build a new configuration

A New configuration Without rank

The rank_0 does not supply the rank_1 with open boundary conditions

    1. ssh -X -l *username* datarmor (connection to datarmor )
    1. mkconfdir MENOR V9.05 (mkconfdir without ranks) (create directories for your configuration -here CONF= MENOR, CASE= V9.05-)
    1. cd … (follow the screen directive) (to go in the directory $UDIR/CONFIG/CASE)
    1. gmake install (install the code for your configuration) (command gmake install)
    1. vi Makefile.datarmor and choice of CPP keys (Choice of CPP keys before compilation), compilation option
    1. getfile WORK/parameters.F90 (command getfile) and change specific parameters to your configuration
    1. gmake (compilation)
    1. if modification of routines in the code by the user :
      • getfile WORK/routine.F90 (command getfile)
      • modification of routine.F90
      • gmake

A New configuration WITH ranks

    1. ssh -X -l *username* datarmor (connection to datarmor )
    1. mkconfdir MENOR V9.05 4(for ranks 0,1,2,3) (mkconfdir with ranks) (create directories for your configuration -here CONF= MENOR, CASE= V9.05, 4 ranks-)
    1. cd … (follow the screen directive) (to go in the directory $UDIR/CONFIG/CASE)
    1. gmake install (install the code for your configuration) (command gmake install)
    1. vi Makefile.datarmor_rankX and choice of CPP keys (Choice of CPP keys before compilation), compilation option for each rank
    1. getfile WORK/parameters.F90_rank0 (command getfile)
      • cp INC/parameters.F90_rank0 INC/parameters.F90_rank1,
      • cp INC/parameters.F90_rank0 INC/parameters.F90_rank2 ...
      • modification of INC/parameters.F90_rank* (no=, nrac=,imax=,jmax=,kmax=)
    1. vi makefile and change rank=0,1 or 2 in order to compile the code for this rank
    1. gmake clean ; gmake (compilation)
    1. if modification of routines in the code by the user :
      • getfile WORK/routine.F90 (command getfile)
      • modification of routine.F90
      • gmake

General definition of variables : REF_CONFIG and PREV_CONFIG in makefile

  • PREV_CONFIG (*used with gmake copyconfig*)
    • During the evolution of a configuration, the creation of a new configuration CONF-CASE and the use of “gmake copyconfig” :
      • allows to get exactly the same code as in configuration PREV_CONFIG (‘gmake copyconfig’ command copies user’s routines and Makefile.linux (or .datarmor) from directory PREV_CONFIG to $UDIR/CONF/CONF-CASE)
      • allows to keep a saving of configuration PREV_CONFIG
    • This command is used when updating a configuration with a new version of the reference code (the user get directly the routines he may have to update)
  • REF_CONFIG
    • Useful when several users use the same configuration
      • Only one user is in charge of updating the REF_CONFIG configuration
      • At each evolution of the reference MARS code, other users have to update their owns routines only
      • Routines of directory REF_CONFIG are directly copied from REF_CONFIG directory to the compiling directory : the user does not see them in $UDIR/CONF/CONF-CASE but he uses them
  • ATTENTION
    • The variables PREV_CONFIG and REF_CONFIG allow to manage the code but not the input files : they have an influence in directory $UDIR/CONF/CONF-CASE only
    • The user must copy namelists paraspec.txt, paramain.txt, paracom.txt, parasubs.txt, parasedim.txt and parabiolo.txt (+ output.dat file and mpi.txt) relative to the configuration PREV_CONFIG or REF_CONFIG
    • PREV_CONFIG : Makefile.linux files is copied from PREV_CONFIG directory –> update the path in INCDIR and CPP variables (Choice of CPP keys before compilation)
    • REF_CONFIG : Makefile.linux is not changed –> the user has to change it in order to use the same cpp keys and the same compiling options as the ones used in REF_CONFIG directory

see MARS environnement : Recovery of an old configuration to build a new one