Version: 9.12.0
calciumP.h
Go to the documentation of this file.
1 // Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 
23 // File : calciumP.h
24 // Author : Eric Fayolle (EDF)
25 // Module : KERNEL
26 //
27 /* Outils d'Aide au Couplage de Code de Calcul : $Id$ */
28 #ifndef __CONST_H
29 #define __CONST_H
30 
31 #ifndef TrueOrFalse
32 #define TrueOrFalse int
33 #define TRUE 1
34 #define FALSE 0
35 #endif
36 
37 /* Definition d'un type de donnes pour le stockage du */
38 /* des pas de temps */
39 #ifdef CRAY
40 #define Temps float
41 #define FORMAT_TEMPS "%lf"
42 #else
43 #define Temps double
44 #define FORMAT_TEMPS "%lg"
45 #endif
46 
47 /* Precision relative pour tests d'egalite sur les temps */
48 #define EPSILON 1.e-6
49 
50 /* Tailles utilisees lors des transmissions des noms */
51 #define VERSION_LEN 144
52 #define CODE_LEN 72
53 #define VARIABLE_LEN 144
54 #define INSTANCE_LEN 72
55 #define DRIVER_LEN 72
56 
57 
58 /* Tailles maximums */
59 #define ARCHI_LEN 64
60 #define ENV_VAR_LEN 256
61 #define ACCC_LEN 256
62 #define PVM_LEN 256
63 #define USER_LEN 256
64 #define MACHINE_LEN 256
65 #define COMMAND_LEN 256
66 #define MAX_LEN 256
67 #define FICHIER_LEN 256
68 
69 /* Nombre de lignes dans une page du fichier erreur *
70  * de trace */
71 #define NB_LIGNE_ERREUR 45
72 #define NB_LIGNE_TRACE 45
73 
74 
75 
76 /* Type d'arret d'une instance */
77 #define CP_NORMALE 10
78 #define CP_ANORMALE 11
79 
80 /* Directive de continuation d'une instance */
81 #define CP_CONT 20
82 #define CP_ARRET 21
83 
84 /* Etat d'une instance */
85 #define CP_INITIAL 22
86 #define CP_NON_CONNECTE 23
87 #define CP_ATTENTE 24
88 #define CP_EXECUTION 25
89 #define CP_DECONNECTE 26
90 #define CP_TERMINE 27
91 
92 /* Type de variables */
93 #define CP_ENTIER 30
94 #define CP_REEL 31
95 #define CP_DREEL 32
96 #define CP_COMPLEXE 33
97 #define CP_LOGIQUE 34
98 #define CP_CHAINE 35
99 
100 /* Type de dependance des variables */
101 #define CP_TEMPS 40
102 #define CP_ITERATION 41
103 #define CP_SEQUENTIEL 42
104 
105 /* Send des variables */
106 #define CP_IN 50
107 #define CP_OUT 51
108 
109 /* Type des instances */
110 #define CP_NORMAL 60
111 #define CP_ESPION 62
112 
113 /* Niveaux */
114 #define CP_ILLIMITE -70
115 #define CP_AUTESP -71
116 
117 /* Mode de trace */
118 #define CP_SANS 80
119 #define CP_SUCCINCT 81
120 #define CP_DETAILLE 82
121 
122 
123 /* Mode d'execution */
124 /* La valeur CP_NORMAL definie pour les types */
125 /* est aussi utilisee */
126 #define CP_PAUSE 91
127 
128 
129 /* Type d'interpolation */
130 #define CP_LINEAIRE 100
131 #define CP_ESCALIER 101
132 
133 
134 /* Repere dans cycle de temps */
135 #define TI 110
136 #define TF 111
137 
138 /* Mode de nettoyage des donnees d'un lien */
139 #define CP_TOUTES 120
140 #define CP_AUCUNE 121
141 #define CP_PAS 122
142 
143 /* Options configurables */
144 #define CP_ROUTE 131
145 #define CP_ERREURS 132
146 
147 /* Valeurs pour l'option CP_ROUTE */
148 #define CP_ROUTE_NORMAL 133
149 #define CP_ROUTE_DIRECT 134
150 
151 /* Valeurs pour l'option Comportement en cas d'erreur */
152 #define CP_AUTO 135
153 #define CP_BLOCAGE 136
154 #define CP_MANUEL 137
155 
156 /* Type de requete de lecture */
157 /* La valeur CP_ATTENTE define pour l'etat d'une */
158 /* instance est aussi utilisee */
159 #define CP_IMMEDIATE 141
160 
161 /* Definition des types de lien */
162 #define CPLVAV 151
163 #define CPLVAF 152
164 #define CPLVAS 153
165 #define CPLCAV 154
166 #define CPLFAV 155
167 
168 /* Codes des entetes des messages (Evenemet *) */
169 #define ERREUR 1000
170 #define CONNEXION 1001
171 #define EMISSION 1002
172 #define DECONNEXION 1003
173 #define LECTURE_VARIABLE 1004
174 #define ECRITURE_VARIABLE 1005
175 #define FIN_DE_PAS 1006
176 #define AUIN_FIN_DE_PAS 1007
177 #define EFFACEMENT 1008
178 #define MODE_EXEC 1009
179 #define RUN_N_PAS 1010
180 #define DEF_CODE 1011
181 #define DEF_INSTANCE 1012
182 #define DEF_LIEN 1013
183 #define DEM_VERSION 1014
184 #define SET_OPTION 1015
185 #define DEM_OPTION 1016
186 #define DEM_CODES 1017
187 #define DEM_INSTS_DE_CODE 1018
188 #define DEM_VARIABLES 1019
189 #define DEM_VARS_DE_CODE 1020
190 #define DEM_VARS_DE_INST 1021
191 #define DEM_CARS_DE_VARIABLE 1022
192 #define DEM_CARS_DE_LIEN 1023
193 #define ENV_VALEURS_VARIABLE 1024
194 #define ENV_OPTION 1025
195 #define ENV_CODES 1026
196 #define ENV_INSTS_DE_CODE 1027
197 #define ENV_VARIABLES 1028
198 #define ENV_VARS_DE_CODE 1029
199 #define ENV_VARS_DE_INST 1030
200 #define ENV_CARS_DE_VARIABLE 1031
201 #define ENV_CARS_DE_LIEN 1032
202 #define ENV_TOPOLOGY 1033
203 #define R_ENV_TOPOLOGY 1034
204 #define ENV_MACHINE 1035
205 #define R_ENV_MACHINE 1036
206 #define ENV_CODE 1037
207 #define R_ENV_CODE 1038
208 #define ENV_INSTANCE 1039
209 #define R_ENV_INSTANCE 1040
210 #define ENV_VAR 1041
211 #define R_ENV_VAR 1042
212 #define ENV_LIEN 1043
213 #define R_ENV_LIEN 1044
214 #define ENV_ATTRIBUTS 1045
215 #define R_ENV_ATTRIBUTS 1046
216 #define ENV_VDATA 1047
217 #define R_ENV_VDATA 1048
218 
219 
220 
221 
222 
223 
224 
225 
226 
227 /* Message PVM */
228 #define P_HOST_DELETE 2000
229 #define P_TASK_EXIT 2001
230 
231 
232 
233 
234 
235 /* Codes d'erreur */
236 
237 /* Pas d'erreur */
238 #define CPOK 0
239 
240 /* Emetteur inconnu */
241 #define CPERIU 1
242 
243 /* Nom de variable inconnu */
244 #define CPNMVR 2
245 
246 /* Type entree/sortie incompatible */
247 #define CPIOVR 3
248 
249 /* Type inconnu */
250 #define CPTP 4
251 
252 /* Type de variable incompatible */
253 #define CPTPVR 5
254 
255 /* Mode de dependance inconnu */
256 #define CPIT 6
257 
258 /* Mode dependance incompatible */
259 #define CPITVR 7
260 
261 /* Requete non autorisee */
262 #define CPRENA 8
263 
264 /* Type de deconnexion incorrect */
265 #define CPDNTP 9
266 
267 /* Directive de deconnexion incorrecte */
268 #define CPDNDI 10
269 
270 /* Nom de code inconnu */
271 #define CPNMCD 11
272 
273 /* Nom d'instance inconnu */
274 #define CPNMIN 12
275 
276 /* Attente */
277 #define CPATTENTE 13
278 
279 /* Blocage */
280 #define CPBLOC 14
281 
282 /* Nombre de valeurs transmises egal a zero */
283 #define CPNTNULL 15
284 
285 /* Longueur de variable insuffisante */
286 #define CPLGVR 16
287 
288 /* L'instance doit s'arreter */
289 #define CPSTOP 17
290 
291 /* Arret anormal */
292 #define CPATAL 18
293 
294 /* Coupleur abscent */
295 #define CPNOCP 19
296 
297 /* Variable sortante non connectee */
298 #define CPCTVR 20
299 
300 /* Nombre de pas a executer egal a zero */
301 #define CPPASNULL 21
302 
303 /* Machine inconnue */
304 #define CPMACHINE 22
305 
306 /* COUPLAGE_GROUPE non positionnee */
307 #define CPGRNU 23
308 
309 /* Groupe d'instances incorrect */
310 #define CPGRIN 24
311 
312 /* Fin du fichier d'entree */
313 #define CPFINFICH 25
314 
315 /* Erreur de format dans un fichier */
316 #define CPERRFICH 26
317 
318 /* Requete d'avance de n pas annullee */
319 /* par passage en mode NORMAL */
320 #define CPNORERR 27
321 
322 /* Coupleur en mode NORMAL pour une */
323 /* requete RUN_N_PAS ou DEF_* */
324 #define CPRUNERR 28
325 
326 /* Option inconnue */
327 #define CPOPT 29
328 
329 /* Valeur d'option inconnue */
330 #define CPVALOPT 30
331 
332 /* Ecriture impossible par effacement */
333 #define CPECREFF 31
334 
335 /* Lecture d'une variable non connectee */
336 /* ou n'appartenant pas a un lien VAS */
337 /* ou VAV s'il s'agit d'une sortante */
338 #define CPLIEN 32
339 
340 /* Lecture d'une variable d'une instance*/
341 /* deconnectee avec directive CP_ARRET */
342 #define CPINARRET 33
343 
344 /* Les lectures sequentielles ne pourront plus */
345 /* etre satisfaites : instance productrice arretee */
346 #define CPSTOPSEQ 34
347 
348 /* Erreur dans la chaine de declaration */
349 #define CPDECL 35
350 
351 /* Erreur dans l'execution de l'instance ajoutee */
352 #define CPINEXEC 36
353 
354 /* Erreur PVM */
355 #define CPPVM 37
356 
357 /* Erreur detectee au niveau de l'interface de couplage */
358 #define CPERRINST 38
359 
360 
361 /* IDM : les deux define suivants ont ete rajoutes a la main*/
362 
363 /* Erreur de mode d'execution non defini */
364 #define CPMODE 39
365 
366 /* Erreur d'instance deconnectee */
367 #define CPINSTDEC 40
368 
369 /* Codes des evenements pour le fichier de trace */
370 
371 /* Debut du couplage */
372 #define DEBUT_COUPLAGE 0
373 
374 /* Fin du couplage */
375 #define FIN_COUPLAGE 1
376 
377 /* Execution d'une instance par Oacc */
378 #define EXEC 2
379 
380 /* Connexion d'une instance */
381 #define CPCD 3
382 
383 /* Permission d'emettre accordee a l'instance */
384 #define CPALLOW 4
385 
386 /* Requete d'ecriture */
387 #define CPECRI 5
388 
389 /* Requete de lecture */
390 #define DEB_LECT 6
391 
392 /* Envoi des donnees suite a une requete de lecture */
393 #define FIN_LECT 7
394 
395 /* Deconnexion d'une instance */
396 #define CPFIN 8
397 
398 /* Requete de fin de pas */
399 #define CPFINP 9
400 
401 /* Requete d'autorisation de fin de pas */
402 #define CPAUFP 10
403 
404 /* Requete d'interdiction de fin de pas */
405 #define CPINFP 11
406 
407 /* Requete d'effacement */
408 #define CPEFF 12
409 
410 /* Signal d'arret d'une instance */
411 #define STOP 13
412 
413 /* Avis de blocage suite a une requete de lecture */
414 #define BLOCAGE 14
415 
416 /* Requete de passage en mode pause */
417 #define CPPAUSE 15
418 
419 /* Requete de passage en mode normal */
420 #define CPNORMAL 16
421 
422 /* Requete d'execution de n pas */
423 #define CPNPAS 17
424 
425 /* Requete de definition d'un code */
426 #define CPADCD 18
427 
428 /* Requete de definition d'une instance */
429 #define CPADINCD 19
430 
431 /* Requete de definition d'un lien */
432 #define CPADLN 20
433 
434 /* Requete d'identification de version */
435 #define CPIVERS 21
436 
437 /* Requete de demande de la liste des codes */
438 #define CPICD 22
439 
440 /* Requete de demande des instances d'un code */
441 #define CPIINCD 23
442 
443 /* Requete de demande de la liste des variables globales*/
444 #define CPIVR 24
445 
446 /* Requete de demande des variables d'un code */
447 #define CPIVRCD 25
448 
449 /* Requete de demande des variables d'une instance */
450 #define CPIVRIN 26
451 
452 /* Requete de demande d'info sur une variable globale */
453 #define CPICAVR 27
454 
455 /* Requete de demande des caracteristiques d'un lien */
456 #define CPIILIEN 28
457 
458 /* Requete de modification d'une option */
459 #define CPSETOPT 29
460 
461 /* Requete de consultation d'une option */
462 #define CPGETOPT 30
463 
464 /* Terminaison d'une tache PVM */
465 #define TASK_EXIT 31
466 
467 /* Deconnexion d'une machine */
468 #define HOST_DELETE 32
469 
470 
471 #ifdef PRG_MAIN
472 /* Fichier principal de la bibliotheque de couplage */
473  const char * CPMESSAGE[] = {
474  "",
475  "Emitter unknown",
476  "Variable name unknown",
477  "Different input/output codes in code and supervisor",
478  "Variable type unknown",
479  "Different variable types in code and supervisor",
480  "Dependency mode unknown",
481  "Different dependency modes in code and supervisor",
482  "Unauthorized request",
483  "Unauthorized disconnection request type",
484  "Unauthorized disconnection directive",
485  "Code name unknown",
486  "Instance name unknown",
487  "Waiting request",
488  "Blocking",
489  "Zero value number",
490  "Insufficient variable length",
491  "Instance is going to stop",
492  "Unexpected instance stop",
493  "Manuel execution",
494  "Output variable not connected",
495  "Number of steps to execute is nul",
496  "Non declared computer",
497  "Environment variable COUPLAGE_GROUPE is not set",
498  "Instance group given by COUPLAGE_GROUPE is wrong",
499  "End of input file",
500  "Format error in input file",
501  "Request ignored because of switching to NORMAL mode",
502  "Supervisor is in normal execution mode",
503  "Unknown option",
504  "Option value is wrong",
505  "Impossible to write because of an erasing request",
506  "Reading of a variable wrongly connected",
507  "Reading of a variable of an instance disconnected with CP_ARRET",
508  "Sequential reading no more possible",
509  "Error in declaration",
510  "Error in instance launching",
511  "Communication error",
512  "Error in the instance",
513  "Environment variable CAL_MODE is not set",
514  "Disconnected instance",
515  };
516 
517 #else
518 
519 extern const char * CPMESSAGE[];
520 
521 #endif
522 
523 
524 /* Type de variables */
525 #define ENTIER 30
526 #define REEL 31
527 #define DREEL 32
528 #define COMPLEXE 33
529 #define LOGIQUE 34
530 #define CHAINE 35
531 
532 /* Macro minuscule majuscule */
533 #define TOUPPER(string) \
534 {\
535  int i, number = strlen(string);\
536  for (i = 0; i < number; i++) string[i] = toupper(string[i]); \
537 }
538 
539 /* Macro inferieur */
540 #define INF(a,b) (a <= b ? a : b)
541 
542 /* Macro superieur */
543 #define SUP(a,b) (a >= b ? a : b)
544 
545 
546 #endif
547 
const char * CPMESSAGE[]