Error: Shared variable modification in DO CONCURRENT without LOCAL or REDUCE clause at (1) – Fortran DO_CONCURRENT_RACE

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 comune

Diagnosi

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.

terminal
gfortran -Wall -Wextra -fcheck=all -g main.f90 -o app

Risoluzione

Risoluzione standard per Errore Fortran 2018: Shared variable in DO CONCURRENT without LOCAL clause

Difficoltà: mediaRischio: basso

Applicare la correzione al codice sorgente Fortran conforme agli standard Fortran 90/2003/2008/2018.

  1. Ispezionare la riga segnalata dal compilatore gfortran o ifx
  2. Verificare le dichiarazioni di tipo, specificatori IOSTAT o allocazioni di array
  3. Ricompilare ed eseguire con opzioni di controllo di integrità
terminal
gfortran -O2 -Wall main.f90 -o app

Domande 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

Schede correlate