Calcolo Numerico e Parallelo
Error: Shared variable modification in DO CONCURRENT without LOCAL or REDUCE clause at (1) – Fortran DO_CONCURRENT_RACE
In Fortran 2018 le variabili locali di supporto utilizzate all'interno di un loop 'DO CONCURRENT' devono essere dichiarate con la clausola 'LOCAL(temp)' o 'LOCAL_INIT(temp)' per evitare race condition.
Cosa significa questo errore?
In Fortran 2018 le variabili locali di supporto utilizzate all'interno di un loop 'DO CONCURRENT' devono essere dichiarate con la clausola 'LOCAL(temp)' o 'LOCAL_INIT(temp)' per evitare race condition.
Messaggio originale
Error: Shared variable modification in DO CONCURRENT without LOCAL or REDUCE clause at (1)Contesto e parole chiave
Alias
- Shared variable modification in DO CONCURRENT Fortran
Messaggi alternativi
- modifica variabile condivisa in DO CONCURRENT senza clausola LOCAL
Prodotti
- GNU Fortran (gfortran) / Intel Fortran (ifx) / LLVM Flang
Piattaforme
- Linux
- macOS
- Windows
Parole chiave
- Calcolo Numerico e Parallelo
- errore-fortran-do-concurrent-local-variable-sharing
- fortran
- fortran.parallelo.do-concurrent-local-variable-sharing
- gfortran
Cause possibili
Causa tecnica per Errore Fortran 2018: Shared variable in DO CONCURRENT without LOCAL clause
In Fortran 2018 le variabili locali di supporto utilizzate all'interno di un loop 'DO CONCURRENT' devono essere dichiarate con la clausola 'LOCAL(temp)' o 'LOCAL_INIT(temp)' per evitare race condition.
molto comuneDiagnosi
Diagnostica di compilazione e memoria per Errore Fortran 2018: Shared variable in DO CONCURRENT without LOCAL clause
Compilare con controlli di sicurezza estesi (-Wall -Wextra -fcheck=all -ffpe-trap=invalid,zero,overflow -g).
Come leggere il risultato. Attiva il controllo dei limiti degli array, overflow numerici e tracciamento puntatori a runtime.
gfortran -Wall -Wextra -fcheck=all -g main.f90 -o appRisoluzione
Risoluzione standard per Errore Fortran 2018: Shared variable in DO CONCURRENT without LOCAL clause
Applicare la correzione al codice sorgente Fortran conforme agli standard Fortran 90/2003/2008/2018.
- Ispezionare la riga segnalata dal compilatore gfortran o ifx
- Verificare le dichiarazioni di tipo, specificatori IOSTAT o allocazioni di array
- Ricompilare ed eseguire con opzioni di controllo di integrità
gfortran -O2 -Wall main.f90 -o appDomande frequenti
Come risolvere l'errore Errore Fortran 2018: Shared variable in DO CONCURRENT without LOCAL clause in Fortran?
In Fortran 2018 le variabili locali di supporto utilizzate all'interno di un loop 'DO CONCURRENT' devono essere dichiarate con la clausola 'LOCAL(temp)' o 'LOCAL_INIT(temp)' per evitare race condition.
Approfondimenti
- GNU Fortran (gfortran) Documentation / Fortran-Lang.org documentazione_ufficiale