Una classe che contiene procedure con associazione 'DEFERRED' (metodi virtuali puri non ancora implementati) deve essere dichiarata esplicitamente come 'TYPE, ABSTRACT :: base_t'.
DEFERRED_PROC_NON_ABSTRACT_TYPE
→
Procedure che utilizzano funzionalità Fortran 90+ (array assumed-shape 'A(:)', argomenti OPTIONAL, puntatori o funzioni che restituiscono array) richiedono un'interfaccia esplicita definita in un MODULE o blocco INTERFACE.
EXPLICIT_INTERFACE_REQUIRED
→
Il tentativo di associare un puntatore polimorfico generico 'CLASS(*)' a un tipo derivato specifico fallisce a runtime perché l'oggetto effettivo incapsulato è di un tipo differente.
UNLIMITED_POLYMORPHIC_CAST_FAIL
→
I file '.mod' non sono portabili tra versioni diverse del compilatore (es. gfortran 11 vs 14) o tra compilatori differenti (es. Intel ifort vs GCC gfortran); è necessario ricompilare i moduli con la stessa toolchain.
MOD_VERSION_MISMATCH
→
Un file sottomodulo (SUBMODULE) richiede la presenza del file '.smod' del modulo antenato; la mancata compilazione preventiva del modulo genitore genera errore di risoluzione.
SUBMODULE_PARENT_NOT_FOUND
→
La dichiarazione di ereditarietà 'TYPE, EXTENDS(base_t) :: derived_t' non trova il tipo base nello scope corrente perché il modulo che lo definisce non è stato importato con USE.
EXTENDS_PARENT_TYPE_NOT_FOUND
→
L'assegnazione 'ptr => func' fallisce a tempo di compilazione poiché la procedura target non possiede identica lista di parametri, tipi di ritorno o attributi di purezza.
PROC_POINTER_INTERFACE_MISMATCH
→
Due moduli inclusi con 'USE' esportano lo stesso identico identificatore; si risolve con la rinomina esplicita in fase di importazione: 'USE modA, compute_a => compute'.
AMBIGUOUS_SYMBOL_USE
→