-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compile failure for Intel #93
Comments
Hi @DJDavies2 - which version of ifort are you using? I am using
and I don't see this error. |
You're right to raise this though. The documentation is pretty clear:
The |
I am using Ifort 2019, a bit old unfortunately. |
Yes, I am used to signing my changes in the source code itself ;-)
The bad idea in ectrans was to design interfaces with implicit declarations for arrays, allowing non-contiguous data arrays, while in practice we rarely use non-contiguous arrays. The consequence is that compilers will not make use of prefetching, and this will have a detrimental impact on the performance.
We should use contiguous arrays as much as possible, either by the mean of CONTIGUOUS attribute (the easiest way, now) or even better by declaring arrays in the F77 style.
…----- Météo-France -----
EL KHATIB Ryad
DESR/CNRM/GMAP/ALGO
***@***.***
Fixe : +33 561078466
De: "Sam Hatfield" ***@***.***>
À: "ecmwf-ifs/ectrans" ***@***.***>
Cc: "ryad el khatib" ***@***.***>, "Mention"
***@***.***>
Envoyé: Mercredi 1 Mai 2024 16:05:58
Objet: Re: [ecmwf-ifs/ectrans] Compile failure for Intel (Issue #93)
You're right to raise this though. The [
https://www.ibm.com/docs/en/xffbg/121.141?topic=attributes-contiguous-fortran-2008
| documentation ] is pretty clear:
> An array pointer with the CONTIGUOUS attribute can only be pointer associated
> with a contiguous target.
The CONTIGUOUS statements were introduced in commit [
635f9bb
| 635f9bb ] . This commit contains changes imported from the IFS, and I think [
https://github.com/RyadElKhatibMF | @RyadElKhatibMF ] wrote this originally. I
noticed that ZGTF in FTDIR_CTL has CONTIGUOUS but not ZGTF in FTINV_CTL . So I
wonder if we actually need CONTIGUOUS at all. Any thoughts [
https://github.com/RyadElKhatibMF | @RyadElKhatibMF ] ?
—
Reply to this email directly, [
#93 (comment) | view
it on GitHub ] , or [
https://github.com/notifications/unsubscribe-auth/AYEAC4JGP5HSSPKYHWZ5Z7DZADZENAVCNFSM6AAAAABG4BMSCGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBYGUYTIMJWHA
| unsubscribe ] .
You are receiving this because you were mentioned. Message ID:
***@***.***>
|
Thanks for this Ryad. I realise I misunderstood the documentation.
Both targets in this case, I also noticed some other people reporting compilation bugs for contiguous pointers in fairly recent versions of ifort. Therefore I think we have to declare this a bug in ifort 2019. @DJDavies2 is there no way you can update your ifort version? I would rather not add a preprocessing macro to remove |
I cannot update ifort myself, I don't have the system rights to do that. They will be updated at some point, but the timescale is months if not years as things stand. If you don't want to have this sort of change that is completely understandable. I can keep these sorts of changes on a branch in my github repository if you would prefer to keep them off develop. |
Fair enough. Yes, sorry about that. What you could do is run a simple find-and-replace across the source tree replacing |
Okay, I will look into that. I will close this issue. |
I am getting this compile failure with ifort for the develop branch:
/home/h01/frwd/cylc-run/mo-bundle-build-base-latest/share/make_mo__spice_intel_debug/ectrans/src/trans/generated/ectrans_dp/internal/ftdir_ctl_mod.F90(147): error #5558: A pointer with the CONTIGUOUS attributes is being made to a non-contiguous target
ZGTF => ZGTF_STACK(:,:)
--^
compilation aborted for /home/h01/frwd/cylc-run/mo-bundle-build-base-latest/share/make_mo__spice_intel_debug/ectrans/src/trans/generated/ectrans_dp/internal/ftdir_ctl_mod.F90 (code 1)
gmake[2]: *** [ectrans/src/trans/CMakeFiles/ectrans_dp.dir/generated/ectrans_dp/internal/ftdir_ctl_mod.F90.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[1]: *** [ectrans/src/trans/CMakeFiles/ectrans_dp.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
The text was updated successfully, but these errors were encountered: