Annexe B : procédures intrinsèques▲
12-1. Principales procédures intrinsèques élémentaires▲
-
ABS: retourne la valeur absolue de son argument. Pour un complexe, retourne sa norme : kitxmlcodeinlinelatexdvp\sqrt{x^2 + y^2}finkitxmlcodeinlinelatexdvpABS(-1) = 1 ;ABS(-1.5) = 1.5 ;ABS((3.,4.)) = 5.0 ; -
ACHAR : retourne le caractère de la table ASCII dont le rang est transmis en argument.
ACHAR(88) =
'X'; ACHAR(42) ='*'; -
ACOS: retourne l'arc cosinus en radians de son argument réel.ACOS(0.54030231) = 1.0 ; -
ADJUSTL : cadre à gauche la chaîne passée en argument : supprime les blancs en tête ; complète à droite par des blancs.
ADJUSTL(
' Fortran') ='Fortran ' -
ADJUSTR : cadre à droite la chaîne passée en argument : supprime les blancs en fin ; complète à gauche par des blancs.
ADJUSTR(
'Fortran ') =' Fortran'; -
AIMAG: retourne la partie imaginaire du complexe passé en argument.AIMAG((2.,3.)) = 3.0 ; -
AINT: tronque le réel passé en argument.AINT(2.783) = 2.0 ;AINT(-2.783) = -2.0 ; -
ANINT: retourne, sous forme d'un réel, l'entier le plus proche du réel transmis.ANINT(2.783) = 3.0 ;ANINT(-2.783) = -3.0 ; -
ASIN: retourne l'arc sinus en radians de son argument réel.ASIN(0.84147098) = 1.0 ; -
ATAN: retourne l'arc tangente en radians de son argument réel.ATAN(1.5574077) = 1.0 ; -
BIT_SIZE : retourne le nombre de bits utilisés pour la représentation de l'entier passé en argument.
BIT_SIZE(1) = 32 ;
-
BTEST : permet de tester la valeur d'un bit d'un entier : l'entier ainsi que la position du bit à tester sont passés en argument.
BTEST(8,3) =
.true.; BTEST(10,2) =.false.; -
CEILING: retourne l'entier immédiatement supérieur au réel transmis en argument.CEILING(3.7) = 4,CEILING(-3.7) = -3 ; -
CMPLX: retourne un complexe dont les parties réelle et imaginaire sont transmises en argument.CMPLX(-3.) =-3.0+0.i ;CMPLX(2,4.) = 2.0+4.0i ; -
CONJG: retourne le complexe conjugué de celui passé en argument.CONJG((-3.0,4.0)) = -3.0-4.0i ; -
COS: retourne le cosinus de l'angle passé en argument (exprimé en radians).COS(1.0) = 0.54030231 ; -
COSH: retourne le cosinus hyperbolique.COSH(1.0) = 1.5430806 : -
DBLE: convertit en double précision l'argument transmis, -
EXP: retourne l'exponentiel de l'argument transmis ;EXP(1.0) = 2.7182818 -
FLOOR: retourne l'entier immédiatement inférieur au réel transmis en argumentFLOOR(3.7) = 3,FLOOR(-3.7) = -4 ; -
IACHAR : retourne le rang dans la table ASCII du caractère transmis en argument.
IACHAR(
'X') = 88 ; IACHAR('*') = 42 ; -
IAND : retourne l'entier dont la représentation binaire est obtenue en combinant à l'aide d'un « et logique » les bits des deux entiers transmis en argument.
IAND(1,3) = 1 ; IAND(10,10) = 10 ;
-
IBCLR : permet de forcer à zéro un bit d'un entier : l'entier ainsi que la position du bit à forcer sont passés en argument.
IBCLR(14,1) = 12,
IBCLR((/ 1,2,3,4 /), 31) = (/ 29,27,23,15 /) ;
-
IBITS : permet l'extraction d'une séquence de bits d'un entier. L'entier suivi de la position ainsi que la longueur pour effectuer l'extraction sont passés en argument.
IBITS(14,1,3) = 7 ;
-
IBSET : permet de forcer à 1 un bit d'un entier : l'entier ainsi que la position du bit à forcer sont passés en argument.
IBSET(12,1) = 14,
IBSET((/ 1,2,3,4 /), 0) = (/ 1,3,3,5 /) ;
-
IEOR : retourne l'entier dont la représentation binaire est obtenue en combinant à l'aide d'un « ou exclusif » les bits des deux entiers transmis en argument.
IEOR(1,3) = 2 ; IEOR(10,10) = 0 ;
-
INDEX: retourne la position d'une sous-chaîne dans une chaîne. La chaîne suivie de la sous-chaîne et du sens de la recherche sont fournis en argument.INDEX('FORTRAN','R') = 3,INDEX('FORTRAN','R',BACK=.true.) = 5 ; -
INT: convertit en entier l'argument transmis.INT(-3.7) = -3 ;INT(9.1/4.0) = 2 ; -
IOR : retourne l'entier dont la représentation binaire est obtenue en combinant à l'aide d'un « ou logique » les bits des deux entiers transmis en argument.
IOR(1,3) = 3,
IOR((/ 3,2 /),(/ 1,10 /)) = (/ 3,10 /) ;
-
ISHFT : permet d'effectuer un décalage des bits de l'entier passé en premier argument. Le deuxième argument indique le nombre de bits à décaler : son signe indique le sens du décalage (positif = gauche, négatif = droite). Les bits sortants sont perdus, les positions vacantes sont mises à zéro.
ISHFT(3,1) = 6 ; ISHFT(3,-1) = 1 ;
-
ISHFTC : idem ISHFT à la différence que le décalage est circulaire et s'effectue sur les n bits de droite de l'entier , n étant fourni en troisième argument (s'il est absent il est considéré égal au nombre de bits de l'entier).
ISHFT(3,2,3) = 5 ; ISHFT(3,-2) = -1073741824 ;
-
LEN: retourne la longueur de la chaîne de caractères transmise en argument.CHARACTER(len=10) CH ;LEN(CH) = 10 ; -
LEN_TRIM : retourne la longueur de la chaîne de caractères transmise en argument sans considérer les blancs de fin.
LEN_TRIM(
' FORTRAN ') = 9 ; LEN_TRIM(' ') = 0 ; -
LGE: compare les deux chaînes de caractères transmises en argument : retourne.true.si la première chaîne est supérieure ou égale à la deuxième,.false.Sinon.LGE('MANET','MONET') =.false.,LGE('MANET Edouard','MANET') =.true.; -
LGT: compare les deux chaînes de caractères transmises en argument : retourne.true.si la première chaîne est supérieure strictement à la deuxième,.false.sinon.LGT('MANET','MANET') =.false.; -
LLE: compare les deux chaînes de caractères transmises en argument : retourne.true.si la première chaîne est inférieure ou égale à la deuxième,.false.Sinon.LLE('MANET','MONET') =.true.,LLE('MANET','MANET') =.true.; -
LLT: compare les deux chaînes de caractères transmises en argument : retourne.true.si la première chaîne est inférieure strictement à la deuxième,.false.sinon.LLT('MANET','MANET') =.false.; -
LOG: retourne le logarithme népérien de l'argument transmis.LOG(2.7182818) = 1.0 ;LOG(10.0) = 2.3025851 ; -
LOG10: retourne le logarithme décimal de l'argument transmis.LOG10(10.0) = 1.0 ;LOG10(10.E10) = 11.0 ; -
MAX: retourne le maximum des nombres passés en argument.MAX(-9.0,7.0,2.0) = 7.0 ; -
MIN: retourne le minimum des nombres passés en argument.MIN(-9.0,7.0,2.0) = -9.0 ; -
MOD: retourne le reste de la division effectuée à l'aide des deux arguments fournis.MOD(3.0,2.0) = 1.0 ;MOD(-8,5) = -3 ; -
NOT : retourne l'entier dont la représentation binaire est obtenue en inversant les bits de l'entier transmis en argument.
NOT(10) = -11 ;
-
REAL: convertit en réel l'argument transmis.REAL(3) = 3.0 ; -
REPEAT : permet de concaténer n fois une chaîne de caractères.
REPEAT(
'A',10) ='AAAAAAAAAA'; -
SCAN : retourne la position du premier caractère d'une chaîne figurant parmi un ensemble de caractères donné. La recherche peut être faite dans les deux sens.
SCAN(
'RENOIR','OI') = 4,SCAN(
'RENOIR','OI',BACK=.true.) = 5 ; -
SIGN: retourne le nombre dont la valeur absolue est celle du premier argument et le signe celui du deuxième.SIGN(-3.0,2.0) = 3.0 ; -
SIN: retourne le sinus de l'angle passé en argument (exprimé en radians).SIN(1.0) = 0.84147098 ; -
SINH: retourne le sinus hyperbolique.SINH(1.0)= 1.1752012 ; -
SQRT: retourne la racine carrée de son argument.SQRT(5.0) = 2.236068010 ; -
TAN: retourne la tangente de l'angle passé en argument (exprimé en radians).TAN(1.0) = 1.5574077 ; -
TANH: retourne la tangente hyperbolique.TANH(1.0) = 0.76159416 ; -
TRIM : retourne la chaîne de caractères transmise débarrassée de ses blancs de fin.
TRIM(
'PICASSO ') ='PICASSO'; -
VERIFY : retourne la position du premier caractère d'une chaîne ne figurant pas parmi un ensemble de caractères donné. La recherche peut être faite dans les deux sens.
VERIFY(
'RENOIR','OI') = 1,VERIFY(
'RENOIR','OI',BACK=.true.) = 6.


