Changeset 663 for trunk/AGRIF/LIB/decl.h
- Timestamp:
- 2007-05-25T18:00:33+02:00 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AGRIF/LIB/decl.h
r530 r663 3 3 /* CONV (converter) for Agrif (Adaptive Grid Refinement In Fortran) */ 4 4 /* */ 5 /* Copyright or ©or Copr. Laurent Debreu (Laurent.Debreu@imag.fr) */6 /* Cyril Mazauric (Cyril .Mazauric@imag.fr)*/5 /* Copyright or or Copr. Laurent Debreu (Laurent.Debreu@imag.fr) */ 6 /* Cyril Mazauric (Cyril_Mazauric@yahoo.fr) */ 7 7 /* This software is governed by the CeCILL-C license under French law and */ 8 8 /* abiding by the rules of distribution of free software. You can use, */ … … 31 31 /* knowledge of the CeCILL-C license and that you accept its terms. */ 32 32 /******************************************************************************/ 33 /* version 1. 0*/33 /* version 1.6 */ 34 34 /******************************************************************************/ 35 35 #define LONGNOM 800 … … 40 40 /******************************************************************************/ 41 41 42 typedef struct 42 typedef struct 43 43 { 44 44 char first[LONGNOM]; … … 46 46 } typedim ; /* fortran dimension as 'ndeb:nfin' */ 47 47 48 typedef struct listdim 49 { 48 typedef struct listdim 49 { 50 50 typedim dim; 51 51 struct listdim *suiv; 52 52 } listdim; /* list of the dimensions of a variable */ 53 54 typedef struct variable 55 { 56 char typevar[LONGNOM];57 char nomvar[LONGNOM] ;58 char oldname[LONGNOM] ;59 char dimchar[LONGNOM];60 listdim *dimension;61 int nbdim;62 int common;63 int positioninblock;64 int module;65 int save;66 int VariableIsParameter;67 int PublicDeclare;68 int PrivateDeclare;69 int ExternalDeclare;70 char modulename[LONGNOM];71 char commonname[LONGNOM];72 char vallengspec[LONGNOM];73 char nameinttypename[LONGNOM];74 int pointedvar;75 char commoninfile[LONGNOM];76 char subroutinename[LONGNOM];77 int dimensiongiven;78 int c_star;79 int typegiven;80 char precision[LONGNOM];81 char initialvalue[LONGNOM];82 int indicetabvars;83 int pointerdeclare;84 int optionaldeclare;85 int allocatable;86 char IntentSpec[LONGNOM];87 int dimsempty;88 char readedlistdimension[LONGNOM];53 54 typedef struct variable 55 { 56 char v_typevar[LONGNOM]; 57 char v_nomvar[LONGNOM] ; 58 char v_oldname[LONGNOM] ; 59 char v_dimchar[LONGNOM]; 60 char v_modulename[LONGNOM]; 61 char v_commonname[LONGNOM]; 62 char v_vallengspec[LONGNOM]; 63 char v_nameinttypename[LONGNOM]; 64 char v_commoninfile[LONGNOM]; 65 char v_subroutinename[LONGNOM]; 66 char v_precision[LONGNOM]; 67 char v_initialvalue[LONGNOM]; 68 char v_IntentSpec[LONGNOM]; 69 char v_readedlistdimension[LONGNOM]; 70 int v_nbdim; 71 int v_common; 72 int v_positioninblock; 73 int v_module; 74 int v_save; 75 int v_VariableIsParameter; 76 int v_PublicDeclare; 77 int v_PrivateDeclare; 78 int v_ExternalDeclare; 79 int v_pointedvar; 80 int v_notgrid; 81 int v_dimensiongiven; 82 int v_c_star; 83 int v_indicetabvars; 84 int v_pointerdeclare; 85 int v_optionaldeclare; 86 int v_allocatable; 87 int v_dimsempty; 88 listdim *v_dimension; 89 89 } variable ; /* type of a variable */ 90 /* typevar : type (integer, real, ...)*/91 /* nomvar : name of the variable*/92 /* dimension : list of dimensions of the variable */93 /* nbdim: 1 if the variable is 1d, etc ...*/90 /* v_typevar : type (integer, real, ...) */ 91 /* v_nomvar : name of the variable */ 92 /* v_dimension : list of dimensions of the variable*/ 93 /* v_nbdim: 1 if the variable is 1d, etc ... */ 94 94 /* precision : Name of the variable which */ 95 95 /* determine the precision. example : wp in the */ 96 96 /* case where REAL(wp) */ 97 97 98 98 typedef struct listvar 99 99 { … … 101 101 struct listvar * suiv; 102 102 } listvar ; /* list of variables */ 103 104 105 typedef struct listvarcommon 106 { 107 char nomvar[LONGNOM] ; 108 char commonname[LONGNOM]; 109 char subroutinename[LONGNOM]; 110 int dimensiongiven; 111 int nbdim; 112 int indicetabvars; 113 int positioninblock; 114 listdim *dimension; 115 char readedlistdimension[LONGNOM]; 116 struct listvarcommon * suiv; 117 } listvarcommon ; /* list of variables in common block */ 118 119 120 typedef struct listusemodule 121 { 122 char usemodule[LONGNOM]; 123 char charusemodule[LONGNOM]; 124 char cursubroutine[LONGNOM]; 125 int firstuse; 103 104 105 typedef struct listusemodule 106 { 107 char u_usemodule[LONGNOM]; 108 char u_charusemodule[LONGNOM]; 109 char u_cursubroutine[LONGNOM]; 110 char u_modulename[LONGNOM]; 111 int u_firstuse; 126 112 struct listusemodule * suiv; 127 113 } listusemodule; /* list of names */ … … 129 115 typedef struct listparameter 130 116 { 131 char name[LONGNOM];132 char modulename[LONGNOM];117 char p_name[LONGNOM]; 118 char p_modulename[LONGNOM]; 133 119 struct listparameter * suiv; 134 120 } listparameter ; /* list of names */ 135 121 136 typedef struct listnamelist137 {138 char name[LONGNOM];139 struct listnamelist * suiv;140 } listnamelist ; /* list of names */141 142 122 typedef struct listname 143 123 { 144 char n ame[LONGNOM];124 char n_name[LONGNOM]; 145 125 struct listname* suiv; 146 126 } listname ; /* list of names */ 147 127 148 149 typedef struct listmodule 150 { 151 char module[LONGNOM]; 152 int AllocShouldMade; 153 int Alloc; 154 struct listmodule * suiv; 155 } listmodule; /* list of names */ 156 157 158 159 typedef struct listcouple 160 { 161 char namevar[LONGNOM]; 162 char namepointedvar[LONGNOM]; 128 typedef struct listcouple 129 { 130 char c_namevar[LONGNOM]; 131 char c_namepointedvar[LONGNOM]; 163 132 struct listcouple * suiv; 164 133 } listcouple; /* list of names */ 165 134 166 135 167 typedef struct listnom 168 { 169 char nom[LONGNOM]; 136 typedef struct listnom 137 { 138 char o_nom[LONGNOM]; 139 char o_module[LONGNOM]; 140 int o_val; 170 141 listcouple *couple; 171 142 struct listnom * suiv; … … 173 144 174 145 175 typedef struct listallocate 176 { 177 char nomvar[LONGNOM];178 char subroutine[LONGNOM];179 char module[LONGNOM];146 typedef struct listallocate 147 { 148 char a_nomvar[LONGNOM]; 149 char a_subroutine[LONGNOM]; 150 char a_module[LONGNOM]; 180 151 struct listallocate * suiv; 181 152 } listallocate ; 182 153 183 184 typedef struct listvarpointtovar 185 { 186 char usemodule[LONGNOM];187 char cursubroutine[LONGNOM];188 listcouple * couple;154 155 typedef struct listvarpointtovar 156 { 157 char t_usemodule[LONGNOM]; 158 char t_cursubroutine[LONGNOM]; 159 listcouple *t_couple; 189 160 struct listvarpointtovar* suiv; 190 161 }listvarpointtovar ; /* list of names */ 191 162 192 163 193 typedef struct listindice 194 { 195 int i ndice;164 typedef struct listindice 165 { 166 int i_indice; 196 167 struct listindice * suiv; 197 168 } listindice; /* list of indiced */ 198 199 200 int fortran77; /* = 1; the code has been writen in */ 201 /* fortran77 else in fortran 90 */ 169 170 variable *curvar; 171 172 listvar *List_ModuleUsedInModuleUsed_Var; 173 listvar *List_ModuleUsed_Var; 174 listvar *listduplicated; 175 176 listvar *List_GlobalParameter_Var; 177 listvar *List_Global_Var; 178 listvar *List_Data_Var; 179 listvar *List_Save_Var; 180 listvar *List_SubroutineArgument_Var; 181 listvar *List_SubroutineDeclaration_Var; 182 listvar *List_UsedInSubroutine_Var; 183 listvar *List_Parameter_Var; 184 listvar *List_Dimension_Var; 185 listvar *List_FunctionType_Var; 186 listvar *List_NotGridDepend_Var; 187 listvar *List_Common_Var; 188 189 190 listname *List_Pointer_Var; 191 listname *List_ImplicitNoneSubroutine; 192 193 listusemodule *List_NameOfModuleUsed; 194 listusemodule *List_Include; 195 listusemodule *listofmoduletmp; 196 listusemodule *tmpuselocallist; 197 198 listparameter *List_GlobParamModuleUsedInModuleUsed_Var; 199 listparameter *List_GlobParamModuleUsed_Var; 200 201 listnom *List_ContainsSubroutine; 202 listnom *List_Subroutine_For_Alloc; 203 listnom *listofmodules; 204 listnom *List_NameOfModule; 205 listnom *List_NameOfCommon; 206 listnom *List_SubroutineWhereAgrifUsed; 207 208 listallocate *List_Allocate_Var; 209 210 listvarpointtovar *List_CouplePointed_Var; 211 /* variables which are pointed to an other one */ 212 213 listindice *Listofavailableindices; 214 /* List of available indices in the tabvars table */ 215 216 listdim *curdim; 217 listdim *commondim; 218 202 219 /******************************************************************************/ 203 220 /**************** *** COMMON Variables *** *********************************/ … … 212 229 /******************************************************************************/ 213 230 int inagrifcallargument; 214 int adduseagrifutil;215 231 int sameagrifargument; 216 232 int InAgrifParentDef; … … 219 235 /**************** *** VAR DEF Variables *** *******************************/ 220 236 /******************************************************************************/ 221 int oldindicemaxtabvars; /* Number of variables in the model i.e. last */222 237 int indicemaxtabvars; /* Number of variables in the model i.e. last */ 223 238 /* indice used in the tabvars table */ 224 int PublicDeclare; /* Variable has been declared as PUBLIC */ 225 int PrivateDeclare; /* Variable has been declared as PRIVATE */ 226 int ExternalDeclare; /* Variable has been declared as EXTERNAL */ 227 int InitialValueGiven; /* An initial value has been given */ 228 int formatdeclare; 239 int PublicDeclare; /* Variable has been declared as PUBLIC */ 240 int PrivateDeclare; /* Variable has been declared as PRIVATE */ 241 int ExternalDeclare; /* Variable has been declared as EXTERNAL */ 242 int InitialValueGiven; /* An initial value has been given */ 229 243 int Allocatabledeclare; 230 244 int SaveDeclare; 245 int functiondeclarationisdone; 231 246 int pointerdeclare; 232 247 int optionaldeclare; 233 int VariableIsParameter; 248 int VarType; 249 int VarTypepar; 250 int VariableIsParameter; 234 251 int dimsgiven; 252 int shouldincludempif; 235 253 int c_star; 236 char DeclType[LONGNOM]; 237 char nameinttypename[LONGNOM]; 238 char InitValue[LONGNOM*2]; 254 char DeclType[LONGNOM]; 255 char nameinttypename[LONGNOM]; 256 int GlobalDeclaration; 257 char InitValue[LONGNOM*2]; 239 258 char IntentSpec[LONGNOM]; 240 char NamePrecision[LONGNOM]; 241 char CharacterSize[LONGNOM]; 259 char NamePrecision[LONGNOM]; 260 char CharacterSize[LONGNOM]; 242 261 char curmodulename[LONGNOM]; 243 262 char vallengspec[LONGNOM]; 244 263 char subroutinename[LONGNOM]; 245 246 /******************************************************************************/247 /**************** *** TOAMR Variables *** *********************************/248 /******************************************************************************/249 char Alloctreatedname[LONGNOM];250 264 251 265 /******************************************************************************/ … … 256 270 int onlyfixedgrids; /* = 1 if onlyfixedgrids is true */ 257 271 int todebug; 272 int mark; 273 int todebugfree; 258 274 int fixedgrids; /* = 1 if fixedgrids is true */ 259 275 char nbmaillesX[LONGNOM]; /* number of cells in the x direction */ … … 264 280 int IndicenbmaillesZ; 265 281 266 listvar *globliste;267 listvar *globparam;268 listvar *listdatavariable;269 listvar *listargsubroutine;270 listvar *varofsubroutineliste;271 listvar *varsubroutine;272 listvar *listvarindoloop;273 listvar *finglobliste;274 listvar *tmplocallist;275 listvar *parameterlist;276 listvar *globalvarofusefile2;277 listvar *globalvarofusefile;278 listvar *functionlistvar;279 listvar *listenotgriddepend; /* List of the variables which are not grid dependent */280 listvar *listvartempo;281 listvar *listduplicated;282 283 listvarcommon *commonlist;284 285 listname *listimplicitnone;286 287 listusemodule *listofmodulebysubroutine;288 listusemodule *listofincludebysubroutine;289 listusemodule *listofmoduletmp;290 listusemodule *tmpuselocallist;291 292 listparameter *tmpparameterlocallist2;293 listparameter *tmpparameterlocallist;294 295 listmodule *listmoduleinfile;296 297 listnamelist *listenamelist;298 299 listnom *NewModuleList;300 listnom *listofmodules;301 listnom *modulelist;302 listnom *Listofvariableinagriffunction;303 listnom *listofsubroutinewhereagrifisused;304 305 listallocate *AllocateList;306 307 listvarpointtovar *Listofvarpointtovar;308 /* variables which are pointed to an other one */309 310 listindice *Listofavailableindices;311 /* List of available indices in the tabvars table */312 313 int indeclarationvar;314 282 int inmodulemeet; 315 283 int incalldeclare; 316 int Did_filetoparse_treated;317 284 int aftercontainsdeclare; /* Signale si l'on vient d'un contains ou non */ 285 int retour77; 318 286 int colnum; 319 287 int callagrifinitgrids; 320 288 int callmpiinit; 321 289 int firstpass; 322 int listofvarofusemodulecreated;323 290 int couldaddvariable; 324 int Savemeet;325 291 int pointedvar; 326 292 int agrif_parentcall; 327 293 int didvariableadded; 328 int infunctiondeclare; 329 int SubloopScalar; /* =1 we should put in argument of sub_loop */ 294 int SubloopScalar; /* = 1 we should put in argument of sub_loop */ 330 295 /* only */ 331 296 /* scalar and not table u(1,1,1) in place of u */ 332 297 int checkexistcommon; 333 298 int insubroutinedeclare; 334 int tmpdeclaration_everdone;335 int paramdeclaration_everdone;336 299 int inmoduledeclare; 337 int AllocEmpty;338 300 int dimsempty; 339 301 int created_dimensionlist; 340 302 341 303 char meetagrifinitgrids[LONGNOM]; 342 char meetmpiinit[LONGNOM];343 304 char mpiinitvar[LONGNOM]; 344 305 char *NameTamponfile; 345 306 char toprintglob[LONGNOM]; 346 char recorddimension[LONGNOM];347 307 char tmpvargridname[LONGLIGNE]; 348 char curdimchar[10]; 349 char OriginalFileName[LONGNOM]; /* Name of the parsing file*/ 350 char EmptyChar[LONGNOM]; /* An empty char */ 308 char EmptyChar[LONGNOM]; /* An empty char */ 351 309 char curfilename[LONGNOM]; 352 310 char nomfileoutput[LONGNOM]; 353 311 char curbuf[100*LONGNOM]; 354 312 char motparse[LONGNOM]; 313 char motparse1[LONGNOM]; 355 314 char charusemodule[LONGNOM]; 356 315 char subofagrifinitgrids[LONGNOM]; 357 char motparse1[LONGNOM]; 358 char curfile[LONGNOM]; /* name of the current file */ 359 char mainfile[LONGNOM]; /* name of the configuration file */ 360 char nomdir[LONGNOM]; /* name of the directory where include files are put */ 361 char commondirout[LONGNOM]; /* name of the directory where comon files are put */ 362 char commondirin[LONGNOM]; /* name of the directory containing the common files */ 363 char filetoparse[LONGNOM]; /* name of the file where all the module file are listed */ 364 365 FILE *fortranout; /* Output File */ 366 FILE *fortranin; /* Input File */ 316 char curfile[LONGNOM]; 317 char mainfile[LONGNOM]; 318 char nomdir[LONGNOM]; 319 char commondirout[LONGNOM]; 320 char commondirin[LONGNOM]; 321 char filetoparse[LONGNOM]; 322 323 FILE *fortranout; /* Output File */ 324 FILE *fortranin; /* Input File */ 367 325 FILE *oldfortranout; 368 326 FILE *subloop; 369 FILE *commontomoduleout; 370 FILE *paramtomoduleout; 371 FILE *inputmodule; 327 FILE *module_declar; 372 328 FILE *allocationagrif; 329 FILE *paramout; 373 330 374 331 long int pos_cur; /* current position in the output file */ … … 377 334 long int pos_curcall; /* current position in the output file */ 378 335 long int pos_curuse; /* current position in the output file */ 336 long int pos_curfunction; /* current position in the output file */ 379 337 long int pos_cur_decl; /* current position in the output file */ 380 338 long int pos_curdata; /* current position in the output file */ 381 339 long int pos_curparameter;/* current position in the output file */ 382 340 long int pos_curcommon; /* current position in the output file */ 341 long int pos_cursave; /* current position in the output file */ 342 long int pos_curdimension;/* current position in the output file */ 383 343 long int pos_curinit; /* current position in the output file */ 384 344 long int pos_curinclude; /* final position of a line in file */ 385 345 long int pos_end; /* final position of a line in file */ 386 387 variable *variabletempo; 388 variable *curvar; 389 390 listdim *curdim; 391 listdim *commondim; 346 long int pos_endsubroutine; 347 /* final position of a line in file */ 392 348 393 349 /******************************************************************************/ 394 350 /*********** Declaration of externals subroutines *****************************/ 395 351 /***************************************************** ************************/ 396 397 /******************************************************************************/ 398 /*********** UtilNotGridDep.c *************************************************/ 399 /******************************************************************************/ 400 extern void ajoutenotgriddep (char *name); 401 extern void RemoveNotgriddependFromGlobliste(); 402 extern int VarIsNonGridDepend(char *name); 403 extern void NonGridDepDeclaration_0(listvar *listtomodify); 404 /******************************************************************************/ 405 /*********** WriteInFile.c ****************************************************/ 406 /******************************************************************************/ 407 extern void tofich_reste (FILE * filout, char *s,int returnlineornot); 408 extern void tofich (FILE * filout, char *s,int returnlineornot); 409 extern void tofich_blanc (FILE * filout, int size); 410 extern void RemoveWordCUR_0(FILE * filout, long int position, 411 long int sizetoremove); 412 extern void RemoveWordSET_0(FILE * filout, long int position, 413 long int sizetoremove); 414 /******************************************************************************/ 415 /*********** Writedeclarations.c **********************************************/ 416 /******************************************************************************/ 417 extern void WriteBeginDeclaration(variable *v,char ligne[LONGLIGNE]); 418 extern void WriteScalarDeclaration(variable *v,char ligne[LONGLIGNE]); 419 extern void WriteTableDeclaration(variable * v,char ligne[LONGLIGNE],int tmpok); 420 extern void writevardeclaration (listvar * var_record, FILE *fileout); 421 extern void NonGridDepDeclaration(listvar * deb_common); 422 extern void writedeclaration (listvar * deb_common, FILE *fileout, 423 listvar *presentinthislist); 424 extern void writesub_loopdeclaration (listvar * deb_common, FILE *fileout); 425 extern void writedeclarationintoamr (listvar * deb_common, FILE *fileout, 426 listvar *listin , char commonname[LONGNOM]); 427 extern void writedeclarationsubroutinedeclaration(listvar * deb_common, 428 FILE *fileout,listvar *listin); 429 /******************************************************************************/ 430 /*********** WorkWithvarofsubroutineliste.c ***********************************/ 431 /******************************************************************************/ 432 extern void CleanThelistvarofsubroutineliste(); 433 extern void UpdatevarofsubroutinelisteWithcommonlist(); 434 extern void ajoutvarofsubroutine_1(listvar *listtoadd); 435 extern void UpdatevarsubroutineWithvarofsubroutinelist_1(); 352 /******************************************************************************/ 353 /*********** convert.y ********************************************************/ 354 /******************************************************************************/ 355 extern int main(int argc,char *argv[]); 356 /******************************************************************************/ 357 /*********** fortran.y ********************************************************/ 358 /******************************************************************************/ 359 extern void processfortran(char *fichier_entree); 360 /******************************************************************************/ 361 /*********** dependfile.c *****************************************************/ 362 /******************************************************************************/ 363 extern void Writethedependnbxnbyfile(); 364 extern void Readthedependnbxnbyfile(); 365 extern void Writethedependlistofmoduleused(char *NameTampon ); 366 extern void Readthedependlistofmoduleused(char *NameTampon); 367 extern void WritedependParameterList(char *NameTampon ); 368 extern listparameter *ReaddependParameterList(char *NameTampon, 369 listparameter *listout); 370 extern void Writethedependfile(char *NameTampon, listvar *input ); 371 extern listvar *Readthedependfile( char *NameTampon , listvar *listout); 372 extern void Write_Subroutine_For_Alloc(); 373 extern void Read_Subroutine_For_Alloc(); 374 extern void Writethedependavailablefile(); 375 extern void Readthedependavailablefile(); 376 extern int Did_filetoparse_readed(char *NameTampon); 377 extern int Did_module_common_treaded(char *NameTampon); 378 /******************************************************************************/ 379 /*********** DiversListe.c ****************************************************/ 380 /******************************************************************************/ 381 extern void Add_Common_var_1(); 382 extern listnom *Addtolistnom(char *nom, listnom *listin,int value); 383 extern listname *Addtolistname(char *nom,listname *input); 384 extern int ModuleIsDefineInInputFile(char *name); 385 extern void Addmoduletothelisttmp(char *name); 386 extern void Add_NameOfModule_1(char *nom); 387 extern void Add_NameOfCommon_1(char *nom); 388 extern void Add_CouplePointed_Var_1(char *namemodule,listcouple *couple); 389 extern void Add_Include_1(char *name); 390 extern void Add_ImplicitNoneSubroutine_1(); 391 extern void WriteIncludeDeclaration(); 392 extern void Add_Save_Var_1 (char *name,listdim *d); 393 /******************************************************************************/ 394 /*********** SubLoopCreation.c ************************************************/ 395 /******************************************************************************/ 396 extern void writeheadnewsub_0(int suborfunc); 397 extern void WriteVariablelist_subloop(FILE *outputfile); 398 extern void WriteVariablelist_subloop_Call(FILE *outputfile); 399 extern void WriteVariablelist_subloop_Def(FILE *outputfile); 400 extern void WriteHeadofSubroutineLoop(); 401 extern void closeandcallsubloopandincludeit_0(int suborfun, 402 char endsub[LONGNOM]); 436 403 /******************************************************************************/ 437 404 /*********** toamr.c **********************************************************/ … … 442 409 extern char *vargridnametabvars (variable * var,int iorindice); 443 410 extern char *vargridcurgridtabvars (variable * var,int ParentOrCurgrid); 411 extern char *vargridcurgridtabvarswithoutAgrif_Gr (variable * var); 444 412 extern char *vargridparam (variable * v, int whichone); 445 413 extern void write_probdimagrif_file(); 446 414 extern void write_keysagrif_file(); 447 extern void write_clusteringagrif_file();448 415 extern void write_modtypeagrif_file(); 449 416 extern void write_createvarnameagrif_file(variable *v,FILE *createvarname, … … 452 419 extern void write_Getnumberofcells_file(); 453 420 extern void write_initialisationsagrif_file(variable *v,FILE *initproc, 454 int *VarnameEmpty); 455 extern listnom *write_allocation(listvar *newvar,variable *v, 456 listnom *listedesnoms, 457 FILE *alloccalls, 458 FILE *AllocUSE, 459 FILE *modulealloc, 460 int *IndiceMax); 421 int *VarnameEmpty); 422 extern void Write_Alloc_Agrif_Files(); 423 extern int IndiceInlist(int indic, listindice *listin); 424 extern void write_allocation_Common_0(); 425 extern void write_allocation_Global_0(); 461 426 extern void creefichieramr (char *NameTampon); 462 427 /******************************************************************************/ 463 /*********** dependfile.c *****************************************************/464 /******************************************************************************/465 extern void Writethedependnbxnbyfile();466 extern void Readthedependnbxnbyfile();467 extern void Writethedependlistofmoduleused(char *NameTampon );468 extern void Readthedependlistofmoduleused(char *NameTampon);469 extern void WritedependParameterList(char *NameTampon );470 extern listparameter *ReaddependParameterList(char *NameTampon,471 listparameter *listout);472 extern void Writethedependfile(char *NameTampon, listvar *input );473 extern listvar *Readthedependfile( char *NameTampon , listvar *listout);474 extern void Writethedependavailablefile();475 extern void Readthedependavailablefile();476 extern int Did_filetoparse_readed(char *NameTampon);477 /******************************************************************************/478 /*********** SubLoopCreation.c ************************************************/479 /******************************************************************************/480 extern void writeheadnewsub_0();481 extern void writesubroutinedeclaration_0(listvar *listtomodify);482 extern void WriteVariablelist_subloop(FILE *outputfile);483 extern void WriteVariablelist_subloop_Call(FILE *outputfile);484 extern void WriteVariablelist_subloop_Def(FILE *outputfile);485 extern void WriteHeadofSubroutineLoop();486 extern void closeandcallsubloopandincludeit_0(int suborfun,487 char endsub[LONGNOM], char optname[LONGNOM]);488 /******************************************************************************/489 /*********** WorkWithglobliste.c **********************************************/490 /******************************************************************************/491 extern void CompareNewparsingandoldone();492 extern void ajoutevar_1(listvar *listtoadd);493 extern void ajoutevarsave_1(listvar *listtoadd);494 extern void UpdateIndiceTabvarsofGlobliste();495 extern void UpdateIndiceTabvarsofGloblisteFromCommon();496 extern void UpdateGloblisteWithcommonlist_1();497 /******************************************************************************/498 /*********** WorkWithlistvarindoloop.c ****************************************/499 /******************************************************************************/500 extern void cleanlistvarfordoloop_1(int endsuborfunc);501 extern void ajoutevarindoloop_1(char *ident);502 extern void ajoutevarindoloop_definedimension (char *name);503 extern void CleanFromThelistvarindoloopTheAgrifSubArguments();504 extern void CleanThelistvarindoloop ();505 extern void ModifyThelistvarindoloop();506 extern void CompleteThelistvarindoloop();507 /******************************************************************************/508 /*********** WorkWithlistdatavariable.c ***************************************/509 /******************************************************************************/510 extern void CompleteDataList (char *name,char *values);511 extern void CompleteGlobListeWithDatalist_1();512 /******************************************************************************/513 428 /*********** UtilAgrif.c ******************************************************/ 514 429 /******************************************************************************/ 515 extern void Instanciation_0(char *ident);516 430 extern int Vartonumber(char *tokname); 517 431 extern int Agrif_in_Tok_NAME(char *tokname); 518 extern void completeListofvariableinagriffunction_1(char *ident);519 432 extern void ModifyTheVariableName_0(char *ident); 520 extern void AddsubroutineTolistsubwhereagrifused(); 521 extern void AddUseAgrifUtil_0(); 433 extern void Add_SubroutineWhereAgrifUsed_1(char *sub,char *mod); 434 extern void AddUseAgrifUtil_0(FILE *fileout); 435 extern void AddUseAgrifUtilBeforeCall_0(FILE *fileout); 522 436 extern void NotifyAgrifFunction_0(char *ident); 523 437 extern void ModifyTheAgrifFunction_0(char *ident); 524 438 extern void AgriffunctionModify_0(char *ident,int whichone); 525 extern void AddUseAgrifInModuleDeclaration_0(); 526 /******************************************************************************/ 527 /*********** WorkWithParameterlist.c ******************************************/ 528 /******************************************************************************/ 529 extern void AddvartoParamlist_1(listvar *listin); 530 extern void UpdateparameterlistWithlistvarindoloop_1(); 531 /******************************************************************************/ 532 /*********** WorkWithAllocatelist.c *******************************************/ 533 /******************************************************************************/ 534 extern void AddIdentToTheAllocateList_1(char *nom); 535 extern int IsAllocateInThisSubroutine_0(); 536 extern int IsVarAllocatable_0(char *ident); 537 extern int varisallocatable_0(char *ident); 439 extern void Instanciation_0(char *ident); 538 440 /******************************************************************************/ 539 441 /*********** UtilCharacter.c **************************************************/ 540 442 /******************************************************************************/ 541 extern void FindAndChangeNameToTabvars(char name[LONGNOM], 542 char toprint[LONGNOM],listvar * listtosee, int ParentOrCurgrid);443 extern void FindAndChangeNameToTabvars(char name[LONGNOM],char toprint[LONGNOM], 444 listvar * listtosee, int whichone); 543 445 extern char *ChangeTheInitalvaluebyTabvarsName(char *nom,listvar *listtoread, 544 446 int whichone); … … 547 449 extern listnom *DecomposeTheNameinlistnom(char *nom, listnom * listout); 548 450 extern void DecomposeTheName(char *nom); 549 /******************************************************************************/ 550 /*********** UtilListe.c ******************************************************/ 551 /******************************************************************************/ 552 extern listvar *AddListvarToListvar(listvar *l,listvar *glob, 553 int ValueFirstpass); 554 extern void CreateAndFillin_Curvar(char *type,char *tokname, 555 listdim *dims,variable *curvar); 556 extern void duplicatelistvar(listvar * orig); 557 extern listdim *insertdim(listdim *lin,typedim nom); 558 extern void change_dim_char(listdim *lin,listvar * l); 559 extern int num_dims(listdim *d); 560 extern variable *createvar(char *nom,listdim *d); 561 extern listvar *insertvar(listvar *lin,variable *v); 562 extern listvar *settype(char *nom,listvar *lin); 451 extern void convert2lower(char *name); 563 452 /******************************************************************************/ 564 453 /*********** UtilFile.c *******************************************************/ … … 571 460 extern void copyuseonly_0(char *namemodule); 572 461 /******************************************************************************/ 573 /*********** WorkWithlistofmodulebysubroutine.c *******************************/574 /******************************************************************************/575 extern void RecordUseModulesVariables();576 extern void RecordUseModulesUseModulesVariables();577 extern void Addmoduletothelist_1(char *name);578 extern void Addmoduletothelist(char *name);579 extern void WriteUsemoduleDeclaration();580 /******************************************************************************/581 /*********** WorkWithlistmoduleinfile.c ***************************************/582 /******************************************************************************/583 extern void FillInlistmodule_1();584 extern void AllocShouldMadeTo0InModule_1();585 extern void AllocShouldMadeTo1InModule_1();586 extern void AllocTo1InModule_1();587 extern int AllocShouldMadeInModule();588 extern int AllocInModule();589 /******************************************************************************/590 462 /*********** UtilFortran.c ****************************************************/ 591 463 /******************************************************************************/ … … 593 465 extern int Variableshouldberemove(char *nom); 594 466 extern int variableisglobal(listvar *curvar, listvar *listin); 595 extern void variableisglobalinmodule(listcouple *listin, char *module, 467 extern int VariableIsInList(listvar *curvar,listvar *listin); 468 extern void variableisglobalinmodule(listcouple *listin, char *module, 596 469 FILE *fileout); 597 extern int variableisparameterglobal(listvar *curvar, listparameter *listin); 598 extern void addsubroutine_alloc_0(int moduleorcontains); 470 extern void Remove_Word_Contains_0(); 471 extern void Remove_Word_end_module_0(); 472 extern void Write_Word_Contains_0(); 473 extern void Write_Word_end_module_0(); 474 extern void Add_Subroutine_For_Alloc(char *nom); 475 extern void Write_Alloc_Subroutine_0(); 476 extern void Write_Alloc_Subroutine_For_End_0(); 477 extern void Write_GlobalParameter_Declaration_0(); 478 extern void Write_NotGridDepend_Declaration_0(); 599 479 extern int IsTabvarsUseInArgument_0(); 600 480 extern int ImplicitNoneInSubroutine(); 481 extern void Add_Pointer_Var_From_List_1(listvar *listin); 482 extern void Add_Pointer_Var_1(char *nom); 601 483 extern int varispointer_0(char *ident); 602 484 extern int VariableIsNotFunction(char *ident); 603 485 /******************************************************************************/ 604 /*********** DiversListe.c ****************************************************/ 605 /******************************************************************************/ 606 extern void Addtolistvarcommon(); 607 extern listnom *Addtolistnom(char *nom, listnom *listin); 608 extern listname *Addtolistname(char *nom,listname *input); 609 extern int ModuleIsDefineInInputFile(char *name); 610 extern void AddNameToListNamelist_1(char * name); 611 extern void Addmoduletothelisttmp(char *name); 612 extern void Add_ModuleTo_Modulelist_1(char *nom); 613 extern void completelistvarpointtovar_1(char *namemodule, 614 listcouple *couple); 615 extern void Addincludetothelist_1(char *name); 616 extern void WriteIncludeDeclaration(); 617 /******************************************************************************/ 618 extern void processfortran(char *fichier_entree); 486 /*********** UtilListe.c ******************************************************/ 487 /******************************************************************************/ 488 extern void Init_Variable(variable *var); 489 extern listvar * AddListvarToListvar(listvar *l,listvar *glob, 490 int ValueFirstpass); 491 extern void CreateAndFillin_Curvar(char *type,variable *curvar); 492 extern void duplicatelistvar(listvar *orig); 493 extern listdim * insertdim(listdim *lin,typedim nom); 494 extern void change_dim_char(listdim *lin,listvar * l); 495 extern int num_dims(listdim *d); 496 extern variable * createvar(char *nom,listdim *d); 497 extern listvar * insertvar(listvar *lin,variable *v); 498 extern listvar *settype(char *nom,listvar *lin); 499 /******************************************************************************/ 500 /*********** UtilNotGridDep.c *************************************************/ 501 /******************************************************************************/ 502 extern void Add_NotGridDepend_Var_1 (char *name); 503 extern int VarIsNonGridDepend(char *name); 504 /******************************************************************************/ 505 /*********** WorkWithAllocatelist.c *******************************************/ 506 /******************************************************************************/ 507 extern void Add_Allocate_Var_1(char *nom,char *nommodule); 508 extern int IsVarAllocatable_0(char *ident); 509 extern int varisallocatable_0(char *ident); 510 /******************************************************************************/ 511 /*********** WorkWithglobliste.c **********************************************/ 512 /******************************************************************************/ 513 extern void Add_Globliste_1(listvar *listtoadd); 514 extern void Add_SubroutineDeclarationSave_Var_1(listvar *listtoadd); 515 /******************************************************************************/ 516 /*********** WorkWithlistdatavariable.c ***************************************/ 517 /******************************************************************************/ 518 extern void Add_Data_Var_1 (char *name,char *values); 519 /******************************************************************************/ 520 /*********** WorkWithlistmoduleinfile.c ***************************************/ 521 /******************************************************************************/ 522 523 /******************************************************************************/ 524 /*********** WorkWithlistofmodulebysubroutine.c *******************************/ 525 /******************************************************************************/ 526 extern void RecordUseModulesVariables(); 527 extern void RecordUseModulesUseModulesVariables(); 528 extern void Add_NameOfModuleUsed_1(char *name); 529 extern void Addmoduletothelist(char *name); 530 extern void WriteUsemoduleDeclaration(); 531 /******************************************************************************/ 532 /*********** WorkWithlistvarindoloop.c ****************************************/ 533 /******************************************************************************/ 534 extern void Add_UsedInSubroutine_Var_1 (char *ident); 535 extern void ajoutevarindoloop_definedimension (char *name); 536 extern void ModifyThelistvarindoloop(); 537 extern void CompleteThelistvarindoloop(); 538 extern void CopyRecord(variable *var1,variable *var2); 539 extern void Update_List_Subroutine_Var(listvar *list_to_modify); 540 extern void Update_List_Global_Var_From_List_Save_Var(); 541 extern void Update_List_From_Common_Var(listvar *list_to_modify); 542 extern void Update_List_Var(listvar *list_to_modify); 543 extern void List_UsedInSubroutine_Var_Update_From_Module_Used(); 544 extern void Update_NotGridDepend_Var(listvar *list_to_modify); 545 extern int LookingForVariableInList(listvar *listin,variable *var); 546 extern int LookingForVariableInListGlobal(listvar *listin,variable *var); 547 extern int LookingForVariableInListGlob(listvar *listin,variable *var); 548 extern int LookingForVariableInListParamGlob(listparameter *listin, 549 variable *var); 550 extern void UpdateListDeclarationWithDimensionList(); 551 extern void Clean_List_UsedInSubroutine_Var(); 552 extern void Clean_List_SubroutineDeclaration_Var(); 553 extern void ListClean(); 554 extern void ListUpdate(); 555 extern void Sort_List_SubroutineArgument_Var(); 556 extern void IndiceTabvars_Global_Var_Treated(char *nom); 557 extern void IndiceTabvars_Global_Var_No_Treated(char *nom); 558 extern void UpdateTheRemainingList(listvar *record); 559 extern void IndiceTabvars_Common_Var_Treated(char *nom); 560 extern void IndiceTabvars_Common_Var_No_Treated(char *nom); 561 extern void IndiceTabvarsIdentification(); 562 extern void New_Allocate_Subroutine_Is_Necessary(); 563 extern void New_Allocate_Subroutine_For_Common_Is_Necessary(); 564 extern void NewModule_Creation_0(); 565 extern void UpdateList_SubroutineWhereAgrifUsed(); 566 extern void UpdateList_UsedInSubroutine_With_dimension(); 567 extern void Affiche(); 568 extern int SubInList_ContainsSubroutine(); 569 /******************************************************************************/ 570 /*********** WorkWithParameterlist.c ******************************************/ 571 /******************************************************************************/ 572 extern void Add_GlobalParameter_Var_1(listvar *listin); 573 extern void Add_Parameter_Var_1(listvar *listin); 574 extern void Add_Dimension_Var_1(listvar *listin); 575 /******************************************************************************/ 576 /*********** WorkWithvarofsubroutineliste.c ***********************************/ 577 /******************************************************************************/ 578 extern void Add_SubroutineArgument_Var_1(listvar *listtoadd); 579 extern void Add_FunctionType_Var_1(char *nom); 580 extern void Add_SubroutineDeclaration_Var_1 (listvar *listtoadd); 581 /******************************************************************************/ 582 /*********** Writedeclarations.c **********************************************/ 583 /******************************************************************************/ 584 extern void WriteBeginDeclaration(variable *v,char ligne[LONGLIGNE]); 585 extern void WriteScalarDeclaration(variable *v,char ligne[LONGLIGNE]); 586 extern void WriteTableDeclaration(variable * v,char ligne[LONGLIGNE],int tmpok); 587 extern void writevardeclaration (listvar * var_record, FILE *fileout, 588 int value); 589 extern void WriteLocalParamDeclaration(); 590 extern void WriteFunctionDeclaration(); 591 extern void WriteSubroutineDeclaration(int value); 592 extern void WriteArgumentDeclaration_beforecall(); 593 extern void WriteArgumentDeclaration_Sort(); 594 extern listnom *writedeclarationintoamr (listvar * deb_common, FILE *fileout, 595 variable *var , char commonname[LONGNOM], 596 listnom *neededparameter, char name_common[LONGNOM]); 597 extern void writesub_loopdeclaration_scalar (listvar * deb_common, 598 FILE *fileout); 599 extern void writesub_loopdeclaration_tab (listvar * deb_common, FILE *fileout); 600 /******************************************************************************/ 601 /*********** WriteInFile.c ****************************************************/ 602 /******************************************************************************/ 603 extern void tofich_reste (FILE * filout, char *s,int returnlineornot); 604 extern void tofich (FILE * filout, char *s, int returnlineornot); 605 extern void tofich_blanc (FILE * filout, int size); 606 extern void tofich_line (FILE * filout, int size, int long position); 607 extern void RemoveWordSET_0(FILE * filout, long int position, 608 long int sizetoremove); 609 extern void RemoveWordCUR_0(FILE * filout, long int position, 610 long int sizetoremove);
Note: See TracChangeset
for help on using the changeset viewer.