Tuesday, December 18, 2007

How I Installed Whizard on our server

So, we have decided that Mark is going to use Pythia to generate his events.
We decided against Whizard, as there seems to be some issues with configuring it, that would probably take a long time to sort out.
The only problem with this is that Pythia doesn't contain beamstrahlung.
In Thorsten Kuhl's Z Higgs Paper, the beamstrahlung is simulated using CIRCE, so it seems like a good idea to use this.
I found plenty of documentation on CIRCE, including example code of how to interface pythia to CIRCE.
However, all the links to the source code are broken!
Whizard, however, does contain the CIRCE libraries, and since we had that installed on our previous server, i figured it couldn't be that difficult to install it on the new server.

There are instructions on how to install Whizard here, which seem to work fine.
Installing the prerequisites ocaml and omega, was a bit more problematic.

So, ocaml is a prerequisite for omega, so i had to install that first.
On our server, we are trying to keep everything neat by installing everything in it's own directory, ie rather than letting it install itself to the default directory (/usr/bin or whatever).
When i tried to do this with ocaml, omega couldn't find it (even when i put the libraries in LD_LIBRARY_PATH and everything), so i just let it install itself where it wanted to go.
Basically, this meant I just did:
>./configure
with no prefix options.
>make world
>make opt
>make opt.opt
>sudo make install

Right, so now it was time to try and install omega.
Omega needs the f95 compiler, which wasn't on the server.
I used the precompiled binaries from here.
Specifically, this one.
I then untarred this, and made a soft link to the executable "g95-install/bin/i686-pc-linux-gnu-g95" called "f95", and put this in the path.
You have to called it "f95" not "g95".
I have no idea why, or if this is a bad thing to do, but it seems to work.

Now you should be able to compile omega.
I did:
>./configure --prefix=$PWD
> make bin
> make f95
Then you need to set the following environment variable:
>export OMEGA_DIR="path_to_omega_directory"
which is needed by whizard.

Now I tried to install whizard.
I downloaded the tar file from here.
I untarred the file, and did:
> ./configure --prefix=$PWD
> make
You will then get an error that looks something like this:

In file ee_o.f90:367

call omega_scatter (amplitude_2, k, rho_in, rho_out, &
1
Error: Dummy procedure 'amplitude_2' at (1) must be PURE



This can be fixed by putting the word "PURE" in front of a few functions in 4 of the files in the processes_src directory.
You should be able to work out what to do from the output of grep:

ee_o.f90:321: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
ee_o.f90:347: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
ee_o.f90:410: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
ee_o.f90:524: ! MODIFIED 05/Sep/07 Mark Grimes - Added the following PURE keyword to get it to compile
nnbb_o.f90:465: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
nnbb_o.f90:491: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
nnbb_o.f90:554: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
nnbb_o.f90:668: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
nnh_o.f90:328: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
nnh_o.f90:354: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
nnh_o.f90:417: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
nnh_o.f90:531: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
ww_o.f90:349: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
ww_o.f90:375: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
ww_o.f90:438: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
ww_o.f90:552: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
zh_o.f90:316: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
zh_o.f90:342: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
zh_o.f90:405: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile
zh_o.f90:519: ! MODIFIED 05/Sep/07 Mark Grimes - Added this PURE keyword to get it to compile


Make these changes, and Whizard should compile.

No comments: