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.
Changeset 4193 for branches/2013/dev_r3867_MERCATOR1_DYN/NEMOGCM/TOOLS/COMPILE – NEMO

Ignore:
Timestamp:
2013-11-14T12:04:31+01:00 (11 years ago)
Author:
cbricaud
Message:

Merge branch with revision 4119

Location:
branches/2013/dev_r3867_MERCATOR1_DYN/NEMOGCM/TOOLS/COMPILE
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3867_MERCATOR1_DYN/NEMOGCM/TOOLS/COMPILE/Fcheck_archfile.sh

    r3294 r4193  
    4040# :: 
    4141# 
    42 #  $ ./Fcheck_archfile.sh ARCHFILE COMPILER 
     42#  $ ./Fcheck_archfile.sh ARCHFILE CPPFILE COMPILER 
    4343# 
    4444# 
     
    5959# 
    6060#- 
     61cpeval ()  
     62{ 
     63    cat > $2 << EOF 
    6164 
    62 if [ ${#2} -eq 0 ]; then 
    63    if [ ! -f ${COMPIL_DIR}/$1 ]; then 
    64    echo "Warning !!!" 
    65    echo "NO compiler chosen" 
    66    echo "Try makenemo -h for help" 
    67    echo "EXITING..." 
    68    exit 1  
    69    fi 
     65#========================================================== 
     66#    Automatically generated by Fcheck_archfile.sh from 
     67#    $1 
     68#========================================================== 
     69 
     70EOF 
     71    while read line   
     72    do   
     73   eval "echo \"$line\" >> $2" 
     74    done < $1 
     75} 
     76# cleaning related to the old version 
     77rm -f $( find ${COMPIL_DIR} -type l -name $1 -print ) 
     78# 
     79if [ ${#3} -eq 0 ]; then # arch not specified 
     80    if [ ! -f ${COMPIL_DIR}/arch.history ]; then 
     81   echo "Warning !!!" 
     82   echo "NO compiler chosen" 
     83   echo "Try makenemo -h for help" 
     84   echo "EXITING..." 
     85   exit 1  
     86    else # use the arch file defined in arch.history 
     87   myarch=$( cat ${COMPIL_DIR}/arch.history )    
     88   if [ ! -f $myarch ]; then 
     89       echo "Warning !!!" 
     90       echo "previously used arch file no more found:" 
     91       echo $myarch 
     92       echo "EXITING..." 
     93       exit 1  
     94   else 
     95       if [ -f ${COMPIL_DIR}/$1 ]; then 
     96      if [ "$2" != "nocpp" ]  
     97      then 
     98          # has the cpp keys file been changed since we copied the arch file in ${COMPIL_DIR}? 
     99          mycpp=$( ls -l ${COMPIL_DIR}/$2 | sed -e "s/.* -> //" ) 
     100          if [ "$mycpp" != "$( cat ${COMPIL_DIR}/cpp.history )" ]; then 
     101         echo $mycpp > ${COMPIL_DIR}/cpp.history 
     102         cpeval ${myarch} ${COMPIL_DIR}/$1 
     103          fi 
     104          # has the cpp keys file been updated since we copied the arch file in ${COMPIL_DIR}? 
     105          mycpp=$( find -L ${COMPIL_DIR} -cnewer ${COMPIL_DIR}/$1 -name $2 -print ) 
     106          [ ${#mycpp} -ne 0 ] && cpeval ${myarch} ${COMPIL_DIR}/$1 
     107      fi 
     108      # has myarch file been updated since we copied it in ${COMPIL_DIR}? 
     109      myarchdir=$( dirname ${myarch} ) 
     110      myarchname=$( basename ${myarch} ) 
     111      myarch=$( find -L $myarchdir -cnewer ${COMPIL_DIR}/$1 -name $myarchname -print ) 
     112      [ ${#myarch} -ne 0 ] && cpeval ${myarch} ${COMPIL_DIR}/$1 
     113       else 
     114      cpeval ${myarch} ${COMPIL_DIR}/$1 
     115       fi 
     116   fi 
     117    fi 
     118else  
     119    nb=$( find ${MAIN_DIR}/ARCH -name arch-${3}.fcm -print | wc -l ) 
     120    if [ $nb -eq 0 ]; then # no arch file found 
     121   echo "Warning !!!" 
     122   echo "Compiler not existing" 
     123   echo "Try makenemo -h for help" 
     124   echo "EXITING..." 
     125   exit 1        
     126    fi 
     127    if [ $nb -gt 1 ]; then # more than 1 arch file found 
     128   echo "Warning !!!" 
     129   echo "more than 1 arch file for the same compiler have been found" 
     130   find ${MAIN_DIR}/ARCH -name arch-${3}.fcm -print 
     131   echo "keep only 1" 
     132   echo "EXITING..." 
     133   exit 1        
     134    fi 
     135    myarch=$( find ${MAIN_DIR}/ARCH -name arch-${3}.fcm -print ) 
     136    # we were already using this arch file ? 
     137    if [ "$myarch" == "$( cat ${COMPIL_DIR}/arch.history )" ]; then  
     138   if [ -f ${COMPIL_DIR}/$1 ]; then 
     139       if [ "$2" != "nocpp" ]  
     140       then 
     141      # has the cpp keys file been changed since we copied the arch file in ${COMPIL_DIR}? 
     142      mycpp=$( ls -l ${COMPIL_DIR}/$2 | sed -e "s/.* -> //" ) 
     143      if [ "$mycpp" != "$( cat ${COMPIL_DIR}/cpp.history )" ]; then 
     144          echo $mycpp > ${COMPIL_DIR}/cpp.history 
     145          cpeval ${myarch} ${COMPIL_DIR}/$1 
     146      fi 
     147      # has the cpp keys file been updated since we copied the arch file in ${COMPIL_DIR}? 
     148      mycpp=$( find -L ${COMPIL_DIR} -cnewer ${COMPIL_DIR}/$1 -name $2 -print ) 
     149      [ ${#mycpp} -ne 0 ] && cpeval ${myarch} ${COMPIL_DIR}/$1 
     150       fi 
     151       # has myarch file been updated since we copied it in ${COMPIL_DIR}? 
     152       myarch=$( find -L ${MAIN_DIR}/ARCH -cnewer ${COMPIL_DIR}/$1 -name arch-${3}.fcm -print ) 
     153       [ ${#myarch} -ne 0 ] && cpeval ${myarch} ${COMPIL_DIR}/$1 
     154   else 
     155       cpeval ${myarch} ${COMPIL_DIR}/$1 
     156   fi 
     157    else 
     158   if [ "$2" != "nocpp" ]  
     159   then 
     160       ls -l ${COMPIL_DIR}/$2 | sed -e "s/.* -> //" > ${COMPIL_DIR}/cpp.history 
     161   fi 
     162   echo ${myarch} > ${COMPIL_DIR}/arch.history 
     163   cpeval ${myarch} ${COMPIL_DIR}/$1 
     164    fi 
     165fi 
     166 
     167#- do we need xios library? 
     168if [ "$2" != "nocpp" ]  
     169then 
     170    use_iom=$( sed -e "s/#.*$//" ${COMPIL_DIR}/$2 | grep -c key_iomput ) 
    70171else 
    71    myfile=$( find ${MAIN_DIR}/ARCH -name arch-${2}.fcm -print ) 
    72    if [ ${#myfile} -gt 0 ]; then 
    73       ln -sf  ${myfile} ${COMPIL_DIR}/$1 
    74    else 
    75       echo "Warning !!!" 
    76       echo "Compiler not existing" 
    77       echo "Try makenemo -h for help" 
    78       echo "EXITING..." 
    79       exit 1        
    80    fi    
     172    use_iom=0 
    81173fi 
     174have_lxios=$( sed -e "s/#.*$//" ${COMPIL_DIR}/$1 | grep -c "\-lxios" ) 
     175if [[ ( $use_iom -eq 0 ) && ( $have_lxios -ge 1 ) ]] 
     176then  
     177    sed -e "s/-lxios//g" ${COMPIL_DIR}/$1 > ${COMPIL_DIR}/tmp$$ 
     178    mv -f ${COMPIL_DIR}/tmp$$ ${COMPIL_DIR}/$1 
     179fi 
     180 
     181#- do we need oasis libraries? 
     182if [ "$2" != "nocpp" ]  
     183then 
     184    use_oasis=$( sed -e "s/#.*$//" ${COMPIL_DIR}/$2 | grep -c key_oasis3 ) 
     185else 
     186    use_oasis=0 
     187fi 
     188for liboa in psmile.MPI1 mct mpeu scrip mpp_io 
     189do 
     190    have_liboa=$( sed -e "s/#.*$//" ${COMPIL_DIR}/$1 | grep -c "\-l${liboa}" ) 
     191    if [[ ( $use_oasis -eq 0 ) && ( $have_liboa -ge 1 ) ]] 
     192    then  
     193   sed -e "s/-l${liboa}//g" ${COMPIL_DIR}/$1 > ${COMPIL_DIR}/tmp$$ 
     194   mv -f ${COMPIL_DIR}/tmp$$ ${COMPIL_DIR}/$1 
     195    fi 
     196done 
     197 
  • branches/2013/dev_r3867_MERCATOR1_DYN/NEMOGCM/TOOLS/COMPILE/Flist_archfile.sh

    r3294 r4193  
    6161 
    6262echo "Available compilers for -m option :" 
    63 for file in  $(ls ${MAIN_DIR}/ARCH | grep fcm ) 
     63for file in  $(ls ${MAIN_DIR}/ARCH | grep "fcm$" ) 
    6464do 
    6565zvar1=${file#arch-} 
     
    7171 
    7272if [ "$1" == "all" ]; then 
    73    for dir  in  $(ls ${MAIN_DIR}/ARCH | grep -v fcm ) 
     73   for dir  in  $(ls ${MAIN_DIR}/ARCH | grep -v "fcm$" ) 
    7474   do  
    7575      echo "Available compilers at ${dir} :" 
    76       for file in  $(ls ${MAIN_DIR}/ARCH/${dir} | grep  fcm ) 
     76      for file in  $(ls ${MAIN_DIR}/ARCH/${dir} | grep "fcm$" ) 
    7777      do 
    7878      zvar1=${file#arch-} 
     
    8484elif [ -d ${MAIN_DIR}/ARCH/${1} ]; then 
    8585      echo "Available compilers at $1 :" 
    86       for file in  $(ls ${MAIN_DIR}/ARCH/$1 | grep fcm ) 
     86      for file in  $(ls ${MAIN_DIR}/ARCH/$1 | grep "fcm$" ) 
    8787      do 
    8888      zvar1=${file#arch-} 
     
    9393else 
    9494      echo "Available consortium member sub-directories :" 
    95       for dir  in  $(ls ${MAIN_DIR}/ARCH | grep -v fcm ) 
     95      for dir  in  $(ls ${MAIN_DIR}/ARCH | grep -v "fcm$" ) 
    9696      do 
    9797         echo ${dir} 
Note: See TracChangeset for help on using the changeset viewer.