Changeset 3484 for trunk/ICOSA_LMDZ


Ignore:
Timestamp:
Oct 24, 2024, 1:10:52 PM (4 weeks ago)
Author:
afalco
Message:

ICOSA_LMDZ: overall compilation stops when compilation of a module fails.
Errors from internal calls in compilation scripts are transferred to the scripts above.
AF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ICOSA_LMDZ/make_icosa_lmdz

    r3480 r3484  
    200200echo "%LIB $ICOSA_LIB">> config.fcm
    201201
    202 if [[ "$build_deps" == "TRUE" ]]
    203 then
    204 
    205   if [[ -d ../IOIPSL ]] ; then
    206     cd ../IOIPSL
    207     ./makeioipsl_fcm -parallel -arch $arch -arch_path $arch_path -j $job $full_flag  || exit 1
     202function compile_module {
     203  ## function to compile each module.
     204  dir=$1 # module folder
     205  shift
     206  cmd=$@ # command line to compile
     207  if [[ -d ../$dir ]] ; then
     208    cd ../$dir
     209    echo "-- Compiling $dir with:"
     210    echo $cmd
     211    $cmd
     212    if [ $? != 0 ]; then # check if fcm command worked
     213      echo "In ../$dir, the following command failed:"
     214      echo "$cmd"
     215      exit 1
     216    fi
     217
    208218    cd -
    209219  else
    210     echo "Error: cannot find ../IOIPSL directory"
    211     exit
    212   fi
    213 
    214   if [[ -d ../XIOS ]] ; then
    215     cd ../XIOS
    216     ./make_xios --arch $arch --arch_path $arch_path --job $job $full_flag2 || exit 1
    217     cd -
    218   else
    219     echo "Error: cannot find ../XIOS directory"
    220     exit
    221   fi
    222 
     220    echo "Error: cannot find ../$dir directory"
     221    exit 1
     222  fi
     223}
     224
     225if [[ "$build_deps" == "TRUE" ]]
     226then
     227  compile_module IOIPSL ./makeioipsl_fcm -parallel -arch $arch -arch_path $arch_path -j $job $full_flag
     228  compile_module XIOS ./make_xios --arch $arch --arch_path $arch_path --job $job $full_flag2
    223229fi # of if [[ "$build_deps" == "TRUE" ]]
    224230
    225 if [[ -d ../LMDZ.COMMON ]] ; then
    226     cd ../LMDZ.COMMON
    227     echo "Compiling LMDZ.COMMON with:"
    228     cmd="./makelmdz_fcm -p $phys $phys_opt -$compil_mode -parallel $parallel -libphy -io xios -arch $arch -arch_path $arch_path -j $job $full_flag"
    229     echo $cmd
    230     $cmd || (echo "Failed compilation of LMDZ.COMMON. Command line was:" && echo $cmd && exit 1)
    231     cd -
    232 else
    233     echo "Error: cannot find ../LMDZ.COMMON directory"
    234     exit
    235 fi
    236 
    237 if [[ -d ../ICOSAGCM ]] ; then
    238     cd ../ICOSAGCM
    239     # from now on, compile using fcm2
    240     echo "Compiling ICOSAGCM with:"
    241     cmd="./make_icosa -$compil_mode -parallel $parallel -external_ioipsl -with_xios -arch $arch -arch_path $arch_path -job $job $full_flag"
    242     echo "$cmd"
    243     $cmd || (echo "Failed compilation of ICOSAGCM. Command line was:" && echo $cmd && exit 1)
    244     cd -
    245 else
    246     echo "Error: cannot find ../ICOSAGCM directory"
    247     exit
    248 fi
     231compile_module LMDZ.COMMON ./makelmdz_fcm -p $phys $phys_opt -$compil_mode -parallel $parallel -libphy -io xios -arch $arch -arch_path $arch_path -j $job $full_flag
     232
     233compile_module ICOSAGCM ./make_icosa -$compil_mode -parallel $parallel -external_ioipsl -with_xios -arch $arch -arch_path $arch_path -job $job $full_flag
    249234
    250235# compile interface and link
Note: See TracChangeset for help on using the changeset viewer.