Changeset 1810 for LMDZ5/trunk/makelmdz


Ignore:
Timestamp:
Jul 24, 2013, 10:06:39 AM (11 years ago)
Author:
Ehouarn Millour
Message:

Updating makelmdz and create_makelmdz for :

1 parallelism
2 compilation with various versions of orchidee
3 compilation in 1D mode
4 some cleaning

Also some updates in dyn3dmem:
1 allocate_field_mod.f90 renamed allocate_field_mod.F90
2 module dimensions renamed dimensions_mod
3 module allocate_field renamed allocate_field

FH

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/makelmdz

    r1789 r1810  
    306306  FLAG_PARA=''
    307307else
    308   FLAG_PARA="par"
     308  FLAG_PARA="$paramem"
    309309fi
    310310
     
    351351fi
    352352
    353 if [[ "$veget" == "orchidee2.0" ]]
    354 then
    355 # orchidee2.0 :
    356 # Compile with ORCHIDEE 2.0 (or more recent)
     353
     354#==============================================================================
     355if [ "$veget" = "true" -o "$veget" = "orchidee1.9" -o "$veget" = "orchidee2.0" ]
     356then
     357
     358   INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
    357359   CPP_KEY="$CPP_KEY CPP_VEGET"
    358    INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
    359    LIB="${LIB} -L${ORCH_LIBDIR} -l${LIBPREFIX}orchidee "
    360 elif [[ "$veget" == "orchidee1.9" ]]
    361 then
    362 # orchidee1.9 :
    363 # Compile with ORCHIDEE version up to the inclusion of OpenMP in ORCHIDEE : tag 1.9-1.9.5(version AR5)-1.9.6
    364    CPP_KEY="$CPP_KEY CPP_VEGET ORCHIDEE_NOOPENMP"
    365    INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
    366    LIB="${LIB} -L${ORCH_LIBDIR} -l${LIBPREFIX}sechiba -l${LIBPREFIX}parameters -l${LIBPREFIX}stomate -l${LIBPREFIX}parallel -l${LIBPREFIX}orglob"
    367 elif [[ "$veget" == "true" ]]
    368 then
    369 # true :
    370 # Obsolete, for backward compatibility. To be used with ORCHIDEE tag 1.9-1.9.6
    371 # For this case, cpp flag ORCHIDEE_NOOPENMP must be added to the makelmdz_fcm arguments
    372    CPP_KEY="$CPP_KEY CPP_VEGET"
    373    INCLUDE="${INCLUDE} -I${ORCH_INCDIR}"
    374    LIB="${LIB} -L${ORCH_LIBDIR} -l${LIBPREFIX}sechiba -l${LIBPREFIX}parameters -l${LIBPREFIX}stomate -l${LIBPREFIX}parallel -l${LIBPREFIX}orglob"
    375 elif [[ "$veget" != "false" ]]
    376 then
     360# temporary, for Orchidee versions 1.9.* (before openmp activation)
     361   if [[ "$veget" == "orchidee1.9" ]] ; then
     362      CPP_KEY="$CPP_KEY ORCHIDEE_NOOPENMP"
     363   fi
     364   if [[ "$veget" == "orchidee2.0" ]] ; then
     365      listlibs=orchidee
     366   else
     367      listlibs="sechiba parameters stomate parallel orglob"
     368   fi
     369   LIB="${LIB} -L${ORCH_LIBDIR}"
     370   for lib in sechiba parameters stomate parallel orglob ; do
     371      if [ -f ${ORCH_LIBDIR}/lib${LIBPREFIX}$lib.a ] ; then
     372         LIB="${LIB} -l${LIBPREFIX}$lib "
     373      fi
     374   done
     375elif [[ "$veget" != "false" ]] ; then
    377376   echo "Option -v $veget does not exist"
    378377   echo "Use ./makelmdz -h for more information"
     
    380379fi
    381380
     381#===============================================================================
    382382if [[ $io == ioipsl ]]
    383383then
     
    453453########################################################################
    454454
    455 dimension=`echo $dim | wc -w`
    456 echo dimension $dimension
    457 
    458 if (( $dimension == 3 ))
    459 then
    460   cd $LIBFGCM/grid
    461   \rm fxyprim.h
    462   cp -p fxy_${grille}.h fxyprim.h
     455if (( $dimc == 3 )) ; then
     456   cd $LIBFGCM/grid
     457   \rm fxyprim.h
     458   cp -p fxy_${grille}.h fxyprim.h
     459   filtre="FILTRE=$filtre"
     460   INCLUDE="$INCLUDE "'-I$(LIBF)/dyn3d${FLAG_PARA} '
     461elif (( $dimc == 2 )) ; then
     462   filtre="FILTRE= L_FILTRE= "
     463   INCLUDE="$INCLUDE "'-I$(LIBF)/dyn2d'
     464elif (( $dimc == 1 )) ; then
     465   filtre="L_DYN= DYN= FILTRE= L_FILTRE= DIRMAIN=phy$physique "
     466   INCLUDE="$INCLUDE "'-I$(LIBF)/dyn3d' # Pas tres propre
    463467else
    464   echo "Probleme dans les dimensions de la dynamique !!"
    465   echo "Non reactive pour l'instant !!!"
    466 fi
    467 
    468 ######################################################################
    469 # Gestion du filtre qui n'existe qu'en 3d.
    470 ######################################################################
    471 
    472 if (( `expr $dimc \> 2` == 1 ))
    473 then
    474    filtre="FILTRE=$filtre"
    475 else
    476    filtre="FILTRE= L_FILTRE= "
    477 fi
    478 echo MACRO FILTRE $filtre
    479 
    480 echo $dimc
     468   echo Dimension dimc=$dimc pas prevu ; exit
     469fi
    481470
    482471######################################################################
    483472# Creation du suffixe de la configuration
    484473######################################################################
    485 
    486474
    487475SUFF_NAME=_${dim_full}
     
    531519########################################################################
    532520cd $LMDGCM
     521
    533522find libf -name '*.[Fh]' -print > tmp77
    534523find libf -name '*.[Fh]' -exec egrep -i " *use *ioipsl" {} \; -print > tmp90
     
    560549
    561550# library directory name:
    562 if [[ "$parallel" == "none" ]]
    563 then
    564   nomlib=${arch}_${physique}_${dim_full}_${grille}_${compil_mod}
    565 else
    566   nomlib=${arch}_${physique}_${dim_full}_${grille}_${compil_mod}_${FLAG_PARA}
    567 fi
     551nomlib=`echo ${arch}_${physique}_${dim_full}_${grille}_${compil_mod}_parall${parallel}_${CPP_KEY}_${FLAG_PARA} | sed -e 's/ //g' -e 's/-//g ' | sed -e 's/CPP_//g'`
     552echo $nomlib
    568553
    569554if [[ ! -d "${LIBOGCM}/${nomlib}" ]]
     
    585570  INCLUDE="$INCLUDE"' -I$(LIBF)/phy'"$physique"
    586571fi
    587 INCLUDE="$INCLUDE"' -I$(LIBF)/dyn'${dimc}'d'$FLAG_PARA' -I'${LIBOGCM}/${nomlib}
     572INCLUDE="$INCLUDE"' -I'${LIBOGCM}/${nomlib}
    588573
    589574# ranlib utility (check it exists or else default to ls)
     
    645630DIM=$dimc \
    646631FLAG_PARA=$FLAG_PARA \
    647 L_ADJNT="$adjnt" \
     632L_ADJNT=$adjnt \
    648633L_COSP="$lcosp" \
    649634L_CHIMIE="$libchimie" \
     
    660645PROG=$code
    661646
     647
    662648if [[ -r $LIBFGCM/grid/dimensions.h ]]
    663649then
Note: See TracChangeset for help on using the changeset viewer.