Il costrutto 'DO CONCURRENT' dichiara formalmente al compilatore che tutte le iterazioni del ciclo sono reciprocamente indipendenti; se un'iterazione legge un valore scritto dall'iterazione precedente ('A(i) = A(i-1) + 1'), l'esecuzione parallela produce dati errati.
DO_CONCURRENT_DEPENDENCY
→
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.
DO_CONCURRENT_RACE
→
L'allocazione dinamica di un coarray ALLOCATABLE 'x(:,:)[:,:]' deve includere obbligatoriamente le parentesi quadre per la codimensione finale ('ALLOCATE(x(N, M)[*])').
COARRAY_ALLOCATE_CORANK_MISMATCH
→
Nei programmi paralleli con Coarrays (Fortran 2008), le immagini eseguibili entrano in stallo permanente se una chiamata a 'SYNC IMAGES(p)' attende un'immagine che sta eseguendo un altro ramo logico senza sincronizzarsi.
COARRAY_SYNC_DEADLOCK
→
Una transazione coarray tenta di comunicare con un'immagine remota che ha già terminato l'esecuzione ('STOP') o è andata in crash; richiede il controllo di 'STAT=STAT_STOPPED_IMAGE'.
COARRAY_STAT_STOPPED_IMAGE
→
Il buffer di memoria passato a 'MPI_SEND' o 'MPI_RECV' è dichiarato con un kind Fortran differente rispetto alla costante MPI passata (es. 'REAL(4)' inviato come 'MPI_REAL8'), causando troncamento o sovrascrittura di byte.
MPI_DATATYPE_MISMATCH_FORTRAN
→
Le direttive OpenACC per l'offloading su scheda video (NVIDIA CUDA / AMD ROCm) tentano di allocare su GPU array di dimensioni superiori alla VRAM disponibile sulla scheda grafica.
OPENACC_DEVICE_OOM
→
L'inserimento di una direttiva '!$OMP BARRIER' all'interno di un blocco IF eseguito solo da determinati thread blocca l'intero team in attesa permanente dei thread assenti.
OPENMP_BARRIER_DEADLOCK
→