source: trunk/NS3D_JMC/JMFFT-8.0/doc/jmseterreur.html @ 12

Last change on this file since 12 was 12, checked in by xlvlod, 17 years ago

ajout code NS3D

File size: 3.2 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2<HTML>
3  <HEAD>
4    <title>JMSETERREUR</title>
5  </HEAD>
6
7  <BODY  BGCOLOR="#fdf5e6">
8<PRE>
9<B>*** JMFFT 8.0 - émulation des FFTs de la SciLib de CRAY - (c) CNRS/IDRIS ***</B>
10
11<B>NOM</B>
12
13     JMSETERREUR - Permet de contrôler le comportement de JMFFT en cas d'erreur
14
15<B>SYNTAXE</B>
16
17     CALL JMSETERREUR(flag)
18
19<B>IMPLEMENTATION</B>
20
21     Il s'agit d'un sous-programme de service de JMFFT.
22
23<B>DESCRIPTION</B>
24
25     La valeur .true. correspond au comportement par défaut : en cas
26     d'erreur JMFFT imprime un message d'erreur et arrête le programme
27     par une instruction STOP.
28
29     Avec la valeur .false., en cas d'erreur l'exécution continue. Il
30     appartient donc à l'utilisateur de tester le code de retour des appels
31     à JMFFT et de prendre les actions qui s'imposent.
32
33<B>ARGUMENTS</B>
34
35     flag  Variable ou constante de type LOGICAL
36           En entrée, il contient la valeur à fournir.
37           Non modifié en sortie.
38
39<B>EXEMPLES</B>
40
41     Le programme suivant contient une erreur : l'utilisateur a fourni
42     une première dimension trop petite pour le tableau Y.
43
44           INTEGER, PARAMETER :: LDX = 129, NX1 = 128, NX2 = 256
45           INTEGER, PARAMETER :: LDY = 64,  NY1 =  64, NY2 = 256
46           REAL(KIND=8), DIMENSION(LDX, NX2)        :: X
47           COMPLEX(KIND=8), DIMENSION(LDY, NY2)     :: Y
48           REAL(KIND=8), DIMENSION(512*NX2)         :: WORK
49           REAL(KIND=8), DIMENSION(100+2*(NX1+NX2)) :: TABLE
50           ! ... (Definition de X)
51           CALL SCFFT2D(0, 128, 256, 1.d0, X, 129, Y, 64, TABLE, WORK, 0)
52           CALL SCFFT2D(1, 128, 256, 1.d0, X, 129, Y, 64, TABLE, WORK, 0)
53           ! ... (Impression de Y)
54
55     A l'exécution, le programme s'arrête après le premier appel à SCFFT2D
56     avec le message suivant :
57
58           JMFFT Erreur dans SCFFT2D : ldy doit etre >= n/2+1 ( 64 65 )
59           STOP 1
60
61     Voici une variante du même programme où on contrôle l'exécution :
62     (HANDLER est un sous-programme personnel destiné à traiter ces exceptions)
63
64           INTEGER, PARAMETER :: LDX = 129, NX1 = 128, NX2 = 256
65           INTEGER, PARAMETER :: LDY = 64,  NY1 =  64, NY2 = 256
66           REAL(KIND=8), DIMENSION(LDX, NX2)        :: X
67           COMPLEX(KIND=8), DIMENSION(LDY, NY2)     :: Y
68           REAL(KIND=8), DIMENSION(512*NX2)         :: WORK
69           REAL(KIND=8), DIMENSION(100+2*(NX1+NX2)) :: TABLE
70           INTEGER                                  :: IRC
71           CHARACTER(LEN=80)                        :: MESSAGE
72           ! ... (Definition de X)
73           CALL JMSETERREUR(.false.)
74           CALL SCFFT2D(0, 128, 256, 1.d0, X, 129, Y, 64, TABLE, WORK, 0)
75           CALL JMGETCODE(IRC)
76           IF (IRC .NE. 0) THEN
77             CALL JMGETMESSAGE(IRC,MESSAGE)
78             PRINT *,'Code',IRC,', ',TRIM(MESSAGE)
79             CALL HANDLER()
80           END IF
81           CALL SCFFT2D(1, 128, 256, 1.d0, X, 129, Y, 64, TABLE, WORK, 0)
82           ! ... (Impression de Y)
83
84     A l'exécution, ce programme écrira le message d'erreur suivant :
85
86           Code 16 , ldy doit etre >= n/2+1
87
88     puis entrera dans le sous-programme HANDLER.
89
90<B>VOIR AUSSI</B>
91
92     JMGETCODE, JMGETMESSAGE
93</PRE>
94
95<!--#include virtual="/includes/fin.html" -->
96</BODY>
97</HTML>
Note: See TracBrowser for help on using the repository browser.