New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
decl.h in trunk/AGRIF/LIB – NEMO

source: trunk/AGRIF/LIB/decl.h @ 774

Last change on this file since 774 was 774, checked in by rblod, 16 years ago

Update Agrif, see ticket:#39

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 31.5 KB
Line 
1/******************************************************************************/
2/*                                                                            */
3/*     CONV (converter) for Agrif (Adaptive Grid Refinement In Fortran)       */
4/*                                                                            */
5/* Copyright or   or Copr. Laurent Debreu (Laurent.Debreu@imag.fr)            */
6/*                        Cyril Mazauric (Cyril_Mazauric@yahoo.fr)            */
7/* This software is governed by the CeCILL-C license under French law and     */
8/* abiding by the rules of distribution of free software.  You can  use,      */
9/* modify and/ or redistribute the software under the terms of the CeCILL-C   */
10/* license as circulated by CEA, CNRS and INRIA at the following URL          */
11/* "http://www.cecill.info".                                                  */
12/*                                                                            */
13/* As a counterpart to the access to the source code and  rights to copy,     */
14/* modify and redistribute granted by the license, users are provided only    */
15/* with a limited warranty  and the software's author,  the holder of the     */
16/* economic rights,  and the successive licensors  have only  limited         */
17/* liability.                                                                 */
18/*                                                                            */
19/* In this respect, the user's attention is drawn to the risks associated     */
20/* with loading,  using,  modifying and/or developing or reproducing the      */
21/* software by the user in light of its specific status of free software,     */
22/* that may mean  that it is complicated to manipulate,  and  that  also      */
23/* therefore means  that it is reserved for developers  and  experienced      */
24/* professionals having in-depth computer knowledge. Users are therefore      */
25/* encouraged to load and test the software's suitability as regards their    */
26/* requirements in conditions enabling the security of their systems and/or   */
27/* data to be ensured and,  more generally, to use and operate it in the      */
28/* same conditions as regards security.                                       */
29/*                                                                            */
30/* The fact that you are presently reading this means that you have had       */
31/* knowledge of the CeCILL-C license and that you accept its terms.           */
32/******************************************************************************/
33/* version 1.7                                                                */
34/******************************************************************************/
35#define LONGNOM 800
36
37#define LONG_C 300
38#define LONG_4C 400
39#define LONG_4M 4000
40#define LONG_40M 40000
41
42/******************************************************************************/
43/*********** Declaration of structures used in conv ***************************/
44/******************************************************************************/
45
46typedef struct
47{
48   char first[LONG_C];
49   char last[LONG_C];
50} typedim ;                /* fortran dimension as 'ndeb:nfin'                */
51
52typedef struct listdim
53{
54   typedim dim;
55   struct listdim *suiv;
56} listdim;                 /* list of the dimensions of a variable            */
57
58typedef struct variable
59{
60   char v_typevar[LONG_C];
61   char v_nomvar[LONG_C] ;
62   char v_oldname[LONG_C] ;
63   char v_dimchar[LONG_C];
64   char v_modulename[LONG_C];
65   char v_commonname[LONG_C];
66   char v_vallengspec[LONG_C];
67   char v_nameinttypename[LONG_C];
68   char v_commoninfile[LONG_C];
69   char v_subroutinename[LONG_C];
70   char v_precision[LONG_C];
71   char v_initialvalue[LONG_4C];
72   char v_IntentSpec[LONG_C];
73   char v_readedlistdimension[LONG_C];
74   int  v_nbdim;
75   int  v_common;
76   int  v_positioninblock;
77   int  v_module;
78   int  v_save;
79   int  v_VariableIsParameter;
80   int  v_PublicDeclare;
81   int  v_PrivateDeclare;
82   int  v_ExternalDeclare;
83   int  v_pointedvar;
84   int  v_notgrid;
85   int  v_dimensiongiven;
86   int  v_c_star;
87   int  v_indicetabvars;
88   int  v_pointerdeclare;
89   int  v_optionaldeclare;
90   int  v_allocatable;
91   int  v_dimsempty;
92   listdim *v_dimension;
93} variable ;               /* type of a variable                              */
94                           /* v_typevar : type (integer, real, ...)           */
95                           /* v_nomvar : name of the variable                 */
96                           /* v_dimension : list of dimensions of the variable*/
97                           /* v_nbdim: 1 if the variable is 1d, etc ...       */
98                           /* precision : Name of the variable which          */
99                           /* determine the precision. example : wp in the    */
100                           /* case where REAL(wp)                             */
101
102typedef struct listvar
103{
104   variable *var ;
105   struct listvar * suiv;
106} listvar ;                /* list of variables                               */
107
108
109typedef struct listusemodule
110{
111   char u_usemodule[LONG_C];
112   char u_charusemodule[LONG_C];
113   char u_cursubroutine[LONG_C];
114   char u_modulename[LONG_C];
115   int  u_firstuse;
116   struct listusemodule * suiv;
117} listusemodule;           /* list of names                                   */
118
119typedef struct listparameter
120{
121   char p_name[LONG_C];
122   char p_modulename[LONG_C];
123   struct listparameter * suiv;
124} listparameter ;           /* list of names                                  */
125
126typedef struct listname
127{
128   char n_name[LONG_C];
129   struct  listname* suiv;
130} listname ;            /* list of names                                  */
131
132typedef struct listcouple
133{
134   char c_namevar[LONG_C];
135   char c_namepointedvar[LONG_C];
136   struct listcouple * suiv;
137} listcouple;              /* list of names                                   */
138
139
140typedef struct listnom
141{
142   char o_nom[LONG_C];
143   char o_module[LONG_C];
144   int  o_val;
145   listcouple *couple;
146   struct listnom * suiv;
147} listnom;                 /* list of names                                   */
148
149
150typedef struct listallocate
151{
152   char a_nomvar[LONG_C];
153   char a_subroutine[LONG_C];
154   char a_module[LONG_C];
155   struct listallocate * suiv;
156} listallocate ;
157
158
159typedef struct listvarpointtovar
160{
161   char t_usemodule[LONG_C];
162   char t_cursubroutine[LONG_C];
163   listcouple *t_couple;
164   struct  listvarpointtovar* suiv;
165}listvarpointtovar ;       /* list of names                                   */
166
167
168typedef struct listindice
169{
170   int i_indice;
171   struct  listindice * suiv;
172} listindice;              /* list of indiced                                 */
173
174 variable *curvar;
175
176 listvar *List_ModuleUsedInModuleUsed_Var;
177 listvar *List_ModuleUsed_Var;
178 listvar *listduplicated;
179
180 listvar *List_GlobalParameter_Var;
181 listvar *List_Global_Var;
182 listvar *List_Data_Var;
183 listvar *List_Save_Var;
184 listvar *List_SubroutineArgument_Var;
185 listvar *List_SubroutineDeclaration_Var;
186 listvar *List_UsedInSubroutine_Var;
187 listvar *List_Parameter_Var;
188 listvar *List_Dimension_Var;
189 listvar *List_FunctionType_Var;
190 listvar *List_NotGridDepend_Var;
191 listvar *List_Common_Var;
192
193
194 listname *List_Pointer_Var;
195 listname *List_ImplicitNoneSubroutine;
196
197 listusemodule *List_NameOfModuleUsed;
198 listusemodule *List_Include;
199 listusemodule *listofmoduletmp;
200 listusemodule *tmpuselocallist;
201
202 listparameter *List_GlobParamModuleUsedInModuleUsed_Var;
203 listparameter *List_GlobParamModuleUsed_Var;
204
205 listnom *List_ContainsSubroutine;
206 listnom *List_Subroutine_For_Alloc;
207 listnom *listofmodules;
208 listnom *List_NameOfModule;
209 listnom *List_NameOfCommon;
210 listnom *List_SubroutineWhereAgrifUsed;
211
212 listallocate *List_Allocate_Var;
213
214 listvarpointtovar *List_CouplePointed_Var;
215                           /*  variables which are pointed to an other one    */
216
217 listindice *Listofavailableindices;
218                           /* List of available indices in the tabvars table  */
219
220 listdim *curdim;
221 listdim *commondim;
222
223/******************************************************************************/
224/****************   *** COMMON Variables ***  *********************************/
225/******************************************************************************/
226
227 int positioninblock;
228 char commonvar[LONG_C];
229 char commonblockname[LONG_C];
230
231/******************************************************************************/
232/****************   *** AGRIF Variables ***   *********************************/
233/******************************************************************************/
234 int inagrifcallargument;
235 int sameagrifargument;
236 int InAgrifParentDef;
237 char sameagrifname[LONG_C];
238/******************************************************************************/
239/****************   *** VAR DEF Variables ***   *******************************/
240/******************************************************************************/
241 int indicemaxtabvars;     /* Number of variables in the model i.e. last      */
242                           /*    indice used in  the tabvars table            */
243 int PublicDeclare;        /* Variable has been declared as PUBLIC */
244 int PrivateDeclare;       /* Variable has been declared as PRIVATE */
245 int ExternalDeclare;      /* Variable has been declared as EXTERNAL */
246 int InitialValueGiven;    /* An initial value has been given */
247 int Allocatabledeclare;
248 int SaveDeclare;
249 int functiondeclarationisdone;
250 int pointerdeclare;
251 int optionaldeclare;
252 int VarType;
253 int VarTypepar;
254 int VariableIsParameter;
255 int dimsgiven;
256 int shouldincludempif;
257 int c_star;
258 char DeclType[LONG_C];
259 char nameinttypename[LONG_C];
260 int GlobalDeclaration;
261 char InitValue[LONG_4C];
262 char IntentSpec[LONG_C];
263 char NamePrecision[LONG_C];
264 char CharacterSize[LONG_C];
265 char curmodulename[LONG_C];
266 char vallengspec[LONG_C];
267 char subroutinename[LONG_C];
268
269/******************************************************************************/
270/****************   *** CONV Variables ***   **********************************/
271/******************************************************************************/
272 int dimprob ;             /* dimension of the problem : 1 for 1D,2 for 2D,   */
273                           /*    3 for 3D                                     */
274 int onlyfixedgrids;       /* = 1 if onlyfixedgrids is true                   */
275 int todebug;
276 int mark;
277 int todebugfree;
278 int fixedgrids;           /* = 1 if fixedgrids is true                       */
279 char nbmaillesX[LONG_C]; /* number of cells in the x direction              */
280 char nbmaillesY[LONG_C]; /* number of cells in the y direction              */
281 char nbmaillesZ[LONG_C]; /* number of cells in the z direction              */
282 int IndicenbmaillesX;
283 int IndicenbmaillesY;
284 int IndicenbmaillesZ;
285
286 int inmodulemeet;
287 int incalldeclare;
288 int aftercontainsdeclare; /* Signale si l'on vient d'un contains ou non */
289 int retour77;
290 int colnum;
291 int callagrifinitgrids;
292 int callmpiinit;
293 int firstpass;
294 int couldaddvariable;
295 int pointedvar;
296 int NbMailleXDefined;
297 int agrif_parentcall;
298 int didvariableadded;
299 int SubloopScalar;        /* = 1 we should put in argument of sub_loop       */
300                           /*    only                                         */
301                           /*    scalar and not table u(1,1,1) in place of u  */
302 int checkexistcommon;
303 int insubroutinedeclare;
304 int inmoduledeclare;
305 int dimsempty;
306 int created_dimensionlist;
307
308 char meetagrifinitgrids[LONG_C];
309 char mpiinitvar[LONG_C];
310 char *NameTamponfile;
311 char toprintglob[LONG_4C];
312 char tmpvargridname[LONG_4C];
313 char EmptyChar[2];        /* An empty char */
314 char curfilename[LONG_C];
315 char nomfileoutput[LONG_C];
316 char curbuf[LONG_40M];
317 char motparse[LONG_4C];
318 char motparse1[LONG_4C];
319 char charusemodule[LONG_C];
320 char subofagrifinitgrids[LONG_C];
321 char curfile[LONG_C];
322 char mainfile[LONG_C];
323 char nomdir[LONG_C];
324 char commondirout[LONG_C];
325 char commondirin[LONG_C];
326 char filetoparse[LONG_C];
327
328 FILE *fortranout;          /* Output File                                    */
329 FILE *fortranin;           /* Input File                                     */
330 FILE *oldfortranout;
331 FILE *subloop;
332 FILE *module_declar;
333 FILE *allocationagrif;
334 FILE *paramout;
335
336 long int pos_cur;         /* current position in the output file             */
337 long int pos_curagrifparent;
338                           /* current position in the output file             */
339 long int pos_curcall;     /* current position in the output file             */
340 long int pos_curuse;      /* current position in the output file             */
341 long int pos_curfunction; /* current position in the output file             */
342 long int pos_cur_decl;    /* current position in the output file             */
343 long int pos_curdata;     /* current position in the output file             */
344 long int pos_curparameter;/* current position in the output file             */
345 long int pos_curcommon;   /* current position in the output file             */
346 long int pos_cursave;     /* current position in the output file             */
347 long int pos_curdimension;/* current position in the output file             */
348 long int pos_curinit;     /* current position in the output file             */
349 long int pos_curinclude;  /* final position of a line in file                */
350 long int pos_end;         /* final position of a line in file                */
351 long int pos_endsubroutine;
352                           /* final position of a line in file                */
353
354/* v_oldname = v_nomvar; */
355/* commonvar = v_nomvar; */
356/* commonblockname = v_commonname;*/
357/* sameagrifname = v_nomvar ; */
358/* DeclType = v_typevar; */
359/* nameinttypename = v_nameinttypename; */
360/* IntentSpec = v_IntentSpec; */
361/* NamePrecision = v_precision; */
362/* CharacterSize = v_dimchar; */
363/* curmodulename = v_modulename; */
364/* vallengspec = v_vallengspec; */
365/* subroutinename = v_subroutinename; */
366/* meetagrifinitgrids = v_subroutinename; */
367/* nbmaillesX = v_nomvar; */
368/* nbmaillesY = v_nomvar; */
369/* nbmaillesZ = v_nomvar; */
370/* mpiinitvar = v_nomvar; */
371/* EmptyChar = 2; */
372/* motparse1 = motparse;*/
373/* charusemodule = p_modulename; */
374/* subofagrifinitgrids = v_subroutinename; */
375/* curfile = mainfile; */
376/* InitValue = v_initialvalue; */
377
378/* p_name;???????? */
379/* p_modulename; ?????????????*/
380
381 int length_last;
382 int length_first;
383 int length_v_typevar;
384 int length_v_nomvar;
385 int length_v_dimchar;
386 int length_v_modulename;
387 int length_v_commonname;
388 int length_v_vallengspec;
389 int length_v_nameinttypename;
390 int length_v_commoninfile;
391 int length_v_subroutinename;
392 int length_v_precision;
393 int length_v_IntentSpec;
394 int length_v_initialvalue;
395 int length_v_readedlistdimension;
396 int length_u_usemodule;
397 int length_u_charusemodule;
398 int length_u_cursubroutine;
399 int length_u_modulename;
400 int length_n_name;
401 int length_c_namevar;
402 int length_c_namepointedvar;
403 int length_o_nom;
404 int length_o_module;
405 int length_a_nomvar;
406 int length_a_subroutine;
407 int length_a_module;
408 int length_t_usemodule;
409 int length_t_cursubroutine;
410 int length_curfilename;
411 int length_nomfileoutput;
412 int length_motparse;
413 int length_mainfile;
414 int length_nomdir;
415 int length_commondirout;
416 int length_commondirin;
417 int length_filetoparse;
418 int length_curbuf;
419 int length_toprintglob;
420 int length_tmpvargridname;
421 int length_ligne_Subloop;
422 int length_lvargridname_toamr;
423 int length_toprint_utilagrif;
424 int length_toprinttmp_utilchar;
425 int length_ligne_writedecl;
426 int length_newname_toamr;
427 int length_newname_writedecl;
428 int length_ligne_toamr;
429 int length_tmpligne_writedecl;
430 int value_char_size;
431 int value_char_size1;
432 int value_char_size2;
433 int value_char_size3;
434
435/******************************************************************************/
436/*********** Declaration of externals subroutines *****************************/
437/***************************************************** ************************/
438/******************************************************************************/
439/*********** convert.y ********************************************************/
440/******************************************************************************/
441extern int main(int argc,char *argv[]);
442/******************************************************************************/
443/*********** fortran.y ********************************************************/
444/******************************************************************************/
445extern void processfortran(char *fichier_entree);
446/******************************************************************************/
447/*********** dependfile.c *****************************************************/
448/******************************************************************************/
449extern void Writethedependnbxnbyfile();
450extern void Readthedependnbxnbyfile();
451extern void Writethedependlistofmoduleused(char *NameTampon );
452extern void Readthedependlistofmoduleused(char *NameTampon);
453extern void WritedependParameterList(char *NameTampon );
454extern listparameter *ReaddependParameterList(char *NameTampon,
455                                                        listparameter *listout);
456extern void Writethedependfile(char *NameTampon, listvar *input );
457extern listvar *Readthedependfile( char *NameTampon , listvar *listout);
458extern void Write_Subroutine_For_Alloc();
459extern void Read_Subroutine_For_Alloc();
460extern void Writethedependavailablefile();
461extern void Readthedependavailablefile();
462extern int Did_filetoparse_readed(char *NameTampon);
463extern int Did_module_common_treaded(char *NameTampon);
464extern void Write_val_max();
465extern void Read_val_max();
466/******************************************************************************/
467/*********** DiversListe.c ****************************************************/
468/******************************************************************************/
469extern void Add_Common_var_1();
470extern listnom *Addtolistnom(char *nom, listnom *listin,int value);
471extern listname *Addtolistname(char *nom,listname *input);
472extern int ModuleIsDefineInInputFile(char *name);
473extern void Addmoduletothelisttmp(char *name);
474extern void Add_NameOfModule_1(char *nom);
475extern void Add_NameOfCommon_1(char *nom);
476extern void Add_CouplePointed_Var_1(char *namemodule,listcouple *couple);
477extern void Add_Include_1(char *name);
478extern void Add_ImplicitNoneSubroutine_1();
479extern void WriteIncludeDeclaration();
480extern void Add_Save_Var_1 (char *name,listdim *d);
481extern void Add_Save_Var_dcl_1 (listvar *var);
482/******************************************************************************/
483/*********** SubLoopCreation.c ************************************************/
484/******************************************************************************/
485extern void writeheadnewsub_0();
486extern void WriteVariablelist_subloop(FILE *outputfile);
487extern void WriteVariablelist_subloop_Call(FILE *outputfile);
488extern void WriteVariablelist_subloop_Def(FILE *outputfile);
489extern void WriteHeadofSubroutineLoop();
490extern void closeandcallsubloopandincludeit_0(int suborfun);
491extern void closeandcallsubloop_contains_0();
492/******************************************************************************/
493/*********** toamr.c **********************************************************/
494/******************************************************************************/
495extern char *variablenameroottabvars (variable * var);
496extern char *variablenametabvars (variable * var, int iorindice);
497extern char *variablecurgridtabvars (variable * var,int ParentOrCurgrid);
498extern void WARNING_CharSize(variable *var);
499extern char *vargridnametabvars (variable * var,int iorindice);
500extern char *vargridcurgridtabvars (variable * var,int ParentOrCurgrid);
501extern char *vargridcurgridtabvarswithoutAgrif_Gr (variable * var);
502extern char *vargridparam (variable * v, int whichone);
503extern void write_probdimagrif_file();
504extern void write_keysagrif_file();
505extern void write_modtypeagrif_file();
506extern void write_createvarnameagrif_file(variable *v,FILE *createvarname,
507                                                                int *InitEmpty);
508extern void write_Setnumberofcells_file();
509extern void write_Getnumberofcells_file();
510extern void write_initialisationsagrif_file(variable *v,FILE *initproc,
511                                                             int *VarnameEmpty);
512extern void Write_Alloc_Agrif_Files();
513extern int IndiceInlist(int indic, listindice *listin);
514extern void write_allocation_Common_0();
515extern void write_allocation_Global_0();
516extern void creefichieramr (char *NameTampon);
517/******************************************************************************/
518/*********** UtilAgrif.c ******************************************************/
519/******************************************************************************/
520extern int Vartonumber(char *tokname);
521extern int Agrif_in_Tok_NAME(char *tokname);
522extern void ModifyTheVariableName_0(char *ident);
523extern void Add_SubroutineWhereAgrifUsed_1(char *sub,char *mod);
524extern void AddUseAgrifUtil_0(FILE *fileout);
525extern void AddUseAgrifUtilBeforeCall_0(FILE *fileout);
526extern void NotifyAgrifFunction_0(char *ident);
527extern void ModifyTheAgrifFunction_0(char *ident);
528extern void AgriffunctionModify_0(char *ident,int whichone);
529extern void Instanciation_0(char *ident);
530/******************************************************************************/
531/*********** UtilCharacter.c **************************************************/
532/******************************************************************************/
533extern void FindAndChangeNameToTabvars(char name[LONG_C],char toprint[LONG_4C],
534                                             listvar * listtosee, int whichone);
535extern char *ChangeTheInitalvaluebyTabvarsName(char *nom,listvar *listtoread,
536                                                                  int whichone);
537extern int IsVariableReal(char *nom);
538extern void IsVarInUseFile(char *nom);
539extern listnom *DecomposeTheNameinlistnom(char *nom, listnom * listout);
540extern void DecomposeTheName(char *nom);
541extern void convert2lower(char *name);
542extern int convert2int(char *name);
543/******************************************************************************/
544/*********** UtilFile.c *******************************************************/
545/******************************************************************************/
546extern FILE * associate (char *filename);
547extern FILE * associateaplus (char *filename);
548extern long int setposcur();
549extern long int setposcurinoldfortranout();
550extern void copyuse_0(char *namemodule);
551extern void copyuseonly_0(char *namemodule);
552/******************************************************************************/
553/*********** UtilFortran.c ****************************************************/
554/******************************************************************************/
555extern void initdimprob(int dimprobmod, char * nx, char * ny,char* nz);
556extern int Variableshouldberemove(char *nom);
557extern int variableisglobal(listvar *curvar, listvar *listin);
558extern int VariableIsInListCommon(listvar *curvar,listvar *listin);
559extern int VariableIsInList(listvar *curvar,listvar *listin);
560extern void variableisglobalinmodule(listcouple *listin, char *module,
561                                                                 FILE *fileout);
562extern void Remove_Word_Contains_0();
563extern void Remove_Word_end_module_0();
564extern void Write_Word_Contains_0();
565extern void Write_Word_end_module_0();
566extern void Add_Subroutine_For_Alloc(char *nom);
567extern void Write_Alloc_Subroutine_0();
568extern void Write_Alloc_Subroutine_For_End_0();
569extern void Write_GlobalParameter_Declaration_0();
570extern void Write_NotGridDepend_Declaration_0();
571extern int IsTabvarsUseInArgument_0();
572extern int ImplicitNoneInSubroutine();
573extern void Add_Pointer_Var_From_List_1(listvar *listin);
574extern void Add_Pointer_Var_1(char *nom);
575extern int varispointer_0(char *ident);
576extern int VariableIsNotFunction(char *ident);
577/******************************************************************************/
578/*********** UtilListe.c ******************************************************/
579/******************************************************************************/
580extern void Init_Variable(variable *var);
581extern listvar * AddListvarToListvar(listvar *l,listvar *glob,
582                                                            int ValueFirstpass);
583extern void CreateAndFillin_Curvar(char *type,variable *curvar);
584extern void duplicatelistvar(listvar *orig);
585extern listdim * insertdim(listdim *lin,typedim nom);
586extern void change_dim_char(listdim *lin,listvar * l);
587extern int num_dims(listdim *d);
588extern variable * createvar(char *nom,listdim *d);
589extern listvar * insertvar(listvar *lin,variable *v);
590extern listvar *settype(char *nom,listvar *lin);
591/******************************************************************************/
592/*********** UtilNotGridDep.c *************************************************/
593/******************************************************************************/
594extern void Add_NotGridDepend_Var_1 (char *name);
595extern int VarIsNonGridDepend(char *name);
596/******************************************************************************/
597/*********** WorkWithAllocatelist.c *******************************************/
598/******************************************************************************/
599extern void Add_Allocate_Var_1(char *nom,char *nommodule);
600extern int IsVarAllocatable_0(char *ident);
601extern int varisallocatable_0(char *ident);
602/******************************************************************************/
603/*********** WorkWithglobliste.c **********************************************/
604/******************************************************************************/
605extern void Add_Globliste_1(listvar *listtoadd);
606extern void Add_SubroutineDeclarationSave_Var_1(listvar *listtoadd);
607/******************************************************************************/
608/*********** WorkWithlistdatavariable.c ***************************************/
609/******************************************************************************/
610extern void Add_Data_Var_1 (char *name,char *values);
611/******************************************************************************/
612/*********** WorkWithlistmoduleinfile.c ***************************************/
613/******************************************************************************/
614extern void Save_Length(char *nom, int whichone);
615extern void Save_Length_int(int val, int whichone);
616/******************************************************************************/
617/*********** WorkWithlistofmodulebysubroutine.c *******************************/
618/******************************************************************************/
619extern void RecordUseModulesVariables();
620extern void  RecordUseModulesUseModulesVariables();
621extern void Add_NameOfModuleUsed_1(char *name);
622extern void Addmoduletothelist(char *name);
623extern void WriteUsemoduleDeclaration();
624/******************************************************************************/
625/*********** WorkWithlistvarindoloop.c ****************************************/
626/******************************************************************************/
627extern void Add_UsedInSubroutine_Var_1 (char *ident);
628extern void ajoutevarindoloop_definedimension (char *name);
629extern void  ModifyThelistvarindoloop();
630extern void  CompleteThelistvarindoloop();
631extern void CopyRecord(variable *var1,variable *var2);
632extern void Update_List_Subroutine_Var(listvar *list_to_modify);
633extern void Update_List_Global_Var_From_List_Save_Var();
634extern void Update_List_From_Common_Var(listvar *list_to_modify);
635extern void Update_List_Var(listvar *list_to_modify);
636extern void List_UsedInSubroutine_Var_Update_From_Module_Used();
637extern void Update_NotGridDepend_Var(listvar *list_to_modify);
638extern int LookingForVariableInList(listvar *listin,variable *var);
639extern int LookingForVariableInListGlobal(listvar *listin,variable *var);
640extern int LookingForVariableInListName(listvar *listin,char *var);
641extern int LookingForVariableInListGlob(listvar *listin,variable *var);
642extern int LookingForVariableInListParamGlob(listparameter *listin,
643                                                                 variable *var);
644extern void UpdateListDeclarationWithDimensionList();
645extern void Clean_List_UsedInSubroutine_Var();
646extern void Clean_List_SubroutineDeclaration_Var();
647extern void Clean_List_Global_Var();
648extern void ListClean();
649extern void ListUpdate();
650extern void GiveTypeOfVariables();
651extern void Sort_List_SubroutineArgument_Var();
652extern void IndiceTabvars_Global_Var_Treated(char *nom);
653extern void IndiceTabvars_Global_Var_No_Treated(char *nom);
654extern void UpdateTheRemainingList(listvar *record);
655extern void IndiceTabvars_Common_Var_Treated(char *nom);
656extern void IndiceTabvars_Common_Var_No_Treated(char *nom);
657extern void IndiceTabvarsIdentification();
658extern void New_Allocate_Subroutine_Is_Necessary();
659extern void New_Allocate_Subroutine_For_Common_Is_Necessary();
660extern void NewModule_Creation_0();
661extern void UpdateList_SubroutineWhereAgrifUsed();
662extern void UpdateList_UsedInSubroutine_With_dimension();
663extern void Affiche();
664extern int SubInList_ContainsSubroutine();
665/******************************************************************************/
666/*********** WorkWithParameterlist.c ******************************************/
667/******************************************************************************/
668extern void Add_GlobalParameter_Var_1(listvar *listin);
669extern void Add_Parameter_Var_1(listvar *listin);
670extern void Add_Dimension_Var_1(listvar *listin);
671/******************************************************************************/
672/*********** WorkWithvarofsubroutineliste.c ***********************************/
673/******************************************************************************/
674extern void Add_SubroutineArgument_Var_1(listvar *listtoadd);
675extern void Add_FunctionType_Var_1(char *nom);
676extern void Add_SubroutineDeclaration_Var_1 (listvar *listtoadd);
677/******************************************************************************/
678/*********** Writedeclarations.c **********************************************/
679/******************************************************************************/
680extern void WriteBeginDeclaration(variable *v,char ligne[LONG_4C]);
681extern void WriteScalarDeclaration(variable *v,char ligne[LONG_4C]);
682extern void WriteTableDeclaration(variable * v,char ligne[LONG_4C],int tmpok);
683extern void writevardeclaration (listvar * var_record, FILE *fileout,
684                                                                     int value);
685extern void WriteLocalParamDeclaration();
686extern void WriteFunctionDeclaration();
687extern void WriteSubroutineDeclaration(int value);
688extern void WriteArgumentDeclaration_beforecall();
689extern void WriteArgumentDeclaration_Sort();
690extern listnom *writedeclarationintoamr (listvar * deb_common, FILE *fileout,
691                                       variable *var , char commonname[LONG_C],
692                           listnom *neededparameter, char name_common[LONG_C]);
693extern void writesub_loopdeclaration_scalar (listvar * deb_common,
694                                                                 FILE *fileout);
695extern void writesub_loopdeclaration_tab (listvar * deb_common, FILE *fileout);
696/******************************************************************************/
697/*********** WriteInFile.c ****************************************************/
698/******************************************************************************/
699extern void tofich_reste (FILE * filout, char *s,int returnlineornot);
700extern void tofich (FILE * filout, char *s, int returnlineornot);
701extern void tofich_blanc (FILE * filout, int size);
702extern void tofich_line (FILE * filout, int size, int long position);
703extern void RemoveWordSET_0(FILE * filout, long int position,
704                                                         long int sizetoremove);
705extern void RemoveWordCUR_0(FILE * filout, long int position,
706                                                         long int sizetoremove);
Note: See TracBrowser for help on using the repository browser.