.. _doc.envir_newconfig: 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 ) * 2. **mkconfdir MENOR V9.05** (:ref:`doc_mkconfdir0`) (create directories for your configuration -*here CONF= MENOR, CASE= V9.05*-) * 3. **cd …** (*follow the screen directive*) (to go in the directory $UDIR/CONFIG/CASE) * 4. **gmake install** (install the code for your configuration) (:ref:`doc_install`) * 5. **vi Makefile.datarmor** and choice of CPP keys (:ref:`doc.manual.clesCPP`), compilation option * 6. **getfile WORK/parameters.F90** (:ref:`doc_getfile`) and change specific parameters to your configuration * 7. **gmake** (compilation) * 8. if modification of routines in the code by the user : * **getfile WORK/routine.F90** (:ref:`doc_getfile`) * modification of routine.F90 * gmake A New configuration WITH ranks -------------------------------- * 1. **ssh -X -l *username* datarmor** (connection to datarmor ) * 2. **mkconfdir MENOR V9.05 4(for ranks 0,1,2,3)** (:ref:`doc_mkconfdirr`) (create directories for your configuration -*here CONF= MENOR, CASE= V9.05, 4 ranks*-) * 3. **cd …** (*follow the screen directive*) (to go in the directory $UDIR/CONFIG/CASE) * 4. **gmake install** (install the code for your configuration) (:ref:`doc_install`) * 5. **vi Makefile.datarmor_rankX** and choice of CPP keys (:ref:`doc.manual.clesCPP`), compilation option for each rank * 6. **getfile WORK/parameters.F90_rank0** (:ref:`doc_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=) * 7. **vi makefile** and change rank=0,1 or 2 in order to compile the code for this rank * 8. **gmake clean ; gmake** (compilation) * 9. if modification of routines in the code by the user : * **getfile WORK/routine.F90** (:ref:`doc_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 (:ref:`doc.manual.clesCPP`) * **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 :ref:`doc.envir_recovconfig`