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.
Changeset 663 for trunk/AGRIF/LIB/decl.h – NEMO

Changeset 663 for trunk/AGRIF/LIB/decl.h


Ignore:
Timestamp:
2007-05-25T18:00:33+02:00 (17 years ago)
Author:
opalod
Message:

RB: update CONV

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/AGRIF/LIB/decl.h

    r530 r663  
    33/*     CONV (converter) for Agrif (Adaptive Grid Refinement In Fortran)       */ 
    44/*                                                                            */ 
    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)            */ 
    77/* This software is governed by the CeCILL-C license under French law and     */ 
    88/* abiding by the rules of distribution of free software.  You can  use,      */ 
     
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.0                                                                */ 
     33/* version 1.6                                                                */ 
    3434/******************************************************************************/ 
    3535#define LONGNOM 800 
     
    4040/******************************************************************************/ 
    4141 
    42 typedef struct  
     42typedef struct 
    4343{ 
    4444   char first[LONGNOM]; 
     
    4646} typedim ;                /* fortran dimension as 'ndeb:nfin'                */ 
    4747 
    48 typedef struct listdim  
    49 {    
     48typedef struct listdim 
     49{ 
    5050   typedim dim; 
    5151   struct listdim *suiv; 
    5252} 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 
     54typedef 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; 
    8989} 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 ...       */ 
    9494                           /* precision : Name of the variable which          */ 
    9595                           /* determine the precision. example : wp in the    */ 
    9696                           /* case where REAL(wp)                             */ 
    97           
     97 
    9898typedef struct listvar 
    9999{ 
     
    101101   struct listvar * suiv; 
    102102} 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 
     105typedef 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; 
    126112   struct listusemodule * suiv; 
    127113} listusemodule;           /* list of names                                   */ 
     
    129115typedef struct listparameter 
    130116{ 
    131    char name[LONGNOM]; 
    132    char modulename[LONGNOM]; 
     117   char p_name[LONGNOM]; 
     118   char p_modulename[LONGNOM]; 
    133119   struct listparameter * suiv; 
    134120} listparameter ;           /* list of names                                  */ 
    135121 
    136 typedef struct listnamelist 
    137 { 
    138    char name[LONGNOM]; 
    139    struct listnamelist * suiv; 
    140 } listnamelist ;            /* list of names                                  */ 
    141  
    142122typedef struct listname 
    143123{ 
    144    char name[LONGNOM]; 
     124   char n_name[LONGNOM]; 
    145125   struct  listname* suiv; 
    146126} listname ;            /* list of names                                  */ 
    147127 
    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]; 
     128typedef struct listcouple 
     129{ 
     130   char c_namevar[LONGNOM]; 
     131   char c_namepointedvar[LONGNOM]; 
    163132   struct listcouple * suiv; 
    164133} listcouple;              /* list of names                                   */ 
    165134 
    166135 
    167 typedef struct listnom  
    168 { 
    169    char nom[LONGNOM]; 
     136typedef struct listnom 
     137{ 
     138   char o_nom[LONGNOM]; 
     139   char o_module[LONGNOM]; 
     140   int  o_val; 
    170141   listcouple *couple; 
    171142   struct listnom * suiv; 
     
    173144 
    174145 
    175 typedef struct listallocate  
    176 { 
    177    char nomvar[LONGNOM]; 
    178    char subroutine[LONGNOM]; 
    179    char module[LONGNOM]; 
     146typedef struct listallocate 
     147{ 
     148   char a_nomvar[LONGNOM]; 
     149   char a_subroutine[LONGNOM]; 
     150   char a_module[LONGNOM]; 
    180151   struct listallocate * suiv; 
    181152} listallocate ; 
    182153 
    183   
    184 typedef struct listvarpointtovar  
    185 { 
    186    char usemodule[LONGNOM]; 
    187    char cursubroutine[LONGNOM]; 
    188    listcouple *couple; 
     154 
     155typedef struct listvarpointtovar 
     156{ 
     157   char t_usemodule[LONGNOM]; 
     158   char t_cursubroutine[LONGNOM]; 
     159   listcouple *t_couple; 
    189160   struct  listvarpointtovar* suiv; 
    190161}listvarpointtovar ;       /* list of names                                   */ 
    191162 
    192163 
    193 typedef struct listindice  
    194 { 
    195    int indice; 
     164typedef struct listindice 
     165{ 
     166   int i_indice; 
    196167   struct  listindice * suiv; 
    197168} 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 
    202219/******************************************************************************/ 
    203220/****************   *** COMMON Variables ***  *********************************/ 
     
    212229/******************************************************************************/ 
    213230 int inagrifcallargument; 
    214  int adduseagrifutil; 
    215231 int sameagrifargument; 
    216232 int InAgrifParentDef; 
     
    219235/****************   *** VAR DEF Variables ***   *******************************/ 
    220236/******************************************************************************/ 
    221  int oldindicemaxtabvars;  /* Number of variables in the model i.e. last      */ 
    222237 int indicemaxtabvars;     /* Number of variables in the model i.e. last      */ 
    223238                           /*    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 */ 
    229243 int Allocatabledeclare; 
    230244 int SaveDeclare; 
     245 int functiondeclarationisdone; 
    231246 int pointerdeclare; 
    232247 int optionaldeclare; 
    233  int VariableIsParameter;  
     248 int VarType; 
     249 int VarTypepar; 
     250 int VariableIsParameter; 
    234251 int dimsgiven; 
     252 int shouldincludempif; 
    235253 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]; 
    239258 char IntentSpec[LONGNOM]; 
    240  char NamePrecision[LONGNOM];  
    241  char CharacterSize[LONGNOM];  
     259 char NamePrecision[LONGNOM]; 
     260 char CharacterSize[LONGNOM]; 
    242261 char curmodulename[LONGNOM]; 
    243262 char vallengspec[LONGNOM]; 
    244263 char subroutinename[LONGNOM]; 
    245  
    246 /******************************************************************************/ 
    247 /****************   *** TOAMR Variables ***   *********************************/ 
    248 /******************************************************************************/ 
    249  char Alloctreatedname[LONGNOM]; 
    250264 
    251265/******************************************************************************/ 
     
    256270 int onlyfixedgrids;       /* = 1 if onlyfixedgrids is true                   */ 
    257271 int todebug; 
     272 int mark; 
     273 int todebugfree; 
    258274 int fixedgrids;           /* = 1 if fixedgrids is true                       */ 
    259275 char nbmaillesX[LONGNOM]; /* number of cells in the x direction              */ 
     
    264280 int IndicenbmaillesZ; 
    265281 
    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; 
    314282 int inmodulemeet; 
    315283 int incalldeclare; 
    316  int Did_filetoparse_treated; 
    317284 int aftercontainsdeclare; /* Signale si l'on vient d'un contains ou non */ 
     285 int retour77; 
    318286 int colnum; 
    319287 int callagrifinitgrids; 
    320288 int callmpiinit; 
    321289 int firstpass; 
    322  int listofvarofusemodulecreated; 
    323290 int couldaddvariable; 
    324  int Savemeet; 
    325291 int pointedvar; 
    326292 int agrif_parentcall; 
    327293 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       */ 
    330295                           /*    only                                         */ 
    331296                           /*    scalar and not table u(1,1,1) in place of u  */ 
    332297 int checkexistcommon; 
    333298 int insubroutinedeclare; 
    334  int tmpdeclaration_everdone; 
    335  int paramdeclaration_everdone; 
    336299 int inmoduledeclare; 
    337  int AllocEmpty; 
    338300 int dimsempty; 
    339301 int created_dimensionlist; 
    340302 
    341303 char meetagrifinitgrids[LONGNOM]; 
    342  char meetmpiinit[LONGNOM]; 
    343304 char mpiinitvar[LONGNOM]; 
    344305 char *NameTamponfile; 
    345306 char toprintglob[LONGNOM]; 
    346  char recorddimension[LONGNOM]; 
    347307 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 */ 
    351309 char curfilename[LONGNOM]; 
    352310 char nomfileoutput[LONGNOM]; 
    353311 char curbuf[100*LONGNOM]; 
    354312 char motparse[LONGNOM]; 
     313 char motparse1[LONGNOM]; 
    355314 char charusemodule[LONGNOM]; 
    356315 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                                     */ 
    367325 FILE *oldfortranout; 
    368326 FILE *subloop; 
    369  FILE *commontomoduleout; 
    370  FILE *paramtomoduleout; 
    371  FILE *inputmodule; 
     327 FILE *module_declar; 
    372328 FILE *allocationagrif; 
     329 FILE *paramout; 
    373330 
    374331 long int pos_cur;         /* current position in the output file             */ 
     
    377334 long int pos_curcall;     /* current position in the output file             */ 
    378335 long int pos_curuse;      /* current position in the output file             */ 
     336 long int pos_curfunction; /* current position in the output file             */ 
    379337 long int pos_cur_decl;    /* current position in the output file             */ 
    380338 long int pos_curdata;     /* current position in the output file             */ 
    381339 long int pos_curparameter;/* current position in the output file             */ 
    382340 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             */ 
    383343 long int pos_curinit;     /* current position in the output file             */ 
    384344 long int pos_curinclude;  /* final position of a line in file                */ 
    385345 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                */ 
    392348 
    393349/******************************************************************************/ 
    394350/*********** Declaration of externals subroutines *****************************/ 
    395351/***************************************************** ************************/ 
    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/******************************************************************************/ 
     355extern int main(int argc,char *argv[]); 
     356/******************************************************************************/ 
     357/*********** fortran.y ********************************************************/ 
     358/******************************************************************************/ 
     359extern void processfortran(char *fichier_entree); 
     360/******************************************************************************/ 
     361/*********** dependfile.c *****************************************************/ 
     362/******************************************************************************/ 
     363extern void Writethedependnbxnbyfile(); 
     364extern void Readthedependnbxnbyfile(); 
     365extern void Writethedependlistofmoduleused(char *NameTampon ); 
     366extern void Readthedependlistofmoduleused(char *NameTampon); 
     367extern void WritedependParameterList(char *NameTampon ); 
     368extern listparameter *ReaddependParameterList(char *NameTampon, 
     369                                                        listparameter *listout); 
     370extern void Writethedependfile(char *NameTampon, listvar *input ); 
     371extern listvar *Readthedependfile( char *NameTampon , listvar *listout); 
     372extern void Write_Subroutine_For_Alloc(); 
     373extern void Read_Subroutine_For_Alloc(); 
     374extern void Writethedependavailablefile(); 
     375extern void Readthedependavailablefile(); 
     376extern int Did_filetoparse_readed(char *NameTampon); 
     377extern int Did_module_common_treaded(char *NameTampon); 
     378/******************************************************************************/ 
     379/*********** DiversListe.c ****************************************************/ 
     380/******************************************************************************/ 
     381extern void Add_Common_var_1(); 
     382extern listnom *Addtolistnom(char *nom, listnom *listin,int value); 
     383extern listname *Addtolistname(char *nom,listname *input); 
     384extern int ModuleIsDefineInInputFile(char *name); 
     385extern void Addmoduletothelisttmp(char *name); 
     386extern void Add_NameOfModule_1(char *nom); 
     387extern void Add_NameOfCommon_1(char *nom); 
     388extern void Add_CouplePointed_Var_1(char *namemodule,listcouple *couple); 
     389extern void Add_Include_1(char *name); 
     390extern void Add_ImplicitNoneSubroutine_1(); 
     391extern void WriteIncludeDeclaration(); 
     392extern void Add_Save_Var_1 (char *name,listdim *d); 
     393/******************************************************************************/ 
     394/*********** SubLoopCreation.c ************************************************/ 
     395/******************************************************************************/ 
     396extern void writeheadnewsub_0(int suborfunc); 
     397extern void WriteVariablelist_subloop(FILE *outputfile); 
     398extern void WriteVariablelist_subloop_Call(FILE *outputfile); 
     399extern void WriteVariablelist_subloop_Def(FILE *outputfile); 
     400extern void WriteHeadofSubroutineLoop(); 
     401extern void closeandcallsubloopandincludeit_0(int suborfun, 
     402                                                          char endsub[LONGNOM]); 
    436403/******************************************************************************/ 
    437404/*********** toamr.c **********************************************************/ 
     
    442409extern char *vargridnametabvars (variable * var,int iorindice); 
    443410extern char *vargridcurgridtabvars (variable * var,int ParentOrCurgrid); 
     411extern char *vargridcurgridtabvarswithoutAgrif_Gr (variable * var); 
    444412extern char *vargridparam (variable * v, int whichone); 
    445413extern void write_probdimagrif_file(); 
    446414extern void write_keysagrif_file(); 
    447 extern void write_clusteringagrif_file(); 
    448415extern void write_modtypeagrif_file(); 
    449416extern void write_createvarnameagrif_file(variable *v,FILE *createvarname, 
     
    452419extern void write_Getnumberofcells_file(); 
    453420extern 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); 
     422extern void Write_Alloc_Agrif_Files(); 
     423extern int IndiceInlist(int indic, listindice *listin); 
     424extern void write_allocation_Common_0(); 
     425extern void write_allocation_Global_0(); 
    461426extern void creefichieramr (char *NameTampon); 
    462427/******************************************************************************/ 
    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 /******************************************************************************/ 
    513428/*********** UtilAgrif.c ******************************************************/ 
    514429/******************************************************************************/ 
    515 extern void Instanciation_0(char *ident); 
    516430extern int Vartonumber(char *tokname); 
    517431extern int Agrif_in_Tok_NAME(char *tokname); 
    518 extern void completeListofvariableinagriffunction_1(char *ident); 
    519432extern void ModifyTheVariableName_0(char *ident); 
    520 extern void AddsubroutineTolistsubwhereagrifused(); 
    521 extern void AddUseAgrifUtil_0(); 
     433extern void Add_SubroutineWhereAgrifUsed_1(char *sub,char *mod); 
     434extern void  AddUseAgrifUtil_0(FILE *fileout); 
     435extern void  AddUseAgrifUtilBeforeCall_0(FILE *fileout); 
    522436extern void NotifyAgrifFunction_0(char *ident); 
    523437extern void ModifyTheAgrifFunction_0(char *ident); 
    524438extern 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); 
     439extern void Instanciation_0(char *ident); 
    538440/******************************************************************************/ 
    539441/*********** UtilCharacter.c **************************************************/ 
    540442/******************************************************************************/ 
    541 extern void FindAndChangeNameToTabvars(char name[LONGNOM], 
    542                 char toprint[LONGNOM],listvar * listtosee, int ParentOrCurgrid); 
     443extern void FindAndChangeNameToTabvars(char name[LONGNOM],char toprint[LONGNOM], 
     444                                             listvar * listtosee, int whichone); 
    543445extern char *ChangeTheInitalvaluebyTabvarsName(char *nom,listvar *listtoread, 
    544446                                                                  int whichone); 
     
    547449extern listnom *DecomposeTheNameinlistnom(char *nom, listnom * listout); 
    548450extern 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); 
     451extern void convert2lower(char *name); 
    563452/******************************************************************************/ 
    564453/*********** UtilFile.c *******************************************************/ 
     
    571460extern void copyuseonly_0(char *namemodule); 
    572461/******************************************************************************/ 
    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 /******************************************************************************/ 
    590462/*********** UtilFortran.c ****************************************************/ 
    591463/******************************************************************************/ 
     
    593465extern int Variableshouldberemove(char *nom); 
    594466extern int variableisglobal(listvar *curvar, listvar *listin); 
    595 extern void variableisglobalinmodule(listcouple *listin, char *module,  
     467extern int VariableIsInList(listvar *curvar,listvar *listin); 
     468extern void variableisglobalinmodule(listcouple *listin, char *module, 
    596469                                                                 FILE *fileout); 
    597 extern int variableisparameterglobal(listvar *curvar, listparameter *listin); 
    598 extern void addsubroutine_alloc_0(int moduleorcontains); 
     470extern void Remove_Word_Contains_0(); 
     471extern void Remove_Word_end_module_0(); 
     472extern void Write_Word_Contains_0(); 
     473extern void Write_Word_end_module_0(); 
     474extern void Add_Subroutine_For_Alloc(char *nom); 
     475extern void Write_Alloc_Subroutine_0(); 
     476extern void Write_Alloc_Subroutine_For_End_0(); 
     477extern void Write_GlobalParameter_Declaration_0(); 
     478extern void Write_NotGridDepend_Declaration_0(); 
    599479extern int IsTabvarsUseInArgument_0(); 
    600480extern int ImplicitNoneInSubroutine(); 
     481extern void Add_Pointer_Var_From_List_1(listvar *listin); 
     482extern void Add_Pointer_Var_1(char *nom); 
    601483extern int varispointer_0(char *ident); 
    602484extern int VariableIsNotFunction(char *ident); 
    603485/******************************************************************************/ 
    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/******************************************************************************/ 
     488extern void Init_Variable(variable *var); 
     489extern listvar * AddListvarToListvar(listvar *l,listvar *glob, 
     490                                                            int ValueFirstpass); 
     491extern void CreateAndFillin_Curvar(char *type,variable *curvar); 
     492extern void duplicatelistvar(listvar *orig); 
     493extern listdim * insertdim(listdim *lin,typedim nom); 
     494extern void change_dim_char(listdim *lin,listvar * l); 
     495extern int num_dims(listdim *d); 
     496extern variable * createvar(char *nom,listdim *d); 
     497extern listvar * insertvar(listvar *lin,variable *v); 
     498extern listvar *settype(char *nom,listvar *lin); 
     499/******************************************************************************/ 
     500/*********** UtilNotGridDep.c *************************************************/ 
     501/******************************************************************************/ 
     502extern void Add_NotGridDepend_Var_1 (char *name); 
     503extern int VarIsNonGridDepend(char *name); 
     504/******************************************************************************/ 
     505/*********** WorkWithAllocatelist.c *******************************************/ 
     506/******************************************************************************/ 
     507extern void Add_Allocate_Var_1(char *nom,char *nommodule); 
     508extern int IsVarAllocatable_0(char *ident); 
     509extern int varisallocatable_0(char *ident); 
     510/******************************************************************************/ 
     511/*********** WorkWithglobliste.c **********************************************/ 
     512/******************************************************************************/ 
     513extern void Add_Globliste_1(listvar *listtoadd); 
     514extern void Add_SubroutineDeclarationSave_Var_1(listvar *listtoadd); 
     515/******************************************************************************/ 
     516/*********** WorkWithlistdatavariable.c ***************************************/ 
     517/******************************************************************************/ 
     518extern void Add_Data_Var_1 (char *name,char *values); 
     519/******************************************************************************/ 
     520/*********** WorkWithlistmoduleinfile.c ***************************************/ 
     521/******************************************************************************/ 
     522 
     523/******************************************************************************/ 
     524/*********** WorkWithlistofmodulebysubroutine.c *******************************/ 
     525/******************************************************************************/ 
     526extern void RecordUseModulesVariables(); 
     527extern void  RecordUseModulesUseModulesVariables(); 
     528extern void Add_NameOfModuleUsed_1(char *name); 
     529extern void Addmoduletothelist(char *name); 
     530extern void WriteUsemoduleDeclaration(); 
     531/******************************************************************************/ 
     532/*********** WorkWithlistvarindoloop.c ****************************************/ 
     533/******************************************************************************/ 
     534extern void Add_UsedInSubroutine_Var_1 (char *ident); 
     535extern void ajoutevarindoloop_definedimension (char *name); 
     536extern void  ModifyThelistvarindoloop(); 
     537extern void  CompleteThelistvarindoloop(); 
     538extern void CopyRecord(variable *var1,variable *var2); 
     539extern void Update_List_Subroutine_Var(listvar *list_to_modify); 
     540extern void Update_List_Global_Var_From_List_Save_Var(); 
     541extern void Update_List_From_Common_Var(listvar *list_to_modify); 
     542extern void Update_List_Var(listvar *list_to_modify); 
     543extern void List_UsedInSubroutine_Var_Update_From_Module_Used(); 
     544extern void Update_NotGridDepend_Var(listvar *list_to_modify); 
     545extern int LookingForVariableInList(listvar *listin,variable *var); 
     546extern int LookingForVariableInListGlobal(listvar *listin,variable *var); 
     547extern int LookingForVariableInListGlob(listvar *listin,variable *var); 
     548extern int LookingForVariableInListParamGlob(listparameter *listin, 
     549                                                                 variable *var); 
     550extern void UpdateListDeclarationWithDimensionList(); 
     551extern void Clean_List_UsedInSubroutine_Var(); 
     552extern void Clean_List_SubroutineDeclaration_Var(); 
     553extern void ListClean(); 
     554extern void ListUpdate(); 
     555extern void Sort_List_SubroutineArgument_Var(); 
     556extern void IndiceTabvars_Global_Var_Treated(char *nom); 
     557extern void IndiceTabvars_Global_Var_No_Treated(char *nom); 
     558extern void UpdateTheRemainingList(listvar *record); 
     559extern void IndiceTabvars_Common_Var_Treated(char *nom); 
     560extern void IndiceTabvars_Common_Var_No_Treated(char *nom); 
     561extern void IndiceTabvarsIdentification(); 
     562extern void New_Allocate_Subroutine_Is_Necessary(); 
     563extern void New_Allocate_Subroutine_For_Common_Is_Necessary(); 
     564extern void NewModule_Creation_0(); 
     565extern void UpdateList_SubroutineWhereAgrifUsed(); 
     566extern void UpdateList_UsedInSubroutine_With_dimension(); 
     567extern void Affiche(); 
     568extern int SubInList_ContainsSubroutine(); 
     569/******************************************************************************/ 
     570/*********** WorkWithParameterlist.c ******************************************/ 
     571/******************************************************************************/ 
     572extern void Add_GlobalParameter_Var_1(listvar *listin); 
     573extern void Add_Parameter_Var_1(listvar *listin); 
     574extern void Add_Dimension_Var_1(listvar *listin); 
     575/******************************************************************************/ 
     576/*********** WorkWithvarofsubroutineliste.c ***********************************/ 
     577/******************************************************************************/ 
     578extern void Add_SubroutineArgument_Var_1(listvar *listtoadd); 
     579extern void Add_FunctionType_Var_1(char *nom); 
     580extern void Add_SubroutineDeclaration_Var_1 (listvar *listtoadd); 
     581/******************************************************************************/ 
     582/*********** Writedeclarations.c **********************************************/ 
     583/******************************************************************************/ 
     584extern void WriteBeginDeclaration(variable *v,char ligne[LONGLIGNE]); 
     585extern void WriteScalarDeclaration(variable *v,char ligne[LONGLIGNE]); 
     586extern void WriteTableDeclaration(variable * v,char ligne[LONGLIGNE],int tmpok); 
     587extern void writevardeclaration (listvar * var_record, FILE *fileout, 
     588                                                                     int value); 
     589extern void WriteLocalParamDeclaration(); 
     590extern void WriteFunctionDeclaration(); 
     591extern void WriteSubroutineDeclaration(int value); 
     592extern void WriteArgumentDeclaration_beforecall(); 
     593extern void WriteArgumentDeclaration_Sort(); 
     594extern listnom *writedeclarationintoamr (listvar * deb_common, FILE *fileout, 
     595                                       variable *var , char commonname[LONGNOM], 
     596                           listnom *neededparameter, char name_common[LONGNOM]); 
     597extern void writesub_loopdeclaration_scalar (listvar * deb_common, 
     598                                                                 FILE *fileout); 
     599extern void writesub_loopdeclaration_tab (listvar * deb_common, FILE *fileout); 
     600/******************************************************************************/ 
     601/*********** WriteInFile.c ****************************************************/ 
     602/******************************************************************************/ 
     603extern void tofich_reste (FILE * filout, char *s,int returnlineornot); 
     604extern void tofich (FILE * filout, char *s, int returnlineornot); 
     605extern void tofich_blanc (FILE * filout, int size); 
     606extern void tofich_line (FILE * filout, int size, int long position); 
     607extern void RemoveWordSET_0(FILE * filout, long int position, 
     608                                                         long int sizetoremove); 
     609extern void RemoveWordCUR_0(FILE * filout, long int position, 
     610                                                         long int sizetoremove); 
Note: See TracChangeset for help on using the changeset viewer.