Ignore:
Timestamp:
Jun 5, 2013, 2:41:09 PM (12 years ago)
Author:
emillour
Message:

Common dynamics:
Updates in the dynamics (seq and ) to keep up with updates
in LMDZ5 (up to LMDZ5 trunk, rev 1760):

  • General stuff (essentially to keep up with Earth model):
  • Updated makelmdz_fcm and makelmdz (more control on dimension.h, added option -mem, although it is not usefull for now)
  • Updated build_gcm with more control over fcm
  • Updated create_make_gcm (enable looking for code in subdirectories)
  • bibio:
  • updates (just renaming the files actually...) new_unit.F90 => new_unit_m.F90, pchsp_95.F90 => pchsp_95_m.F90 and pchfe_95.F90 => pchfe_95_m.F90
  • filtrez:
  • mod_fft.F90: use more baseline CPP directives for preprocessor compatibility
  • mod_filtre_fft_loc.F90: added this new file
  • filtreg_mod.f90: added calls to init_..._loc
  • filtreg.F: fixed calls to DGEMM into SGEMM (preprocessing does the switch)
  • dyn3d:
  • removed obsolete files: etat0_netcdf.F90 limit_netcdf.F90

pres2lev.F90

  • added new file : pres2lev_mod.F90 (module containing "old" pres2lev)
  • gcm.F: changed args to call to inidissip (added arg "vert_prof_dissip")
  • inidissip.F90: added arg "vert_prof_dissip" and the "earth model" discterizations (flagged with "planet_type=="earth")
  • comdissnew.h: added 'vert_prof_dissip' to the common block
  • guide_mod.F90: added the "use pres2lev_mod"
  • conf_gcm.F: cosmetics, and evaluation of vert_prof_dissip, (and also of dissip_* factors, for Earth model)
  • comconst.h : added dissip_factz,dissip_zref variables (for Earth mode dissip)
  • dyn3dpar:
  • removed obsolete files: etat0_netcdf.F90 limit_netcdf.F90

pres2lev.F90 mod_const_para.F90

  • added new files: pres2lev_mod.F90 (module containing "old" pres2lev)

mod_const_mpi

  • abort_gcm : better control of abort in parallel mode
  • gcm.F: changed args to call to inidissip (added arg "vert_prof_dissip")
  • inidissip.F90: added arg "vert_prof_dissip" and the "earth model" discterizations (flagged with "planet_type=="earth")
  • comdissnew.h: added 'vert_prof_dissip' to the common block
  • filtreg_p.F : bug correction (array bounds)
  • guide_p_mod.F90 : added the "use pres2lev_mod"
  • conf_gcm.F : cosmetics (and evaluation of vert_prof_dissip , and

also of dissip_* factors, for Earth model)
plus check if "adjust" is indeed not used in OpenMP

  • comconst.h : add dissip_factz,dissip_zref variables (for Earth mode dissip)

EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/create_make_gcm

    r814 r979  
    44#
    55#set -xv
     6
     7rm -f create_make_gcm.log
     8
    69machine=`hostname`
    710os=`uname`
     
    134137do
    135138   if [ -d $diri ] ; then
    136    if [ "`ls $diri/*.F`" != "" ] || [ "`ls $diri/*.F90`" != "" ]  ; then
    137       cd $diri >/dev/null 2>&1
     139   if [ "`ls $diri/*.F $diri/*/*.F`" != "" ] || [ "`ls $diri/*.F90 $diri/*/*.F90`" != "" ]  ; then
     140#      cd $diri >/dev/null 2>&1
    138141      echo
    139142      listlib=""
    140       for i in `ls *.F`
    141       do
    142          fili=`basename $i .F`
     143# Liste des fichiers .F et .F90 n'etant pas des programmes principaux
     144      for fili in `ls $diri/*.F $diri/*/*.F`
     145      do
    143146         # Check if file is a routine or main program
    144147         # i.e: look for the "program" keword preceeded by leading spaces
    145          test=` (  head $i | grep -i '^ *program' ) `
     148         test=` (  head $fili | grep -i '^ *program' ) `
    146149         if [ "$test" = "" ] ; then
    147150            # if it is not a main program, add it to the list
     
    149152         fi
    150153      done
    151       for i in `ls *.F90`
    152       do
    153          fili=`basename $i .F90`
     154      for fili in `ls $diri/*.F90 $diri/*/*.F90`
     155      do
    154156         # Check if file is a routine or main program
    155157         # i.e. look for "program" keyword (with possibly some leading spaces)
    156          test=` (  head $i | grep -i '^ \{0,\}program' ) `
     158         test=` (  head $fili | grep -i '^ \{0,\}program' ) `
    157159         if [ "$test" = "" ] ; then
    158160            # if it is not a main program, add it to the list
     
    162164#
    163165      echo
     166      echo $listlib >> create_make_gcm.log
    164167      echo
    165168      echo "#======================================================================="
     
    167170      echo "#======================================================================="
    168171      echo
    169       for fili in $listlib
    170       do
     172      for trufile in $listlib
     173      do
     174         fili=`echo $trufile | awk -F/ ' { print $NF } ' | cut -d. -f1`
    171175         echo '$(LIBO)/lib'$diri".a : " '$(LIBO)/lib'$diri".a("$fili".o)"
    172176         echo
     
    177181      echo "# Compilation des membres de la bibliotheque lib"$diri".a"
    178182      echo
    179       for fili in $listlib
    180       do
    181          if [ -f $fili.F90 ] ; then
    182            trufile=$fili.F90
    183          else
    184            trufile=$fili.F
    185          fi
     183      for trufile in $listlib
     184      do
     185#         if [ -f $fili.F90 ] ; then
     186#           trufile=$fili.F90
     187#         else
     188#           trufile=$fili.F
     189#         fi
     190         fili=`echo $trufile | awk -F/ ' { print $NF } ' | cut -d. -f1`
    186191         F90=0 ; egrep -i '^ *use ' $trufile > /dev/null 2>&1 && F90=1
    187192                 egrep -i '^ *module ' $trufile > /dev/null 2>&1 && F90=1
    188193                 egrep -i '#include*.inc ' $trufile > /dev/null 2>&1 && F90=1
    189          str1='$(LIBO)/lib'$diri'.a('$fili'.o) : $(LIBF)/'$diri/$trufile
     194         str1='$(LIBO)/lib'$diri'.a('$fili'.o) : $(LIBF)/'$trufile
    190195         [ "$fili" = "chem.subs" ] && str1=$str1' $(LIBF)/'$diri/chem.mods.F
    191          for stri in ` ( sed -n "/\#include/s/\#include//p" $trufile | sed 's/\"//g' ; egrep -i '^ *use ' $trufile | sed -e 's/,/ /' | awk ' { print $2 } ' ) `
    192          do
    193 
    194 
     196
     197##########################################################################
     198# TRAITEMENT DES DEPENDANCES
    195199# Differents cas de dependance correspondant a des include ou des
    196200# use module.
    197201# soit dans le repertoire local soit dans un autre.
    198 
    199             stri=`echo $stri | tr [A-Z] [a-z]`
    200             if [ -f $stri ] ; then
     202# Pour dyn3d, il faudrait remplacer la chaine de caractere par $DYN
     203# ou quelque chose du genre.
     204##########################################################################
     205
     206         for stri in ` ( sed -e '/^[cC\!]/d' $trufile | sed -n "/\#include/s/\#include//p" | sed 's/\"//g' ; sed -e '/^[cC\!]/d' $trufile | egrep -i '^ *use ' | sed -e 's/,/ /' | awk ' { print $2 } ' ) `
     207         do
     208            echo $trufile $fili $stri >> create_make_gcm.log
     209            strj=`echo $stri | tr [A-Z] [a-z]`
     210            str2=""
     211            for dirinc in filtrez bibio grid dyn3d $diri $diri/*/ ; do
     212# Recherche dans l'ordre hierarchique inverse car seule la derniere
     213# ligne est conservee
     214               if [ -f $dirinc/$stri ] ; then
     215                  str2='$(LIBF)/'$dirinc/$stri
     216               elif [ -f $dirinc/$strj ] ; then
     217                  str2='$(LIBF)/'$dirinc/$stri
     218               elif [ -f $dirinc/$strj.F90 ]  || [ -f $dirinc/$strj.F ]  ; then
     219                  strlib=`echo $dirinc | awk -F/ ' { print $1 } '`
     220                  str2='$(LIBO)/lib'$strlib'.a('$strj'.o)'
     221               fi
     222            done
     223            if [ "$str2" = "" ] ; then
     224               echo Warn: Include $diri $trufile $fili $stri pas trouve >> $gcm/create_make_gcm.log
     225            elif [ "$str2" = "$str1" ] ; then
     226               echo Warn: Include $diri $trufile $fili $stri $str1 trouve 2x >> $gcm/create_make_gcm.log
     227            else
    201228               echo $str1 \\
    202                str1='$(LIBF)/'$diri'/'$stri
    203             else
    204                if [ -f $stri.F ] || [ -f $stri.F90 ] ; then
    205                   echo $str1 \\
    206                   str1='$(LIBO)/lib'$diri'.a('$stri'.o)'
    207                else
    208                   for dirinc in dyn3d grid bibio filtrez
    209                   do
    210                      if [ -f ../$dirinc/$stri ] ; then
    211                         echo $str1 \\
    212                         str1='$(LIBF)/'`cd .. ; ls */$stri | head -1`
    213                      fi
    214                      if [ -f ../$dirinc/$stri.F90 ] ; then
    215                         echo $str1 \\
    216                         str1='$(LIBO)/lib'$dirinc'.a('$stri'.o)'
    217                      fi
    218                   done
    219                fi
     229               str1=$str2
    220230            fi
    221          done
     231         done # Fin de la boucle sur les dependances et ecriture de la derniere
    222232         echo $str1
    223233         # Compile in LIBO directory; and before compiling, remove
     
    227237         if [ "$F90" -eq '0' ] ; then
    228238         ## Fixed Form Fortran 77
    229            echo '       $(COMPILE) $(LIBF)/'$diri'/'$trufile' ; \'
     239           echo '       $(COMPILE) $(LIBF)/'$trufile' ; \'
    230240         else
    231241         ## Fortran 90
    232242           if [ -f $fili.F90 ] ; then
    233243              ## Free Form
    234               echo '    $(COMPTRU90) $(LIBF)/'$diri'/'$trufile' ; \'
     244              echo '    $(COMPTRU90) $(LIBF)/'$trufile' ; \'
    235245           else
    236               echo '    $(COMPILE90) $(LIBF)/'$diri'/'$trufile' ; \'
     246              echo '    $(COMPILE90) $(LIBF)/'$trufile' ; \'
    237247           fi
    238248         fi
Note: See TracChangeset for help on using the changeset viewer.