IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Les notions de base du Fortran

Support de cours


précédentsommairesuivant

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}finkitxmlcodeinlinelatexdvp

    ABS(-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 argument

    FLOOR(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.


précédentsommairesuivant

Copyright © 2006 Patrick Corde et Anne Fouilloux. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.