Situation: As I have a Wintel 2k / Mathematica 3.0 environment. FeynArts3 and Form3 installations work w/o modification. FormCalc3 / Looptools2.1 has several issues related to the assumption of a native unix environment For GNU / CYGWIN: In order to make maximum use of out-of-the-box (unix based) scripts - I tried a Cygwin (w/GNU gcc & g77) environment - but per the Mathematica FAQs - 1. there are no out-of-the-box gcc Mathlink libraries - so I went back to the Mathlink instructions to use one of the 4 supported compilers. I chose to download the free commandline Borland 5.5 version. 2. but gcc has a libml32i2b.a library ?? and I need a c (and fortran) compiler to work with the FormCalc/LoopTool Fortran Libraries downloaded and installed the base and developer For CERNLIBs: the supplied libraries were built for: f77: Digital Visual Fortran V5.0-594-3382R C: Microsoft Visual C/C++ v.5.0 In order to compile the FormCalc generated code to link (run.exe) - I needed to get the source CERNLIB - and compile cygwin / g77 compatible fortran libraries of: lapack / blas, kern (tcgen & tcgens), and pdf tcgen had warnings / errors on: UBLOW & UBUNCH of utrans.F SORTTI & SORTTC in sortzv.F the Run.F core dumps due to 3D sets within pdfset.F in the spdf library 3 lines with ~ NSETFL(KPTY,KGRO,ISET) = 1 and MODECR(I,J,K) = MK I commented these out. For FormCalc 3.0: in ./compile creating executables - I created a makefile and changed the ./compile script to call it mcc does not exist in WinTel platforms - so I modified the makefile to use mprep.exe (.tm -> .c) also added proper CFLAG to point to cygwin libraries in ./configure (for executable generation) 1. include gcc linker command syntax: CFLAGS = -O6 -Wl,-Lc:/cygwin/lib -lml32i2b -lgdi32 $* in ./ReadData.tm & .c 1. had to handle mprep generated references to _fstrncpy -> strncpy (it couldn't find any library w/it - added a #define _fstrncpy) in ./ReadForm.c 1. had to handle mprep generated references to _fstrncpy -> strncpy (it couldn't find any library w/it - added a #define _fstrncpy) in ./ToFortran.c 1. needed to accomodate the large blocks 2. added line continuation code in ./ToForm.c 1. need to compile with BorlandC - get an error on ReadForm from FORM getting bad data - but the data is the same as w/gcc compiles - this is strange - suspect file streaming expected w/gcc is ignored in bcc which makes it work w/o cygwin loaded (and as I implemented it) from FORM getting bad data - but the data is the same as w/gcc compiles - FORM commands initiated by FormCalc.m didn't like filenames that weren't the MSDOS 8.3 - so I had to either: put it into a 8.3 compliant directory / filenames or hardcode the 'long names' modified to short names (I did the former where I could, the latter elsewhere) in ./FormCalc.m: 1. Took out the platform specific filenaming (in the .mak and FormCalc.m) 2. Added intermediate output files to fix some file streaming issues with WinTel (running outside cygwin) for ToForm - 'my<#>.frm', tmp<#>.frm', & 'fm<#>.frm' for ToFortran - 'ftn<#>.tmp' 3. Changed the execution commands from !... to Run[...] (for some reason the former didn't work) 4. Since I changed the toform, $FormCmd, and tofortran - I made the naming / syntax consistent 5. For name space error on reference to the 'temp' file directory in FormSetup - I used ./ 6. Extended the PageWidth to 4096 on ToForm and 180 on ToFortran - due to a line continuation errors (see ToFortran.c changes) 7. Moved the ModName definition up out of WriteSquaredME (and took it out of its 'Block[]') - since I used it when creating the intermediate output files 8. Added a 'FortranForm[]' to Write command in WriteBlock (this converts the -> to = on most output) 9. commented out display of res after running FORM & ReadForm in ./drivers/configure 1. hardcoded the LTDIR - environment variables not working properly 2. add a default of using the dcuhre library LOOPTOOLS = -L\$(LTDIR) -looptools -ldcuhre in ./drivers/2to3.F 1. initial compile problems on link w/brems models - some variables need definition in 2to3.F (per documentation): GAIN, MAXINTV, and those prefixed NODES_ also added DCUHRE and a commented out VEGAS in ./drivers/multigauss.F 1. initial compile problems on link w/brems models - options /recursive causes compile errors (deleted them) For LoopTools 2.1: in ./configure 1. included gcc linker command syntax: -L./ -looptools -Wl,-Lc:/cygwin/lib -lml32i2b -Lc:/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.3-5 -lg2c 2. changed CONF_MCCFLAGS = "-o" 3. changed CONF_MCC = "mprep.exe", and modified the CC sections 4. test -> test.exe (otherwise QEXT isn't set properly) in ./makefile.in 1. no mcc - put in mprep.exe, and modified the CC sections to accomodate this 2. for clean - added rm *.for in ff & fortran subdirectories in ./mma/LoopTool.tm 1. had to handle mprep generated references to _fstrncpy -> strncpy (it couldn't find any library w/it - added a #define _fstrncpy) in ./utils/F77.in 1. if needed (other than g77 compilers) - due to case insensitivity of Wintel cmds - changed .f to .for in utils/F77.in & changed the f77 to g77 on the final cmd line For GNUPlot & pnuglot: 1. GNUPlot for windows is WGNUPlot 2. some set commands needed to changed or removed in pnuglot 3. needed to change the file in / out to commands to use the GNUPlot.ini .ini file needs to be in the directory of the data file (where you run it) it outputs to runplt.plt 4. 8.3 character name is required for inputs too - so you need to rename the normal run.exe output files For convenience I created a FormCalc-example-eeHH.nb I modified DoPaint to Paint in the Mathematica NoteBook in it I also invoke the MSDOS batch command lines to: compile the fortran run.F run it and pull up the output then perform the ReadForm / LoopTools and plot the results in Mathematica and WGNUPlot Known Problems: 1. occasional fortran compile errors due to lack of a good line continuation from Mathematica or ToFortran.c it seems to leave the number of the replaced function at the end of the line and put the function name on the next continued line or it just continues w/o a - (when the falls < 180 and expansion > 220) 2. on ZZZZ, WWWW, & AAAA interactions - the size of the FORM result (res) is too large to display in a notebook need to read in the package only