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 NEMO/releases/CMIP5_IPSL/AGRIF/LIB – NEMO

source: NEMO/releases/CMIP5_IPSL/AGRIF/LIB/decl.h @ 11998

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

Adapt Agrif to the new SBC and correct several bugs for agrif (restart writing and reading), see ticket #133
Note : this fix does not work yet on NEC computerq (sxf90/360)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
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.