#! /bin/bash #------------------------------ # makeles #------------------------------ # MMM must be defined #------------------------------ # A. Spiga 01/2009 #------------------------------ echo "Use -n if you don't want to recompile physics" echo "Use -p if you want the new LMD physics" # # SPECIAL CICLAD # donotcompilephys=0 phys="" while getopts "np" options; do case $options in n ) donotcompilephys=1;; ## do not recompile physics p ) phys="newphys_";; ## with new physics esac done # # LOCATIONS # here=$PWD whereliblmd=$here ############################################################## ############################################################## if [ ${donotcompilephys} -eq 0 ] then # # COMPILE PHYSICS # cd $MMM if [[ "${phys}" == "newphys_" ]] then makemeso -j -p else makemeso -j fi # #makemeso -rd < last > /dev/null folder=$PWD'/'$(more what_folder)'/WRFV2/' libphys_folder=$folder'mars_lmd/libo/' phymars_folder=$folder'mars_lmd/libf/phymars/' \rm what_folder 2> /dev/null # # GET liblmd GENERATED LIBRARY and INCLUDEs # echo $libphys_folder cp -rf ${libphys_folder}/liblmd.a ${whereliblmd}/ #cp -rf ${phymars_folder}/dimphys.h ${here}/modif_mars/ cp -rf ${phymars_folder}/dimphys.h ${here}/mars_lmd/libf/phymars/ #cp -rf ${folder}/call_meso_inifis.inc ${here}/modif_mars/ #cp -rf ${folder}/call_meso_physiq.inc ${here}/modif_mars/ cp -rf ${folder}/call_meso_inifis.inc ${here}/ cp -rf ${folder}/call_meso_physiq.inc ${here}/ #cp -rf ${folder}/inc/module_lmd_driver_output*.inc ${here}/modif_mars/ cp -rf ${folder}/inc/module_lmd_driver_output*.inc ${here}/inc/ #cp -rf ${phymars_folder}/wrf_output_2d.h ${here}/modif_mars/ #cp -rf ${phymars_folder}/wrf_output_3d.h ${here}/modif_mars/ cp -rf ${phymars_folder}/wrf_output_2d.h ${here}/mars_lmd/libf/phymars/ cp -rf ${phymars_folder}/wrf_output_3d.h ${here}/mars_lmd/libf/phymars/ fi ############################################################## ############################################################## cd $here ##------------------------------ ##------------------------------ ## ## MPI (dm) 64 bits ## ##TODO: le rendre adapte aux reponses du user a makemeso touch conf echo 3 >> conf ##echo 4 >> conf #openMP n'arrange pas beaucoup de le tps de calcul echo 1 >> conf ##------------------------------ ##------------------------------ ### SINGLE PROC 32 bits g95 #touch conf #echo 5 >> conf #echo 0 >> conf ## SINGLE PROC 64 bits #touch conf #echo 1 >> conf #echo 0 >> conf ### MPI (dm) 64 bits IFORT #echo IFORT IFORT IFORT IFORT #touch conf #echo 7 >> conf #echo 1 >> conf # # CONFIGURE # echo "configure..." #touch configure.wrf \rm configure.wrf ./configure < conf > /dev/null 2> /dev/null #./configure #sed s+"-lnetcdf"+"-lnetcdf -L$whereliblmd -llmd"+g configure.wrf | sed s+'mpif90 -f90=$(SFC)'+'/usr/lib64/openmpi/1.2.8-pgf/bin/mpif90'+g | sed s+'mpicc -cc=$(SCC)'+'/usr/lib64/openmpi/1.2.8-gcc/bin/mpicc -DMPI2_SUPPORT'+g > yeah ## WHERE_MPI must be defined sed s+"-lnetcdf"+"-lnetcdf -L$whereliblmd -llmd"+g configure.wrf | sed s+"mpif90"+"$WHERE_MPI/mpif90"+g | sed s+"mpicc"+"$WHERE_MPI/mpicc -DMPI2_SUPPORT"+g > yeah #sed s+"# -g"+"-fno-second-underscore # -g"+g configure.wrf | sed s+"-lnetcdf"+"-lnetcdf -L$whereliblmd -llmd"+g > yeah #sed s+"-lnetcdf"+"-lnetcdf -L$whereliblmd -llmd"+g configure.wrf | sed s+"#-g"+"-g"+g > yeah #sed s+"-lnetcdf"+"-lnetcdf -L$whereliblmd -llmd"+g configure.wrf > yeah mv yeah configure.wrf #### #### provoque des seg faults.... #### #sed s+"-fastsse"+"-fastsse -mcmodel=medium -Mlarge_arrays"+g configure.wrf > yeah #### TEST TEST #mv yeah configure.wrf sed s+"-fastsse"+" "+g configure.wrf > yeah #sed s+"-fastsse"+"-mcmodel=medium -Mlarge_arrays"+g configure.wrf > yeah ##marche pas # # sometimes fastsse is problematic # ##sed s+"-fastsse"+"-fastsse -mcmodel=medium"+g configure.wrf > yeah mv yeah configure.wrf #sed s+"-Mvect=noaltcode"+"#-Mvect=noaltcode"+g configure.wrf > yeah ; mv yeah configure.wrf #sed s+"-mp -Minfo=mp"+"-mp -Minfo=mp -mp=nonuma"+g configure.wrf > yeah #mv yeah configure.wrf #### OBLIGATOIRE POUR IFORT, OK AVEC LES AUTRES ??? a priori oui sed s+"-llmd"+"-llmd $NETCDF/lib/libnetcdf.a"+g configure.wrf > yeah mv yeah configure.wrf ############################################################# if [[ "${phys}" == "newphys_" ]] then sed s+"ARCH_LOCAL = "+"ARCH_LOCAL = -DNEWPHYS "+g configure.wrf > yeah mv -f yeah configure.wrf fi ############################################################# \rm conf # # COMPILE LES TEST CASE w/ LMD PHYSICS # touch modif_mars/module_lmd_driver.F \rm log_compile \rm log_error echo "compile LES WRF with LMD Mars physics... look log_compile and log_error" compile em_les > log_compile 2> log_error echo '***********************************' tail -n 20 log_error