#!/bin/csh # # $Header$ # # FH : on ne crée plus le fichier arch.mk qui est supposé exister par # FH : ailleurs. # FH : ultérieurement, ce fichier sera pré-existant pour une série # FH : de configurations en versions optimisées et debug qui seront # FH : liés (ln -s) avec arch.mk en fonction de l'architecture. # FH : Pour le moment, cette version est en test et on peut créer les # FH : arch.mk en lançant une première fois makegcm7. # set verbose echo ######################################################################## # options par defaut pour la commande make ######################################################################## set dim="96x72x19" set physique=lmd set ntrac = 4 set filtre=filtrez set grille=reg set couple=false set veget=false set chimie=false set psmile=false set parallel=false set io=ioipsl set LMDGCM=$PWD set LIBOGCM=$LMDGCM/libo set LIBFGCM=$LMDGCM/libf ######################################################################## # Quelques initialisations de variables du shell. ######################################################################## set CPP_KEY="" set INCLUDE="" set LIB="" set adjnt="" ######################################################################## # lecture des options de mymake ######################################################################## top: if ($#argv > 0) then switch ($1:q) case -h: cat < YM desactive pour le traitemement en parallele ###################################################################### #if ( -f $libf/phy$physique/raddim.h ) then # if ( -f $libf/phy$physique/raddim.$dimh.h ) then # \rm -f $libf/phy$physique/raddim.h # cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h # echo $libf/phy$physique/raddim.$dimh.h # cat $libf/phy$physique/raddim.h # else # echo On peut diminuer la taille de l executable en creant # echo le fichier $libf/phy$physique/raddim.$dimh.h # \cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h # endif #endif ###################################################################### # Gestion du filtre qui n'existe qu'en 3d. ###################################################################### if ( `expr $dimc \> 2` == 1 ) then set filtre="FILTRE=$filtre" else set filtre="FILTRE= L_FILTRE= " endif echo MACRO FILTRE $filtre echo $dimc ###################################################################### # Creation du suffixe de la configuration ###################################################################### set SUFF_NAME=_${dim_full} set SUFF_NAME=${SUFF_NAME}_t${ntrac} if ( "$parallel" == 'true' ) then set SUFF_NAME=${SUFF_NAME}_para set DYN=dyn${dimc}dpar else set SUFF_NAME=${SUFF_NAME}_seq set DYN=dyn${dimc}d endif if ( $veget == "true" ) then set SUFF_NAME=${SUFF_NAME}_orch endif if ( $couple != "false" ) then set SUFF_NAME=${SUFF_NAME}_couple endif if ( $chimie == "true" ) then set SUFF_NAME=${SUFF_NAME}_inca endif ######################################################### # On adapte certains include à F90 (mener a disparaitre) ######################################################### #sed -e 's/^c/\!/' $libf/grid/dimensions.h >! $libf/grid/dimensions90.tmp #if ( ! -f $libf/grid/dimensions90.h || `diff $libf/grid/dimensions90.tmp $libf/grid/dimensions90.h | wc -w` ) then # \mv $libf/grid/dimensions90.tmp $libf/grid/dimensions90.h #endif #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^ s/) {if (NR > 1) print p0," &"; sub (" s"," \\&")} else { if (NR > 1) print p0 } p0=$0 } END { print p0}' $libf/dyn3d/paramet.h >! $libf/dyn3d/paramet90.tmp #if ( ! -f $libf/dyn3d/paramet90.h || `diff $libf/dyn3d/paramet90.tmp $libf/dyn3d/paramet90.h | wc -w` ) then # \mv $libf/dyn3d/paramet90.tmp $libf/dyn3d/paramet90.h #endif #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^ \./) {if (NR > 1) print p0," &"; sub (" \."," \\&")} else { if (NR > 1) print p0 } p0=$0 } END { print p0}' $libf/dyn3d/control.h >! $libf/dyn3d/control.tmp #if ( ! -f $libf/dyn3d/control.inc || `diff $libf/dyn3d/control.tmp $libf/dyn3d/control.inc | wc -w` ) then # \mv $libf/dyn3d/control.tmp $libf/dyn3d/control.inc #endif #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^ S/) {if (NR > 1) print p0," &"; sub (" S"," \\&")} else { if (NR > 1) print p0 } p0=$0 } END { print p0}' $libf/phylmd/YOMCST.h >! $libf/phylmd/YOMCST.tmp #if ( ! -f $libf/phylmd/YOMCST.inc || `diff $libf/phylmd/YOMCST.tmp $libf/phylmd/YOMCST.inc | wc -w` ) then # \mv $libf/phylmd/YOMCST.tmp $libf/phylmd/YOMCST.inc #endif #awk 'BEGIN {} { sub ("^c","\!") ; if ($0 ~ /^ S/) {if (NR > 1) print p0," &"; sub (" S"," \\&")} else { if (NR > 1) print p0 } p0=$0 } END { print p0}' $libf/phylmd/clesphys.h >! $libf/phylmd/clesphys.tmp #if ( ! -f $libf/phylmd/clesphys.inc || `diff $libf/phylmd/clesphys.tmp $libf/phylmd/clesphys.inc | wc -w` ) then # \mv $libf/phylmd/clesphys.tmp $libf/phylmd/clesphys.inc #endif ######################################################### cd $LMDGCM set config_fcm="config.fcm" rm -f $config_fcm touch $config_fcm rm -f bin/${code}${SUFF_NAME}.e rm -f arch.fcm echo "%ARCH $arch" >> $config_fcm echo "%INCDIR $INCLUDE" >> $config_fcm echo "%LIB $LIB" >> $config_fcm echo "%ROOT_PATH $PWD" >> $config_fcm echo "%LIBF $LIBFGCM" >> $config_fcm echo "%LIBO $LIBOGCM" >> $config_fcm echo "%DYN $DYN" >> $config_fcm echo "%PHYS phy${physique}" >> $config_fcm echo "%CPP_KEY $CPP_KEY" >> $config_fcm echo "%EXEC $code" >> $config_fcm echo "%SUFF_NAME $SUFF_NAME" >> $config_fcm ln -s machine/arch-${arch}.fcm arch.fcm ./build_gcm rm -f tmp_src rm -f config ln -s $LIBOGCM/${arch}${SUFF_NAME}/.config config ln -s $LIBOGCM/${arch}${SUFF_NAME}/.config/tmp tmp_src #\rm -f $libf/grid/dimensions.h