Skip to content

My "vecsize" patches have broken mg5amcnlo "launch" for the default Fortran madevent #629

@valassi

Description

@valassi

Hi @oliviermattelaer this is a bad one. Sorry, it seems that I had not tested my vecsize patches for the simplest thing, namely a Fortran madevent only. This is totally broken.

Using gpucpp 4a54a9af4c883b4384e4d754c550d9bb120bd415 (so before your latest patches, but I guess it makes no difference), something as simple as this fails

MG5_aMC>generate g g > t t~
MG5_aMC>output madevent CODEGEN_gg_tt
MG5_aMC>launch
...
Error detected in "generate_events run_01"
write debug file /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_gg_tt/run_01_tag_1_debug.log 
If you need help with this issue please contact us on https://answers.launchpad.net/mg5amcnlo
str : A compilation Error occurs when trying to compile /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_gg_tt/SubProcesses/P1_gg_ttx.
        The compilation fails with the following output message:
            gfortran -w -fPIC -O -fbounds-check -ffixed-line-length-132 -w -c symmetry.f -I../../Source/ -I../../Source/PDF/gammaUPC
            coupl.inc:34:43:
            
               34 |       DOUBLE COMPLEX GC_10(VECSIZE_MEMMAX), GC_11(VECSIZE_MEMMAX)
                  |                                           1
            Error: Explicit array shape at (1) must be constant of INTEGER type and not UNKNOWN type
            coupl.inc:36:29:
            
               36 |       COMMON/COUPLINGS/ GC_10, GC_11
                  |                             1
            Error: Symbol ‘gc_10’ at (1) has no IMPLICIT type
            coupl.inc:36:36:
            
               36 |       COMMON/COUPLINGS/ GC_10, GC_11
                  |                                    1
            Error: Symbol ‘gc_11’ at (1) has no IMPLICIT type
            coupl.inc:34:41:
            
               34 |       DOUBLE COMPLEX GC_10(VECSIZE_MEMMAX), GC_11(VECSIZE_MEMMAX)
                  |                                         1
            Error: Symbol ‘vecsize_memmax’ at (1) has no IMPLICIT type
            coupl.inc:34:41:
            
               34 |       DOUBLE COMPLEX GC_10(VECSIZE_MEMMAX), GC_11(VECSIZE_MEMMAX)
                  |                                         1
            Error: Symbol ‘vecsize_memmax’ at (1) has no IMPLICIT type
            make: *** [makefile:80: symmetry.o] Error 1
            
        Please try to fix this compilations issue and retry.
        Help might be found at https://answers.launchpad.net/mg5amcnlo.
        If you think that this is a bug, you can report this at https://bugs.launchpad.net/mg5amcnlo

The problem is ultimately vector.inc and the absence of include guards in Fortran #458

  • I wanted to define a parameter VECSIZE_MEMMAX in vector.inc
  • And then use this in various places including coupl.inc, clusters.inc, driver.f etc
  • The problem is that include 'vector.inc' is a Fortran command which does not go through the cpp preprocessor.. so it is a total nightmare to make sure that the parameter VECSIZE_MEMMAX is included excatly once...

Before my patch. the value eg 16384 was HARDCODED in each file. I guess we need to go back to something like that...

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions