Changeset 311 for LMDZ.3.3/trunk/makegcm


Ignore:
Timestamp:
Jan 22, 2002, 12:21:47 PM (23 years ago)
Author:
lmdzadmin
Message:

Inclusions des modifs faites dans la branche couplée pour le VPP
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/trunk/makegcm

    r309 r311  
    1212set filtre=filtrez
    1313set grille=reg
     14set couple=false
     15set veget=true
    1416########################################################################
    1517# path a changer contenant les sources et les objets du modele
     
    2931  setenv LIBOGCM "`pwd`/lib"
    3032  setenv IOIPSLDIR $LIBOGCM
     33  setenv MODIPSLDIR $LIBOGCM
    3134  cd $localdir
    3235  if ( `hostname` == rhodes ) then
     
    4144    endif
    4245  endif
    43   \cp libf/phylmd/oasis.F libf/phylmd/oasis.dummy
    44   \cp libf/phylmd/oasis.true libf/phylmd/oasis.F
    4546else
    4647  if ( ! $?LMDGCM ) then
     
    5657    echo for instance: "setenv IOIPSLDIR /usr/myself/ioipsl" in .cshrc
    5758    exit
     59  else
     60      setenv MODIPSLDIR $IOIPSLDIR
    5861  endif
    5962  if ( ! $?NCDFLIB ) then
     
    7073set model=$LMDGCM
    7174set libo=$LIBOGCM
    72 
    73 #Force/couple
    74 set COUPLE=0
    75 set ocean=`grep '^      parameter (ocean' libf/phylmd/physiq.F | awk -F\' '{print $2}'`
    76 banner $ocean
    77 if ($ocean == couple) then
    78   set COUPLE=1
    79 endif
    80 
    8175
    8276########################################################################
     
    170164   set optimbis=" "
    171165   set optim90=" -fast -fixed "
    172    set optimtru90=" -fast -free"
    173    set opt_link="-lf77compat -L$IOIPSLDIR -lioipsl  -L$NCDFLIB -lnetcdf"
     166   set optimtru90=" -fast -free "
     167   set opt_link="-lf77compat -L$MODIPSLDIR -lsechiba -lparameters -lstomate -lioipsl -L$NCDFLIB -lnetcdf "
    174168   set mod_loc_dir=$localdir
    175169   set mod_suffix=mod
     
    185179   set optimbis=" -Wp,-DNC_DOUBLE -Ad -Z $LMDGCM/listage"
    186180   set optim90="$optim $optimbis -X9 -w"
    187    if $COUPLE then
    188      set opt_link="-Wg,-c $MODIPSLDIR/liboasis2.4_mpi2.a /usr/lang/mpi2/lib64/libmpi.a /usr/lang/mpi2/lib64/libmp.a /usr/local/lib/lib64/libnetcdf_cc_31.a -L$MODIPSLDIR -lioipsl"
    189      set oplink="-Wl,-t,-P,-dy "
    190    else
    191      set opt_link="-Wg,-c /usr/local/lib/lib64/libnetcdf_cc_31.a -L$MODIPSLDIR -lioipsl"
    192      set oplink="-Wl,-t,-dy "
    193    endif
    194181   set mod_loc_dir=$MODIPSLDIR
    195182   set mod_suffix=mod
     
    199186else if $LINUX then
    200187   set optim="-fast "
    201    set optim90=" -fast -module $libo"
    202    set optimtru90=" -fast -c -Mfree -module /d3/fairhead/sechiba/ioipsl"
    203    set opt_link=" -Mfree -L/usr/local/pgi/linux86/lib -lpgf90 -lpgftnrtl -lpghpf -lpghpf2 -L$NCDFLIB -lnetcdf -L$IOIPSLDIR -lioipsl -Wl,-Bstatic "
    204    set mod_loc_dir=$IOIPSLDIR
     188   set optim90=" -fast "
     189   set optimtru90=" -fast -c -Mfree -module $MODIPSLDIR "
     190   set opt_link=" -Mfree -L /usr/local/pgi/linux86/lib -lpgf90 -lpgftnrtl -lpghpf -lpghpf2 -L$MODIPSLDIR -lsechiba -lparameters -lstomate -L$NCDFLIB -lnetcdf -lioipsl -Wl,-Bstatic -L/usr/lib/gcc-lib/i386-linux/2.95.2/"
     191   set mod_loc_dir=$MODIPSLDIR
    205192   set mod_suffix=mod
    206193else if $NEC then
     
    209196   set optim="$optim90"
    210197   set optimbis=" "
    211    set opt_link=" -C hopt -float0 -ew -P static -L$IOIPSLDIR -lioipsl  -L/u/rech/psl/rpsl003/IOIPSL -lnetcdf_i8r8_v "
     198   set opt_link=" -C hopt -float0 -ew -P static -L$MODIPSLDIR -lioipsl  -L$NCDFLIB -lnetcdf_i8r8_v "
    212199   set mod_loc_dir="."
    213200   set mod_suffix="mod"
    214201else if $XNEC then
    215    set optim90=' -clear -R5 -C vopt -float0 -ew -P static -Wf,"-pvctl loopcnt=40000 fullmsg noassume "'
    216    set optimtru90=' -clear -R5 -f4 -C vopt -float0 -ew -P static -Wf,"-pvctl loopcnt=40000 fullmsg noassume "'
     202   set optim90=" -clear $OPTIMI -float0 -ew -R5 $OPT_STACK"
     203   set optimtru90=" -clear -f4 $OPTIMI -float0 -ew -R2 -R3 -R4 -R5 $OPT_STACK"
    217204   set optim="$optim90"
    218205   set optimbis=" "
    219    if $MODIPSL then
    220      if $COUPLE then
    221        set opt_link="-L$IOIPSLDIR -lsxioipsl -loasis2.4_mpi2 -float0 -ew -P static -I$NCDFINC $NCDFLIB "
    222      else
    223        set opt_link="-L$IOIPSLDIR -lsxioipsl -float0 -ew -P static -I$NCDFINC $NCDFLIB "
    224      endif
    225      set mod_loc_dir="./"
    226    else
    227      set opt_link=" -C hopt -float0 -ew -P static -L$IOIPSLDIR -lsxioipsl -L /home/rech/psl/rpsl003/IOIPSL -lnetcdf_i8r8_v -I$NCDFINC "
    228      set mod_loc_dir="."
    229    endif
    230206   set mod_suffix="mod"
    231 
    232207else
    233208   set optim=""
     
    307282           parametrisations physiques dans le repertoire:
    308283            $LMDGCM/libf/phyPHYS
     284
     285-c false|true
     286           pour selectionner le mode force (par defaut) ou couple
     287
     288-v true|false
     289           pour selectionner la vegetation (par defaut) ou non
    309290
    310291-g grille  selectionne le type de grille qu'on veut utiliser.
     
    362343        set grille="$2" ; shift ; shift ; goto top
    363344
     345     case -c
     346        set couple="$2" ; shift ; shift ; goto top
     347
     348     case -v
     349        set veget="$2" ; shift ; shift ; goto top
     350
    364351     case -t
    365352        set ntrac=$2 ; shift ; shift ; goto top
     
    384371           setenv PARALLEL 2
    385372           set optim=" -g -C "
     373           set optim=" -g "
     374           set optim90=" -fixed -g -C "
    386375           set optim90=" -fixed -g "
    387            set optimtru90=" -free -g "
     376           set optimtru90=" -free -g -C "
     377#           set optim=" -g "
     378#           set optim90=" -fixed -g "
     379#           set optimtru90=" -free -g "
    388380        else if $CRAY then
    389381           set optim="$optim"" -g "
    390382           set optim90="$optim90"" -G1 "
    391383        else if $LINUX then
    392            set optim="$optim"" -g -Mbounds "
    393            set optim90="$optim90"" -g -Mbounds "
     384           set optim="$optim"" -g -Mbounds -C "
     385           set optim90="$optim90"" -g -Mbounds -C "
    394386        else
    395387           echo pas d option debug predefinie pour cette machine
     
    403395   endsw
    404396endif
    405 
    406 echo apres les opts dim $dim
    407397
    408398########################################################################
     
    436426########################################################################
    437427
    438 \rm tmp ; touch tmp
    439 \rm tmp90 ; touch tmp90
     428\rm -f tmp ; touch tmp
     429\rm -f tmp90 ; touch tmp90
    440430foreach i ( $optim )
    441431   echo $i | sed -e 's/\"//g' -e "s/\'//g" -e 's/-//g'  >> tmp
     
    451441   set nomlib=DEC
    452442endif
    453 echo dimension avant sed $dim
    454443if ( $IBM ) then
    455444   set dim=`echo $dim | sed -en 's/[^0-9]/ /g'`
    456445   set dim_=`echo $dim | sed -en 's/[^0-9]/_/g'`
    457 else if ( $SUN || $XNEC ) then
     446else if ( $SUN ) then
    458447   set dim=`echo $dim | sed -e 's/[^0-9]/ /g'`
    459448   set dim_=`echo $dim | sed -e 's/[^0-9]/_/g'`
     
    502491echo "Voulez-vous vraiment continuer?"
    503492if ( $< == "oui" ) then
    504 \rm $libf/grid/dimensions.h
     493\rm -f $libf/grid/dimensions.h
    505494else
    506495exit
     
    524513
    525514set dimension=`echo $dim | wc -w`
    526 echo dimension $dimension dim $dim
     515echo dimension $dimension
    527516if ( $dimension == 1 ) then
    528517echo pas de dynamique
     
    542531
    543532if ( -f $libf/phy$physique/raddim.h ) then
    544 if ( -f $libf/phy$physique/raddim.$dimh.h ) then
    545 \rm $libf/phy$physique/raddim.h
    546 cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h
    547 echo $libf/phy$physique/raddim.$dimh.h
    548 cat $libf/phy$physique/raddim.$dimh.h
    549 cat $libf/phy$physique/raddim.h
    550 else
    551 echo On peut diminuer la taille de l executable en creant
    552 echo le fichier $libf/phy$physique/raddim.$dimh.h
    553 \cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h
    554 endif
     533 if ( -f $libf/phy$physique/raddim.$dimh.h ) then
     534  \rm -f $libf/phy$physique/raddim.h
     535  cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h
     536  echo $libf/phy$physique/raddim.$dimh.h
     537  cat $libf/phy$physique/raddim.$dimh.h
     538  cat $libf/phy$physique/raddim.h
     539 else
     540  echo On peut diminuer la taille de l executable en creant
     541  echo le fichier $libf/phy$physique/raddim.$dimh.h
     542  \cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h
     543 endif
    555544endif
    556545
     
    568557echo $dimc
    569558
     559########################################################################
     560#  utilisation des vraies routines de couplage si on est en couple
     561########################################################################
     562if ( $couple == 'true' ) then
     563  banner couple
     564  pwd
     565  if ( `diff $libf/phylmd/oasis.F $libf/phylmd/oasis.true | wc -w` ) then
     566   \cp $libf/phylmd/oasis.F $libf/phylmd/oasis.dummy
     567   \cp $libf/phylmd/oasis.true $libf/phylmd/oasis.F
     568  endif
     569else
     570  if ( `diff $libf/phylmd/oasis.F $libf/phylmd/oasis.dummy | wc -w` ) then
     571   \cp $libf/phylmd/oasis.F $libf/phylmd/oasis.true
     572   \cp $libf/phylmd/oasis.dummy $libf/phylmd/oasis.F
     573  endif
     574endif
    570575########################################################################
    571576#  Avant de lancer le make, on recree le makefile si necessaire
     
    618623   set f77=frt
    619624   set f90=$f77
     625   if ($couple == true) then
     626     set opt_link="-Wg,-c $MODIPSLDIR/liboasis2.4_mpi2.a /usr/lang/mpi2/lib64/libmpi.a /usr/lang/mpi2/lib64/libmp.a /usr/local/lib/lib64/libnetcdf_cc_31.a -L$MODIPSLDIR -lioipsl"
     627     set oplink="-Wl,-t,-P,-dy "
     628   else
     629     set opt_link="-Wg,-c /usr/local/lib/lib64/libnetcdf_cc_31.a -L$MODIPSLDIR -lioipsl"
     630     set oplink="-Wl,-t,-dy "
     631   endif
     632   if ($veget == true) then
     633     set opt_link="$opt_link -lsechiba -lparameters -lstomate -lioipsl /usr/local/lib/lib64/libnetcdf_cc_31.a"
     634   endif
    620635else if $CRAY then
    621636   set f77=f90
     
    630645   set f77=f90
    631646   set f90=f90
     647   set opt_link="-L$MODIPSLDIR"
     648   if ($veget == true) then
     649     set opt_link="$opt_link -lsechiba -lparameters -lstomate"
     650   endif
     651   if ($couple == true) then
     652     set opt_link="$opt_link -lioipsl -loasis2.4_mpi2 -float0 -ew -P static $NCDFLIB "
     653   else
     654     set opt_link="$opt_link -L$MODIPSLDIR -lioipsl -float0 -ew -P static $NCDFLIB "
     655   endif
     656   set mod_loc_dir="./"
    632657else if $XNEC then
    633658   set f77=sxmpif90
    634659   set f90=sxmpif90
     660   if $MODIPSL then
     661     set opt_link="-L$MODIPSLDIR"
     662     if ($veget == true) then
     663       set opt_link="$opt_link -lsxsechiba -lsxparameters -lsxstomate"
     664     endif
     665     if ($couple == true) then
     666       set opt_link="$opt_link -lsxioipsl -loasis2.4_mpi2 -float0 -ew -P static $NCDFLIB "
     667     else
     668       set opt_link="$opt_link -lsxioipsl -float0 -ew -P static $NCDFLIB "
     669     endif
     670   else
     671     set opt_link=" -C hopt -float0 -ew -P static -L$MODIPSLDIR -lsxsechiba -lsxparameters -lsxstomate -lsxioipsl $NCDFLIB -I$NCDFINC "
     672   endif
     673   set mod_loc_dir="./"
    635674else
    636675   set f77=f77
     
    649688set make="make -k RANLIB=ranlib"
    650689else if $XNEC then
    651 set make="/usr/local/bin/gmake RANLIB=ls"
    652 set make="/usr/freeware/bin/gmake RANLIB=ls"
     690set make="gmake RANLIB=ls"
    653691else
    654692set make="make RANLIB=ranlib"
     
    681719
    682720#
    683 # Encore un test temporaire: probleme de compilation sur VPP
    684 # l'optimisation de startvar se passe mal
    685 #
    686 if ($code == 'create_etat0' && $VPP) then
    687    if ( ! -f $libo/libdyn3d.a ) then
    688      echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
    689      \rm $libf/grid/dimensions.h                                             
    690      exit                       
    691    endif
    692    set optim=" -Wv,-Of,-ilfunc"
    693    set optimbis=" -Psia -Aa -Wv,-m3 -Wp,-DVPP -Z $LMDGCM/listage"
    694    set optim90="$optim""$optimbis"" -X9 -w"
    695    set opt_link="-L$IOIPSLDIR -lioipsl -L$NCDFLIB -lnetcdf"
    696    touch $LMDGCM/libf/dyn3d/startvar.F
    697    touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
    698 endif
    699 
    700 #
    701721# etat0_netcdf a besoin d'info de la physique
    702722# A revoir
     
    717737 \cp $IOIPSLDIR/*.mod $libo
    718738else if $SUN then
    719  set optim90=" $optim90 -M$libo "
    720  set optimtru90=" $optimtru90 -M$libo "
     739 set optim90=" $optim90 -M$libo -M$MODIPSLDIR "
     740 set optimtru90=" $optimtru90 -M$libo -M$MODIPSLDIR "
    721741 set optim="$optim90"
    722  \cp /d3/fairhead/sechiba_sun/parameters/*.mod $libo
    723  \cp /d3/fairhead/sechiba_sun/sechiba/*.mod $libo
    724  \cp /d3/fairhead/sechiba_sun/stomate/*.mod $libo
    725742 \cp $IOIPSLDIR/*.mod $libo
    726743else if $NEC then
     
    730747 set optimtru90=" $optimtru90 -I$libo "
    731748else if $LINUX then
    732  set optim90=" -fast -module $libo "
     749 set optim90=" $optim90 -module $libo "
    733750 set optim="$optim90"
    734751 set mod_loc_dir=$libo
     
    796813PROG=$code
    797814
    798 \rm $libf/grid/dimensions.h
    799 if $MODIPSL then
    800   \cp libf/phylmd/oasis.F libf/phylmd/oasis.true
    801   \cp libf/phylmd/oasis.dummy libf/phylmd/oasis.F
    802 endif
     815\rm -f $libf/grid/dimensions.h
Note: See TracChangeset for help on using the changeset viewer.