Fonctions d'interrogation sur l'existance d'un objet

new art 6


associated (pointer [, target])

test de l'état d'un pointeur catégorie: A arguments: * résultat: l

Quand target est présent, renvoie la valeur logique vrai lorsque le pointeur pointer est associé à la cible target.
Quand target est absent, fournit la valeur logique vrai lorsque le pointeur pointer est associé à une cible quelconque.
Après exécution de nullify(pointer,target), la fonction associated(pointer,target) vaut faux.

Exemples:

real, pointer :: ptr
print *, associated(ptr) ! valeur indéfinie (affiche .true. ou .false.)
nullify(ptr)
print *, associated (ptr) ! affiche .false.
allocate(ptr)
print *, associated (ptr) ! affiche .true.
deallocate(ptr)
print *, associated (ptr) ! valeur indéfinie (affiche .true. ou .false.)


present (a)

présence d'un paramètre optionnel catégorie: A arguments: * résultat: l

Renvoie la valeur vrai si le paramètre optionnel de nom a est présent dans l'appel de la procédure actuelle.
Si un paramètre formel optionnel est utilisé à son tour dans l'appel d'une autre procédure, il conservera la même valeur de l'attribut present (vrai pour présent, faux pour absent) dans cette nouvelle procédure.

Exemples:

subroutine exemple(min,max)
integer, intent(in) :: min
integer, intent(in), optional :: max
logical :: existe
existe = present(max)
print *, existe
! affiche .true. si le deuxième argument max était présent
dans l'appel du sous-programme: call exemple(arg1,arg2)
! affiche .false. si l'appel etait fait avec un seul argument call exemple(arg1)


Retour à la page de présentation