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 vendors/AGRIF/current/LIB – NEMO

source: vendors/AGRIF/current/LIB/decl.h @ 2671

Last change on this file since 2671 was 2671, checked in by rblod, 13 years ago

Load working_directory into vendors/AGRIF/current.

File size: 33.4 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 8000
36
37#define LONG_C 3000
38#define LONG_4C 4000
39#define LONG_4M 4000
40#define LONG_40M 4000000
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_target;
92   int  v_dimsempty;
93   listdim *v_dimension;
94} variable ;               /* type of a variable                              */
95                           /* v_typevar : type (integer, real, ...)           */
96                           /* v_nomvar : name of the variable                 */
97                           /* v_dimension : list of dimensions of the variable*/
98                           /* v_nbdim: 1 if the variable is 1d, etc ...       */
99                           /* precision : Name of the variable which          */
100                           /* determine the precision. example : wp in the    */
101                           /* case where REAL(wp)                             */
102
103typedef struct listvar
104{
105   variable *var ;
106   struct listvar * suiv;
107} listvar ;                /* list of variables                               */
108
109
110typedef struct listusemodule
111{
112   char u_usemodule[LONG_C];
113   char u_charusemodule[LONG_C];
114   char u_cursubroutine[LONG_C];
115   char u_modulename[LONG_C];
116   int  u_firstuse;
117   struct listusemodule * suiv;
118} listusemodule;           /* list of names                                   */
119
120typedef struct listparameter
121{
122   char p_name[LONG_C];
123   char p_modulename[LONG_C];
124   struct listparameter * suiv;
125} listparameter ;           /* list of names                                  */
126
127typedef struct listname
128{
129   char n_name[LONG_C];
130   struct  listname* suiv;
131} listname ;            /* list of names                                  */
132
133typedef struct listcouple
134{
135   char c_namevar[LONG_C];
136   char c_namepointedvar[LONG_C];
137   struct listcouple * suiv;
138} listcouple;              /* list of names                                   */
139
140
141typedef struct listnom
142{
143   char o_nom[LONG_C];
144   char o_module[LONG_C];
145   char o_subroutinename[LONG_C];
146   int  o_val;
147   listcouple *couple;
148   struct listnom * suiv;
149} listnom;                 /* list of names                                   */
150
151
152typedef struct listallocate
153{
154   char a_nomvar[LONG_C];
155   char a_subroutine[LONG_C];
156   char a_module[LONG_C];
157   struct listallocate * suiv;
158} listallocate ;
159
160
161typedef struct listvarpointtovar
162{
163   char t_usemodule[LONG_C];
164   char t_cursubroutine[LONG_C];
165   listcouple *t_couple;
166   struct  listvarpointtovar* suiv;
167}listvarpointtovar ;       /* list of names                                   */
168
169
170typedef struct listindice
171{
172   int i_indice;
173   struct  listindice * suiv;
174} listindice;              /* list of indiced                                 */
175
176 variable *curvar;
177
178 listvar *List_ModuleUsedInModuleUsed_Var;
179 listvar *List_ModuleUsed_Var;
180 listvar *listduplicated;
181
182 listvar *List_GlobalParameter_Var;
183 listvar *List_Global_Var;
184 listvar *List_Data_Var;
185 listvar *List_Data_Var_Cur;
186 listvar *List_Save_Var;
187 listvar *List_SubroutineArgument_Var;
188 listvar *List_SubroutineDeclaration_Var;
189 listvar *List_UsedInSubroutine_Var;
190 listvar *List_Parameter_Var;
191 listvar *List_Dimension_Var;
192 listvar *List_FunctionType_Var;
193 listvar *List_NotGridDepend_Var;
194 listvar *List_Common_Var;
195
196
197 listname *List_Pointer_Var;
198 listname *List_ImplicitNoneSubroutine;
199
200 listusemodule *List_NameOfModuleUsed;
201 listusemodule *List_Include;
202 listusemodule *listofmoduletmp;
203 listusemodule *tmpuselocallist;
204
205 listparameter *List_GlobParamModuleUsedInModuleUsed_Var;
206 listparameter *List_GlobParamModuleUsed_Var;
207
208 listnom *List_ContainsSubroutine;
209 listnom *List_Subroutine_For_Alloc;
210 listnom *listofmodules;
211 listnom *List_NameOfModule;
212 listnom *List_NameOfCommon;
213 listnom *List_SubroutineWhereAgrifUsed;
214
215 listallocate *List_Allocate_Var;
216
217 listvarpointtovar *List_CouplePointed_Var;
218                           /*  variables which are pointed to an other one    */
219
220 listindice *Listofavailableindices;
221                           /* List of available indices in the tabvars table  */
222
223 listdim *curdim;
224 listdim *commondim;
225
226/******************************************************************************/
227/****************   *** COMMON Variables ***  *********************************/
228/******************************************************************************/
229
230 int positioninblock;
231 char commonvar[LONG_C];
232 char commonblockname[LONG_C];
233
234/******************************************************************************/
235/****************   *** AGRIF Variables ***   *********************************/
236/******************************************************************************/
237 int inagrifcallargument;
238 int afterpercent;
239 int sameagrifargument;
240 int InAgrifParentDef;
241 char sameagrifname[LONG_C];
242/******************************************************************************/
243/****************   *** VAR DEF Variables ***   *******************************/
244/******************************************************************************/
245 int indicemaxtabvars;     /* Number of variables in the model i.e. last      */
246                           /*    indice used in  the tabvars table            */
247 int PublicDeclare;        /* Variable has been declared as PUBLIC */
248 int PrivateDeclare;       /* Variable has been declared as PRIVATE */
249 int ExternalDeclare;      /* Variable has been declared as EXTERNAL */
250 int InitialValueGiven;    /* An initial value has been given */
251 int Allocatabledeclare;
252 int Targetdeclare;
253 int SaveDeclare;
254 int functiondeclarationisdone;
255 int pointerdeclare;
256 int optionaldeclare;
257 int VarType;
258 int VarTypepar;
259 int VariableIsParameter;
260 int dimsgiven;
261 int shouldincludempif;
262 int c_star;
263 char DeclType[LONG_C];
264 char nameinttypename[LONG_C];
265 char nameinttypenameback[LONG_C]; 
266 int GlobalDeclaration;
267 char InitValue[LONG_4C];
268 char IntentSpec[LONG_C];
269 char NamePrecision[LONG_C];
270 char CharacterSize[LONG_C];
271 char curmodulename[LONG_C];
272 char vallengspec[LONG_C];
273 char subroutinename[LONG_C];
274 int isrecursive;
275 char previoussubroutinename[LONG_C];
276
277/******************************************************************************/
278/****************   *** CONV Variables ***   **********************************/
279/******************************************************************************/
280 int dimprob ;             /* dimension of the problem : 1 for 1D,2 for 2D,   */
281                           /*    3 for 3D                                     */
282 int onlyfixedgrids;       /* = 1 if onlyfixedgrids is true                   */
283 int todebug;
284 int mark;
285 int todebugfree;
286 int fixedgrids;           /* = 1 if fixedgrids is true                       */
287 char nbmaillesX[LONG_C]; /* number of cells in the x direction              */
288 char nbmaillesY[LONG_C]; /* number of cells in the y direction              */
289 char nbmaillesZ[LONG_C]; /* number of cells in the z direction              */
290 int IndicenbmaillesX;
291 int IndicenbmaillesY;
292 int IndicenbmaillesZ;
293
294 int inmodulemeet;
295 int incalldeclare;
296 int aftercontainsdeclare; /* Signale si l'on vient d'un contains ou non */
297 int retour77;
298 int colnum;
299 int callagrifinitgrids;
300 int callmpiinit;
301 int firstpass;
302 int couldaddvariable;
303 int pointedvar;
304 int NbMailleXDefined;
305 int agrif_parentcall;
306 int didvariableadded;
307 int SubloopScalar;        /* = 1 we should put in argument of sub_loop       */
308                           /*    only                                         */
309                           /*    scalar and not table u(1,1,1) in place of u  */
310 int checkexistcommon;
311 int insubroutinedeclare;
312 int ininterfacedeclare;
313 int inmoduledeclare;
314 int dimsempty;
315 int created_dimensionlist;
316 int incontainssubroutine;
317
318 char meetagrifinitgrids[LONG_C];
319 char mpiinitvar[LONG_C];
320 char *NameTamponfile;
321 char toprintglob[LONG_4C];
322 char tmpvargridname[LONG_4C];
323 char EmptyChar[2];        /* An empty char */
324 char curfilename[LONG_C];
325 char nomfileoutput[LONG_C];
326 char curbuf[LONG_40M];
327 char motparse[LONG_4C];
328 char motparse1[LONG_4C];
329 char charusemodule[LONG_C];
330 char subofagrifinitgrids[LONG_C];
331 char curfile[LONG_C];
332 char mainfile[LONG_C];
333 char nomdir[LONG_C];
334 char commondirout[LONG_C];
335 char commondirin[LONG_C];
336 char filetoparse[LONG_C];
337
338 FILE *fortranout;          /* Output File                                    */
339 FILE *fortranin;           /* Input File                                     */
340 FILE *oldfortranout;
341 FILE *subloop;
342 FILE *module_declar;
343 FILE *allocationagrif;
344 FILE *paramout;
345
346 long int pos_cur;         /* current position in the output file             */
347 long int pos_curagrifparent;
348                           /* current position in the output file             */
349 long int pos_curcall;     /* current position in the output file             */
350 long int pos_curuse;      /* current position in the output file             */
351 long int pos_curuseold;   /* current position in the output file             */
352 long int pos_curfunction; /* current position in the output file             */
353 long int pos_cur_decl;    /* current position in the output file             */
354 long int pos_curdata;     /* current position in the output file             */
355 long int pos_curparameter;/* current position in the output file             */
356 long int pos_curcommon;   /* current position in the output file             */
357 long int pos_cursave;     /* current position in the output file             */
358 long int pos_curdimension;/* current position in the output file             */
359 long int pos_curinit;     /* current position in the output file             */
360 long int pos_curinclude;  /* final position of a line in file                */
361 long int pos_end;         /* final position of a line in file                */
362 long int pos_endsubroutine;
363                           /* final position of a line in file                */
364
365/* v_oldname = v_nomvar; */
366/* commonvar = v_nomvar; */
367/* commonblockname = v_commonname;*/
368/* sameagrifname = v_nomvar ; */
369/* DeclType = v_typevar; */
370/* nameinttypename = v_nameinttypename; */
371/* IntentSpec = v_IntentSpec; */
372/* NamePrecision = v_precision; */
373/* CharacterSize = v_dimchar; */
374/* curmodulename = v_modulename; */
375/* vallengspec = v_vallengspec; */
376/* subroutinename = v_subroutinename; */
377/* meetagrifinitgrids = v_subroutinename; */
378/* nbmaillesX = v_nomvar; */
379/* nbmaillesY = v_nomvar; */
380/* nbmaillesZ = v_nomvar; */
381/* mpiinitvar = v_nomvar; */
382/* EmptyChar = 2; */
383/* motparse1 = motparse;*/
384/* charusemodule = p_modulename; */
385/* subofagrifinitgrids = v_subroutinename; */
386/* curfile = mainfile; */
387/* InitValue = v_initialvalue; */
388
389/* p_name;???????? */
390/* p_modulename; ?????????????*/
391
392 int length_last;
393 int length_first;
394 int length_v_typevar;
395 int length_v_nomvar;
396 int length_v_dimchar;
397 int length_v_modulename;
398 int length_v_commonname;
399 int length_v_vallengspec;
400 int length_v_nameinttypename;
401 int length_v_commoninfile;
402 int length_v_subroutinename;
403 int length_v_precision;
404 int length_v_IntentSpec;
405 int length_v_initialvalue;
406 int length_v_readedlistdimension;
407 int length_u_usemodule;
408 int length_u_charusemodule;
409 int length_u_cursubroutine;
410 int length_u_modulename;
411 int length_n_name;
412 int length_c_namevar;
413 int length_c_namepointedvar;
414 int length_o_nom;
415 int length_o_module;
416 int length_a_nomvar;
417 int length_a_subroutine;
418 int length_a_module;
419 int length_t_usemodule;
420 int length_t_cursubroutine;
421 int length_curfilename;
422 int length_nomfileoutput;
423 int length_motparse;
424 int length_mainfile;
425 int length_nomdir;
426 int length_commondirout;
427 int length_commondirin;
428 int length_filetoparse;
429 int length_curbuf;
430 int length_toprintglob;
431 int length_tmpvargridname;
432 int length_ligne_Subloop;
433 int length_lvargridname_toamr;
434 int length_toprint_utilagrif;
435 int length_toprinttmp_utilchar;
436 int length_ligne_writedecl;
437 int length_newname_toamr;
438 int length_newname_writedecl;
439 int length_ligne_toamr;
440 int length_tmpligne_writedecl;
441 int value_char_size;
442 int value_char_size1;
443 int value_char_size2;
444 int value_char_size3;
445
446 
447 int inallocate;
448 int infixed;
449 int infree;
450/******************************************************************************/
451/*********** Declaration of externals subroutines *****************************/
452/***************************************************** ************************/
453/******************************************************************************/
454/*********** convert.y ********************************************************/
455/******************************************************************************/
456extern int main(int argc,char *argv[]);
457/******************************************************************************/
458/*********** fortran.y ********************************************************/
459/******************************************************************************/
460extern void processfortran(char *fichier_entree);
461/******************************************************************************/
462/*********** dependfile.c *****************************************************/
463/******************************************************************************/
464extern void Writethedependnbxnbyfile();
465extern void Readthedependnbxnbyfile();
466extern void Writethedependlistofmoduleused(char *NameTampon );
467extern void Readthedependlistofmoduleused(char *NameTampon);
468extern void WritedependParameterList(char *NameTampon );
469extern listparameter *ReaddependParameterList(char *NameTampon,
470                                                        listparameter *listout);
471extern void Writethedependfile(char *NameTampon, listvar *input );
472extern listvar *Readthedependfile( char *NameTampon , listvar *listout);
473extern void Write_Subroutine_For_Alloc();
474extern void Read_Subroutine_For_Alloc();
475extern void Writethedependavailablefile();
476extern void Readthedependavailablefile();
477extern int Did_filetoparse_readed(char *NameTampon);
478extern int Did_module_common_treaded(char *NameTampon);
479extern void Write_val_max();
480extern void Read_val_max();
481/******************************************************************************/
482/*********** DiversListe.c ****************************************************/
483/******************************************************************************/
484extern void Add_Common_var_1();
485extern listnom *Addtolistnom(char *nom, listnom *listin,int value);
486extern listname *Addtolistname(char *nom,listname *input);
487extern int ModuleIsDefineInInputFile(char *name);
488extern void Addmoduletothelisttmp(char *name);
489extern void Add_NameOfModule_1(char *nom);
490extern void Add_NameOfCommon_1(char *nom,char *cursubroutinename);
491extern void Add_CouplePointed_Var_1(char *namemodule,listcouple *couple);
492extern void Add_Include_1(char *name);
493extern void Add_ImplicitNoneSubroutine_1();
494extern void WriteIncludeDeclaration();
495extern void Add_Save_Var_1 (char *name,listdim *d);
496extern void Add_Save_Var_dcl_1 (listvar *var);
497/******************************************************************************/
498/*********** SubLoopCreation.c ************************************************/
499/******************************************************************************/
500extern void writeheadnewsub_0();
501extern void WriteVariablelist_subloop(FILE *outputfile,char *ligne);
502extern void WriteVariablelist_subloop_Call(FILE *outputfile,char *ligne);
503extern void WriteVariablelist_subloop_Def(FILE *outputfile,char *ligne);
504extern void WriteHeadofSubroutineLoop();
505extern void closeandcallsubloopandincludeit_0(int suborfun);
506extern void closeandcallsubloop_contains_0();
507/******************************************************************************/
508/*********** toamr.c **********************************************************/
509/******************************************************************************/
510extern char *variablenameroottabvars (variable * var);
511extern char *variablenametabvars (variable * var, int iorindice);
512extern char *variablecurgridtabvars (variable * var,int ParentOrCurgrid);
513extern void WARNING_CharSize(variable *var);
514extern char *vargridnametabvars (variable * var,int iorindice);
515extern char *vargridcurgridtabvars (variable * var,int ParentOrCurgrid);
516extern char *vargridcurgridtabvarswithoutAgrif_Gr (variable * var);
517extern char *vargridparam (variable * v, int whichone);
518extern void write_probdimagrif_file();
519extern void write_keysagrif_file();
520extern void write_modtypeagrif_file();
521extern void write_createvarnameagrif_file(variable *v,FILE *createvarname,
522                                                                int *InitEmpty);
523extern void write_Setnumberofcells_file();
524extern void write_Getnumberofcells_file();
525extern void write_initialisationsagrif_file(variable *v,FILE *initproc,
526                                                             int *VarnameEmpty);
527extern void Write_Alloc_Agrif_Files();
528extern int IndiceInlist(int indic, listindice *listin);
529extern void write_allocation_Common_0();
530extern void write_allocation_Global_0();
531extern void creefichieramr (char *NameTampon);
532/******************************************************************************/
533/*********** UtilAgrif.c ******************************************************/
534/******************************************************************************/
535extern int Vartonumber(char *tokname);
536extern int Agrif_in_Tok_NAME(char *tokname);
537extern void ModifyTheVariableName_0(char *ident,int lengthname);
538extern void Add_SubroutineWhereAgrifUsed_1(char *sub,char *mod);
539extern void AddUseAgrifUtil_0(FILE *fileout);
540extern void AddUseAgrifUtilBeforeCall_0(FILE *fileout);
541extern void NotifyAgrifFunction_0(char *ident);
542extern void ModifyTheAgrifFunction_0(char *ident);
543extern void AgriffunctionModify_0(char *ident,int whichone);
544extern void Instanciation_0(char *ident);
545/******************************************************************************/
546/*********** UtilCharacter.c **************************************************/
547/******************************************************************************/
548extern void FindAndChangeNameToTabvars(char name[LONG_C],char toprint[LONG_4C],
549                                             listvar * listtosee, int whichone);
550extern char *ChangeTheInitalvaluebyTabvarsName(char *nom,listvar *listtoread,
551                                                                  int whichone);
552extern int IsVariableReal(char *nom);
553extern void IsVarInUseFile(char *nom);
554extern listnom *DecomposeTheNameinlistnom(char *nom, listnom * listout);
555extern void DecomposeTheName(char *nom);
556extern void convert2lower(char *name);
557extern int convert2int(char *name);
558/******************************************************************************/
559/*********** UtilFile.c *******************************************************/
560/******************************************************************************/
561extern FILE * associate (char *filename);
562extern FILE * associateaplus (char *filename);
563extern long int setposcur();
564extern long int setposcurname(FILE *fileout);
565extern long int setposcurinoldfortranout();
566extern void copyuse_0(char *namemodule);
567extern void copyuseonly_0(char *namemodule);
568/******************************************************************************/
569/*********** UtilFortran.c ****************************************************/
570/******************************************************************************/
571extern void initdimprob(int dimprobmod, char * nx, char * ny,char* nz);
572extern int Variableshouldberemove(char *nom);
573extern int variableisglobal(listvar *curvar, listvar *listin);
574extern int VariableIsInListCommon(listvar *curvar,listvar *listin);
575extern int VariableIsInList(listvar *curvar,listvar *listin);
576extern void variableisglobalinmodule(listcouple *listin, char *module,
577                                                                 FILE *fileout,long int oldposcuruse);
578extern void Remove_Word_Contains_0();
579extern void Remove_Word_end_module_0(int modulenamelength);
580extern void Write_Word_Contains_0();
581extern void Write_Word_end_module_0();
582extern void Add_Subroutine_For_Alloc(char *nom);
583extern void Write_Alloc_Subroutine_0();
584extern void Write_Alloc_Subroutine_For_End_0();
585extern void Write_GlobalParameter_Declaration_0();
586extern void Write_GlobalType_Declaration_0();
587extern void Write_NotGridDepend_Declaration_0();
588extern int IsTabvarsUseInArgument_0();
589extern int ImplicitNoneInSubroutine();
590extern void Add_Pointer_Var_From_List_1(listvar *listin);
591extern void Add_Pointer_Var_1(char *nom);
592extern int varispointer_0(char *ident);
593extern int VariableIsNotFunction(char *ident);
594extern int varistyped_0(char *ident);
595/******************************************************************************/
596/*********** UtilListe.c ******************************************************/
597/******************************************************************************/
598extern void Init_Variable(variable *var);
599extern listvar * AddListvarToListvar(listvar *l,listvar *glob,
600                                                            int ValueFirstpass);
601extern void CreateAndFillin_Curvar(char *type,variable *curvar);
602extern void duplicatelistvar(listvar *orig);
603extern listdim * insertdim(listdim *lin,typedim nom);
604extern void change_dim_char(listdim *lin,listvar * l);
605extern int num_dims(listdim *d);
606extern variable * createvar(char *nom,listdim *d);
607extern listvar * insertvar(listvar *lin,variable *v);
608extern listvar *settype(char *nom,listvar *lin);
609extern void printliste(listvar * lin);
610extern int IsinListe(listvar *lin,char *nom);
611extern listname *Insertname(listname *lin,char *nom,int sens);
612extern listname *concat_listname(listname *l1, listname *l2);
613extern void *createstringfromlistname(char *ligne, listname *lin);
614extern void printname(listname * lin);
615extern void removeglobfromlist(listname **lin);
616extern void writelistpublic(listname *lin);
617extern void Init_List_Data_Var();
618/******************************************************************************/
619/*********** UtilNotGridDep.c *************************************************/
620/******************************************************************************/
621extern void Add_NotGridDepend_Var_1 (char *name);
622extern int VarIsNonGridDepend(char *name);
623/******************************************************************************/
624/*********** WorkWithAllocatelist.c *******************************************/
625/******************************************************************************/
626extern void Add_Allocate_Var_1(char *nom,char *nommodule);
627extern int IsVarAllocatable_0(char *ident);
628extern int varisallocatable_0(char *ident);
629/******************************************************************************/
630/*********** WorkWithglobliste.c **********************************************/
631/******************************************************************************/
632extern void Add_Globliste_1(listvar *listtoadd);
633extern void Add_SubroutineDeclarationSave_Var_1(listvar *listtoadd);
634extern void checkandchangedims(listvar *listsecondpass);
635/******************************************************************************/
636/*********** WorkWithlistdatavariable.c ***************************************/
637/******************************************************************************/
638extern void Add_Data_Var_1 (listvar **curlist,char *name,char *values);
639extern void Add_Data_Var_Names_01 (listvar **curlist,listname *l1, listname *l2);
640/******************************************************************************/
641/*********** WorkWithlistmoduleinfile.c ***************************************/
642/******************************************************************************/
643extern void Save_Length(char *nom, int whichone);
644extern void Save_Length_int(int val, int whichone);
645/******************************************************************************/
646/*********** WorkWithlistofmodulebysubroutine.c *******************************/
647/******************************************************************************/
648extern void RecordUseModulesVariables();
649extern void  RecordUseModulesUseModulesVariables();
650extern void Add_NameOfModuleUsed_1(char *name);
651extern void Addmoduletothelist(char *name);
652extern void WriteUsemoduleDeclaration(char *cursubroutinename);
653/******************************************************************************/
654/*********** WorkWithlistvarindoloop.c ****************************************/
655/******************************************************************************/
656extern void Add_UsedInSubroutine_Var_1 (char *ident);
657extern void ajoutevarindoloop_definedimension (char *name);
658extern void  ModifyThelistvarindoloop();
659extern void  CompleteThelistvarindoloop();
660extern void CopyRecord(variable *var1,variable *var2);
661extern void Update_List_Subroutine_Var(listvar *list_to_modify);
662extern void Update_List_Global_Var_From_List_Save_Var();
663extern void Update_List_From_Common_Var(listvar *list_to_modify);
664extern void Update_List_Var(listvar *list_to_modify);
665extern void List_UsedInSubroutine_Var_Update_From_Module_Used();
666extern void Update_NotGridDepend_Var(listvar *list_to_modify);
667extern int LookingForVariableInList(listvar *listin,variable *var);
668extern int LookingForVariableInListGlobal(listvar *listin,variable *var);
669extern int LookingForVariableInListName(listvar *listin,char *var);
670extern int LookingForVariableInListGlob(listvar *listin,variable *var);
671extern int LookingForVariableInListParamGlob(listparameter *listin,
672                                                                 variable *var);
673extern void UpdateListDeclarationWithDimensionList();
674extern void Clean_List_UsedInSubroutine_Var();
675extern void Clean_List_SubroutineDeclaration_Var();
676extern void Clean_List_Global_Var();
677extern void ListClean();
678extern void ListUpdate();
679extern void GiveTypeOfVariables();
680extern void Sort_List_SubroutineArgument_Var();
681extern void IndiceTabvars_Global_Var_Treated(char *nom);
682extern void IndiceTabvars_Global_Var_No_Treated(char *nom);
683extern void UpdateTheRemainingList(listvar *record);
684extern void IndiceTabvars_Common_Var_Treated(char *nom);
685extern void IndiceTabvars_Common_Var_No_Treated(char *nom);
686extern void IndiceTabvarsIdentification();
687extern void New_Allocate_Subroutine_Is_Necessary();
688extern void New_Allocate_Subroutine_For_Common_Is_Necessary();
689extern void NewModule_Creation_0();
690extern void UpdateList_SubroutineWhereAgrifUsed();
691extern void UpdateList_UsedInSubroutine_With_dimension();
692extern void Affiche();
693extern int SubInList_ContainsSubroutine();
694/******************************************************************************/
695/*********** WorkWithParameterlist.c ******************************************/
696/******************************************************************************/
697extern void Add_GlobalParameter_Var_1(listvar *listin);
698extern void Add_Parameter_Var_1(listvar *listin);
699extern void Add_Dimension_Var_1(listvar *listin);
700/******************************************************************************/
701/*********** WorkWithvarofsubroutineliste.c ***********************************/
702/******************************************************************************/
703extern void Add_SubroutineArgument_Var_1(listvar *listtoadd);
704extern void Add_FunctionType_Var_1(char *nom);
705extern void Add_SubroutineDeclaration_Var_1 (listvar *listtoadd);
706/******************************************************************************/
707/*********** Writedeclarations.c **********************************************/
708/******************************************************************************/
709extern void WriteBeginDeclaration(variable *v,char ligne[LONG_4C],int visibility);
710extern void WriteScalarDeclaration(variable *v,char ligne[LONG_4C]);
711extern void WriteTableDeclaration(variable * v,char ligne[LONG_4C],int tmpok);
712extern void writevardeclaration (listvar * var_record, FILE *fileout,
713                                                                     int value,int visibility);
714extern void WriteLocalParamDeclaration();
715extern void WriteFunctionDeclaration(int value);
716extern void WriteSubroutineDeclaration(int value);
717extern void WriteArgumentDeclaration_beforecall();
718extern void WriteArgumentDeclaration_Sort();
719extern listnom *writedeclarationintoamr (listvar * deb_common, FILE *fileout,
720                                       variable *var , char commonname[LONG_C],
721                           listnom *neededparameter, char name_common[LONG_C]);
722extern void writesub_loopdeclaration_scalar (listvar * deb_common,
723                                                                 FILE *fileout);
724extern void writesub_loopdeclaration_tab (listvar * deb_common, FILE *fileout);
725extern void ReWriteDeclarationAndAddTosubroutine_01(listvar *listdecl);
726extern void ReWriteDataStatement_0(FILE * filout);
727/******************************************************************************/
728/*********** WriteInFile.c ****************************************************/
729/******************************************************************************/
730extern void tofich_reste (FILE * filout, char *s,int returnlineornot);
731extern void tofich (FILE * filout, char *s, int returnlineornot);
732extern void tofich_blanc (FILE * filout, int size);
733extern void tofich_line (FILE * filout, int size, int long position);
734extern void RemoveWordSET_0(FILE * filout, long int position,
735                                                         long int sizetoremove);
736extern void RemoveWordCUR_0(FILE * filout, long int position,
737                                                         long int sizetoremove);
738
739/******************************************************************************/
740/*********** WorkWithlistofcoupled.c **********************************************/
741/******************************************************************************/                                                       
742extern int variscoupled_0(char *ident) ;
743extern char * getcoupledname_0(char *ident);
744extern void ModifyTheVariableNamecoupled_0(char *ident, char* coupledident);
Note: See TracBrowser for help on using the repository browser.