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 branches/nemo_v3_3_beta/NEMOGCM/EXTERNAL/AGRIF/LIB – NEMO

source: branches/nemo_v3_3_beta/NEMOGCM/EXTERNAL/AGRIF/LIB/decl.h @ 2281

Last change on this file since 2281 was 2281, checked in by smasson, 14 years ago

set proper svn properties to all files...

  • Property svn:keywords set to Id
File size: 32.8 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 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 char nameinttypenameback[LONG_C]; 
261 int GlobalDeclaration;
262 char InitValue[LONG_4C];
263 char IntentSpec[LONG_C];
264 char NamePrecision[LONG_C];
265 char CharacterSize[LONG_C];
266 char curmodulename[LONG_C];
267 char vallengspec[LONG_C];
268 char subroutinename[LONG_C];
269
270/******************************************************************************/
271/****************   *** CONV Variables ***   **********************************/
272/******************************************************************************/
273 int dimprob ;             /* dimension of the problem : 1 for 1D,2 for 2D,   */
274                           /*    3 for 3D                                     */
275 int onlyfixedgrids;       /* = 1 if onlyfixedgrids is true                   */
276 int todebug;
277 int mark;
278 int todebugfree;
279 int fixedgrids;           /* = 1 if fixedgrids is true                       */
280 char nbmaillesX[LONG_C]; /* number of cells in the x direction              */
281 char nbmaillesY[LONG_C]; /* number of cells in the y direction              */
282 char nbmaillesZ[LONG_C]; /* number of cells in the z direction              */
283 int IndicenbmaillesX;
284 int IndicenbmaillesY;
285 int IndicenbmaillesZ;
286
287 int inmodulemeet;
288 int incalldeclare;
289 int aftercontainsdeclare; /* Signale si l'on vient d'un contains ou non */
290 int retour77;
291 int colnum;
292 int callagrifinitgrids;
293 int callmpiinit;
294 int firstpass;
295 int couldaddvariable;
296 int pointedvar;
297 int NbMailleXDefined;
298 int agrif_parentcall;
299 int didvariableadded;
300 int SubloopScalar;        /* = 1 we should put in argument of sub_loop       */
301                           /*    only                                         */
302                           /*    scalar and not table u(1,1,1) in place of u  */
303 int checkexistcommon;
304 int insubroutinedeclare;
305 int inmoduledeclare;
306 int dimsempty;
307 int created_dimensionlist;
308
309 char meetagrifinitgrids[LONG_C];
310 char mpiinitvar[LONG_C];
311 char *NameTamponfile;
312 char toprintglob[LONG_4C];
313 char tmpvargridname[LONG_4C];
314 char EmptyChar[2];        /* An empty char */
315 char curfilename[LONG_C];
316 char nomfileoutput[LONG_C];
317 char curbuf[LONG_40M];
318 char motparse[LONG_4C];
319 char motparse1[LONG_4C];
320 char charusemodule[LONG_C];
321 char subofagrifinitgrids[LONG_C];
322 char curfile[LONG_C];
323 char mainfile[LONG_C];
324 char nomdir[LONG_C];
325 char commondirout[LONG_C];
326 char commondirin[LONG_C];
327 char filetoparse[LONG_C];
328
329 FILE *fortranout;          /* Output File                                    */
330 FILE *fortranin;           /* Input File                                     */
331 FILE *oldfortranout;
332 FILE *subloop;
333 FILE *module_declar;
334 FILE *allocationagrif;
335 FILE *paramout;
336
337 long int pos_cur;         /* current position in the output file             */
338 long int pos_curagrifparent;
339                           /* current position in the output file             */
340 long int pos_curcall;     /* current position in the output file             */
341 long int pos_curuse;      /* current position in the output file             */
342 long int pos_curuseold;   /* current position in the output file             */
343 long int pos_curfunction; /* current position in the output file             */
344 long int pos_cur_decl;    /* current position in the output file             */
345 long int pos_curdata;     /* current position in the output file             */
346 long int pos_curparameter;/* current position in the output file             */
347 long int pos_curcommon;   /* current position in the output file             */
348 long int pos_cursave;     /* current position in the output file             */
349 long int pos_curdimension;/* current position in the output file             */
350 long int pos_curinit;     /* current position in the output file             */
351 long int pos_curinclude;  /* final position of a line in file                */
352 long int pos_end;         /* final position of a line in file                */
353 long int pos_endsubroutine;
354                           /* final position of a line in file                */
355
356/* v_oldname = v_nomvar; */
357/* commonvar = v_nomvar; */
358/* commonblockname = v_commonname;*/
359/* sameagrifname = v_nomvar ; */
360/* DeclType = v_typevar; */
361/* nameinttypename = v_nameinttypename; */
362/* IntentSpec = v_IntentSpec; */
363/* NamePrecision = v_precision; */
364/* CharacterSize = v_dimchar; */
365/* curmodulename = v_modulename; */
366/* vallengspec = v_vallengspec; */
367/* subroutinename = v_subroutinename; */
368/* meetagrifinitgrids = v_subroutinename; */
369/* nbmaillesX = v_nomvar; */
370/* nbmaillesY = v_nomvar; */
371/* nbmaillesZ = v_nomvar; */
372/* mpiinitvar = v_nomvar; */
373/* EmptyChar = 2; */
374/* motparse1 = motparse;*/
375/* charusemodule = p_modulename; */
376/* subofagrifinitgrids = v_subroutinename; */
377/* curfile = mainfile; */
378/* InitValue = v_initialvalue; */
379
380/* p_name;???????? */
381/* p_modulename; ?????????????*/
382
383 int length_last;
384 int length_first;
385 int length_v_typevar;
386 int length_v_nomvar;
387 int length_v_dimchar;
388 int length_v_modulename;
389 int length_v_commonname;
390 int length_v_vallengspec;
391 int length_v_nameinttypename;
392 int length_v_commoninfile;
393 int length_v_subroutinename;
394 int length_v_precision;
395 int length_v_IntentSpec;
396 int length_v_initialvalue;
397 int length_v_readedlistdimension;
398 int length_u_usemodule;
399 int length_u_charusemodule;
400 int length_u_cursubroutine;
401 int length_u_modulename;
402 int length_n_name;
403 int length_c_namevar;
404 int length_c_namepointedvar;
405 int length_o_nom;
406 int length_o_module;
407 int length_a_nomvar;
408 int length_a_subroutine;
409 int length_a_module;
410 int length_t_usemodule;
411 int length_t_cursubroutine;
412 int length_curfilename;
413 int length_nomfileoutput;
414 int length_motparse;
415 int length_mainfile;
416 int length_nomdir;
417 int length_commondirout;
418 int length_commondirin;
419 int length_filetoparse;
420 int length_curbuf;
421 int length_toprintglob;
422 int length_tmpvargridname;
423 int length_ligne_Subloop;
424 int length_lvargridname_toamr;
425 int length_toprint_utilagrif;
426 int length_toprinttmp_utilchar;
427 int length_ligne_writedecl;
428 int length_newname_toamr;
429 int length_newname_writedecl;
430 int length_ligne_toamr;
431 int length_tmpligne_writedecl;
432 int value_char_size;
433 int value_char_size1;
434 int value_char_size2;
435 int value_char_size3;
436
437 
438 int inallocate;
439 int infixed;
440 int infree;
441/******************************************************************************/
442/*********** Declaration of externals subroutines *****************************/
443/***************************************************** ************************/
444/******************************************************************************/
445/*********** convert.y ********************************************************/
446/******************************************************************************/
447extern int main(int argc,char *argv[]);
448/******************************************************************************/
449/*********** fortran.y ********************************************************/
450/******************************************************************************/
451extern void processfortran(char *fichier_entree);
452/******************************************************************************/
453/*********** dependfile.c *****************************************************/
454/******************************************************************************/
455extern void Writethedependnbxnbyfile();
456extern void Readthedependnbxnbyfile();
457extern void Writethedependlistofmoduleused(char *NameTampon );
458extern void Readthedependlistofmoduleused(char *NameTampon);
459extern void WritedependParameterList(char *NameTampon );
460extern listparameter *ReaddependParameterList(char *NameTampon,
461                                                        listparameter *listout);
462extern void Writethedependfile(char *NameTampon, listvar *input );
463extern listvar *Readthedependfile( char *NameTampon , listvar *listout);
464extern void Write_Subroutine_For_Alloc();
465extern void Read_Subroutine_For_Alloc();
466extern void Writethedependavailablefile();
467extern void Readthedependavailablefile();
468extern int Did_filetoparse_readed(char *NameTampon);
469extern int Did_module_common_treaded(char *NameTampon);
470extern void Write_val_max();
471extern void Read_val_max();
472/******************************************************************************/
473/*********** DiversListe.c ****************************************************/
474/******************************************************************************/
475extern void Add_Common_var_1();
476extern listnom *Addtolistnom(char *nom, listnom *listin,int value);
477extern listname *Addtolistname(char *nom,listname *input);
478extern int ModuleIsDefineInInputFile(char *name);
479extern void Addmoduletothelisttmp(char *name);
480extern void Add_NameOfModule_1(char *nom);
481extern void Add_NameOfCommon_1(char *nom);
482extern void Add_CouplePointed_Var_1(char *namemodule,listcouple *couple);
483extern void Add_Include_1(char *name);
484extern void Add_ImplicitNoneSubroutine_1();
485extern void WriteIncludeDeclaration();
486extern void Add_Save_Var_1 (char *name,listdim *d);
487extern void Add_Save_Var_dcl_1 (listvar *var);
488/******************************************************************************/
489/*********** SubLoopCreation.c ************************************************/
490/******************************************************************************/
491extern void writeheadnewsub_0();
492extern void WriteVariablelist_subloop(FILE *outputfile);
493extern void WriteVariablelist_subloop_Call(FILE *outputfile);
494extern void WriteVariablelist_subloop_Def(FILE *outputfile);
495extern void WriteHeadofSubroutineLoop();
496extern void closeandcallsubloopandincludeit_0(int suborfun);
497extern void closeandcallsubloop_contains_0();
498/******************************************************************************/
499/*********** toamr.c **********************************************************/
500/******************************************************************************/
501extern char *variablenameroottabvars (variable * var);
502extern char *variablenametabvars (variable * var, int iorindice);
503extern char *variablecurgridtabvars (variable * var,int ParentOrCurgrid);
504extern void WARNING_CharSize(variable *var);
505extern char *vargridnametabvars (variable * var,int iorindice);
506extern char *vargridcurgridtabvars (variable * var,int ParentOrCurgrid);
507extern char *vargridcurgridtabvarswithoutAgrif_Gr (variable * var);
508extern char *vargridparam (variable * v, int whichone);
509extern void write_probdimagrif_file();
510extern void write_keysagrif_file();
511extern void write_modtypeagrif_file();
512extern void write_createvarnameagrif_file(variable *v,FILE *createvarname,
513                                                                int *InitEmpty);
514extern void write_Setnumberofcells_file();
515extern void write_Getnumberofcells_file();
516extern void write_initialisationsagrif_file(variable *v,FILE *initproc,
517                                                             int *VarnameEmpty);
518extern void Write_Alloc_Agrif_Files();
519extern int IndiceInlist(int indic, listindice *listin);
520extern void write_allocation_Common_0();
521extern void write_allocation_Global_0();
522extern void creefichieramr (char *NameTampon);
523/******************************************************************************/
524/*********** UtilAgrif.c ******************************************************/
525/******************************************************************************/
526extern int Vartonumber(char *tokname);
527extern int Agrif_in_Tok_NAME(char *tokname);
528extern void ModifyTheVariableName_0(char *ident,int lengthname);
529extern void Add_SubroutineWhereAgrifUsed_1(char *sub,char *mod);
530extern void AddUseAgrifUtil_0(FILE *fileout);
531extern void AddUseAgrifUtilBeforeCall_0(FILE *fileout);
532extern void NotifyAgrifFunction_0(char *ident);
533extern void ModifyTheAgrifFunction_0(char *ident);
534extern void AgriffunctionModify_0(char *ident,int whichone);
535extern void Instanciation_0(char *ident);
536/******************************************************************************/
537/*********** UtilCharacter.c **************************************************/
538/******************************************************************************/
539extern void FindAndChangeNameToTabvars(char name[LONG_C],char toprint[LONG_4C],
540                                             listvar * listtosee, int whichone);
541extern char *ChangeTheInitalvaluebyTabvarsName(char *nom,listvar *listtoread,
542                                                                  int whichone);
543extern int IsVariableReal(char *nom);
544extern void IsVarInUseFile(char *nom);
545extern listnom *DecomposeTheNameinlistnom(char *nom, listnom * listout);
546extern void DecomposeTheName(char *nom);
547extern void convert2lower(char *name);
548extern int convert2int(char *name);
549/******************************************************************************/
550/*********** UtilFile.c *******************************************************/
551/******************************************************************************/
552extern FILE * associate (char *filename);
553extern FILE * associateaplus (char *filename);
554extern long int setposcur();
555extern long int setposcurname(FILE *fileout);
556extern long int setposcurinoldfortranout();
557extern void copyuse_0(char *namemodule);
558extern void copyuseonly_0(char *namemodule);
559/******************************************************************************/
560/*********** UtilFortran.c ****************************************************/
561/******************************************************************************/
562extern void initdimprob(int dimprobmod, char * nx, char * ny,char* nz);
563extern int Variableshouldberemove(char *nom);
564extern int variableisglobal(listvar *curvar, listvar *listin);
565extern int VariableIsInListCommon(listvar *curvar,listvar *listin);
566extern int VariableIsInList(listvar *curvar,listvar *listin);
567extern void variableisglobalinmodule(listcouple *listin, char *module,
568                                                                 FILE *fileout,long int oldposcuruse);
569extern void Remove_Word_Contains_0();
570extern void Remove_Word_end_module_0(int modulenamelength);
571extern void Write_Word_Contains_0();
572extern void Write_Word_end_module_0();
573extern void Add_Subroutine_For_Alloc(char *nom);
574extern void Write_Alloc_Subroutine_0();
575extern void Write_Alloc_Subroutine_For_End_0();
576extern void Write_GlobalParameter_Declaration_0();
577extern void Write_GlobalType_Declaration_0();
578extern void Write_NotGridDepend_Declaration_0();
579extern int IsTabvarsUseInArgument_0();
580extern int ImplicitNoneInSubroutine();
581extern void Add_Pointer_Var_From_List_1(listvar *listin);
582extern void Add_Pointer_Var_1(char *nom);
583extern int varispointer_0(char *ident);
584extern int VariableIsNotFunction(char *ident);
585extern int varistyped_0(char *ident);
586/******************************************************************************/
587/*********** UtilListe.c ******************************************************/
588/******************************************************************************/
589extern void Init_Variable(variable *var);
590extern listvar * AddListvarToListvar(listvar *l,listvar *glob,
591                                                            int ValueFirstpass);
592extern void CreateAndFillin_Curvar(char *type,variable *curvar);
593extern void duplicatelistvar(listvar *orig);
594extern listdim * insertdim(listdim *lin,typedim nom);
595extern void change_dim_char(listdim *lin,listvar * l);
596extern int num_dims(listdim *d);
597extern variable * createvar(char *nom,listdim *d);
598extern listvar * insertvar(listvar *lin,variable *v);
599extern listvar *settype(char *nom,listvar *lin);
600extern void printliste(listvar * lin);
601extern int IsinListe(listvar *lin,char *nom);
602extern listname *Insertname(listname *lin,char *nom);
603extern void printname(listname * lin);
604extern void removeglobfromlist(listname **lin);
605extern void writelistpublic(listname *lin);
606/******************************************************************************/
607/*********** UtilNotGridDep.c *************************************************/
608/******************************************************************************/
609extern void Add_NotGridDepend_Var_1 (char *name);
610extern int VarIsNonGridDepend(char *name);
611/******************************************************************************/
612/*********** WorkWithAllocatelist.c *******************************************/
613/******************************************************************************/
614extern void Add_Allocate_Var_1(char *nom,char *nommodule);
615extern int IsVarAllocatable_0(char *ident);
616extern int varisallocatable_0(char *ident);
617/******************************************************************************/
618/*********** WorkWithglobliste.c **********************************************/
619/******************************************************************************/
620extern void Add_Globliste_1(listvar *listtoadd);
621extern void Add_SubroutineDeclarationSave_Var_1(listvar *listtoadd);
622extern void checkandchangedims(listvar *listsecondpass);
623/******************************************************************************/
624/*********** WorkWithlistdatavariable.c ***************************************/
625/******************************************************************************/
626extern void Add_Data_Var_1 (char *name,char *values);
627/******************************************************************************/
628/*********** WorkWithlistmoduleinfile.c ***************************************/
629/******************************************************************************/
630extern void Save_Length(char *nom, int whichone);
631extern void Save_Length_int(int val, int whichone);
632/******************************************************************************/
633/*********** WorkWithlistofmodulebysubroutine.c *******************************/
634/******************************************************************************/
635extern void RecordUseModulesVariables();
636extern void  RecordUseModulesUseModulesVariables();
637extern void Add_NameOfModuleUsed_1(char *name);
638extern void Addmoduletothelist(char *name);
639extern void WriteUsemoduleDeclaration();
640/******************************************************************************/
641/*********** WorkWithlistvarindoloop.c ****************************************/
642/******************************************************************************/
643extern void Add_UsedInSubroutine_Var_1 (char *ident);
644extern void ajoutevarindoloop_definedimension (char *name);
645extern void  ModifyThelistvarindoloop();
646extern void  CompleteThelistvarindoloop();
647extern void CopyRecord(variable *var1,variable *var2);
648extern void Update_List_Subroutine_Var(listvar *list_to_modify);
649extern void Update_List_Global_Var_From_List_Save_Var();
650extern void Update_List_From_Common_Var(listvar *list_to_modify);
651extern void Update_List_Var(listvar *list_to_modify);
652extern void List_UsedInSubroutine_Var_Update_From_Module_Used();
653extern void Update_NotGridDepend_Var(listvar *list_to_modify);
654extern int LookingForVariableInList(listvar *listin,variable *var);
655extern int LookingForVariableInListGlobal(listvar *listin,variable *var);
656extern int LookingForVariableInListName(listvar *listin,char *var);
657extern int LookingForVariableInListGlob(listvar *listin,variable *var);
658extern int LookingForVariableInListParamGlob(listparameter *listin,
659                                                                 variable *var);
660extern void UpdateListDeclarationWithDimensionList();
661extern void Clean_List_UsedInSubroutine_Var();
662extern void Clean_List_SubroutineDeclaration_Var();
663extern void Clean_List_Global_Var();
664extern void ListClean();
665extern void ListUpdate();
666extern void GiveTypeOfVariables();
667extern void Sort_List_SubroutineArgument_Var();
668extern void IndiceTabvars_Global_Var_Treated(char *nom);
669extern void IndiceTabvars_Global_Var_No_Treated(char *nom);
670extern void UpdateTheRemainingList(listvar *record);
671extern void IndiceTabvars_Common_Var_Treated(char *nom);
672extern void IndiceTabvars_Common_Var_No_Treated(char *nom);
673extern void IndiceTabvarsIdentification();
674extern void New_Allocate_Subroutine_Is_Necessary();
675extern void New_Allocate_Subroutine_For_Common_Is_Necessary();
676extern void NewModule_Creation_0();
677extern void UpdateList_SubroutineWhereAgrifUsed();
678extern void UpdateList_UsedInSubroutine_With_dimension();
679extern void Affiche();
680extern int SubInList_ContainsSubroutine();
681/******************************************************************************/
682/*********** WorkWithParameterlist.c ******************************************/
683/******************************************************************************/
684extern void Add_GlobalParameter_Var_1(listvar *listin);
685extern void Add_Parameter_Var_1(listvar *listin);
686extern void Add_Dimension_Var_1(listvar *listin);
687/******************************************************************************/
688/*********** WorkWithvarofsubroutineliste.c ***********************************/
689/******************************************************************************/
690extern void Add_SubroutineArgument_Var_1(listvar *listtoadd);
691extern void Add_FunctionType_Var_1(char *nom);
692extern void Add_SubroutineDeclaration_Var_1 (listvar *listtoadd);
693/******************************************************************************/
694/*********** Writedeclarations.c **********************************************/
695/******************************************************************************/
696extern void WriteBeginDeclaration(variable *v,char ligne[LONG_4C],int visibility);
697extern void WriteScalarDeclaration(variable *v,char ligne[LONG_4C]);
698extern void WriteTableDeclaration(variable * v,char ligne[LONG_4C],int tmpok);
699extern void writevardeclaration (listvar * var_record, FILE *fileout,
700                                                                     int value,int visibility);
701extern void WriteLocalParamDeclaration();
702extern void WriteFunctionDeclaration(int value);
703extern void WriteSubroutineDeclaration(int value);
704extern void WriteArgumentDeclaration_beforecall();
705extern void WriteArgumentDeclaration_Sort();
706extern listnom *writedeclarationintoamr (listvar * deb_common, FILE *fileout,
707                                       variable *var , char commonname[LONG_C],
708                           listnom *neededparameter, char name_common[LONG_C]);
709extern void writesub_loopdeclaration_scalar (listvar * deb_common,
710                                                                 FILE *fileout);
711extern void writesub_loopdeclaration_tab (listvar * deb_common, FILE *fileout);
712extern void ReWriteDeclarationAndAddTosubroutine_01(listvar *listdecl);
713/******************************************************************************/
714/*********** WriteInFile.c ****************************************************/
715/******************************************************************************/
716extern void tofich_reste (FILE * filout, char *s,int returnlineornot);
717extern void tofich (FILE * filout, char *s, int returnlineornot);
718extern void tofich_blanc (FILE * filout, int size);
719extern void tofich_line (FILE * filout, int size, int long position);
720extern void RemoveWordSET_0(FILE * filout, long int position,
721                                                         long int sizetoremove);
722extern void RemoveWordCUR_0(FILE * filout, long int position,
723                                                         long int sizetoremove);
724
725/******************************************************************************/
726/*********** WorkWithlistofcoupled.c **********************************************/
727/******************************************************************************/                                                       
728extern int variscoupled_0(char *ident) ;
729extern char * getcoupledname_0(char *ident);
730extern void ModifyTheVariableNamecoupled_0(char *ident, char* coupledident);
Note: See TracBrowser for help on using the repository browser.