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
→
Due sezioni critiche prive di nome ('!$OMP CRITICAL') in parti distinte del programma condividono lo stesso lock globale, serializzando inutilmente thread che operano su dati del tutto indipendenti.
OPENMP_CRITICAL_COLLISION
→
Più thread OpenMP aggiornano contemporaneamente la stessa variabile senza averla inclusa nella clausola 'REDUCTION' o senza protezione ATOMIC/CRITICAL, provocando risultati numerici errati e non deterministici.
OPENMP_RACE_CONDITION
→
Ciascun thread secondario OpenMP ha uno stack limitato indipendente (default 2-4MB); variabili automatiche o array locali nei loop paralleli superano tale limite richiedendo l'impostazione 'export OMP_STACKSIZE=64M'.
OPENMP_STACK_OVERFLOW
→
La direttiva '!$OMP ATOMIC UPDATE' supporta solo forme di assegnazione elementari ('x = x + expr'); espressioni con chiamate di funzione non scalari generano errore di compilazione.
OPENMP_ATOMIC_UNSUPPORTED
→