Changeset 774


Ignore:
Timestamp:
2007-12-18T17:45:53+01:00 (13 years ago)
Author:
rblod
Message:

Update Agrif, see ticket:#39

Location:
trunk/AGRIF
Files:
32 edited

Legend:

Unmodified
Added
Removed
  • trunk/AGRIF/AGRIF_FILES/modbc.F

    r662 r774  
    5858C 
    5959C     Arguments       
    60       INTEGER,DIMENSION(6) :: TypeInterp    ! TYPE of interpolation 
     60      INTEGER,DIMENSION(6,6) :: TypeInterp    ! TYPE of interpolation 
    6161                                            ! (linear,...) 
    6262      TYPE(AGRIF_PVariable) :: parent       ! Variable on the parent grid 
     
    126126      External :: procname 
    127127      Optional :: procname 
    128       INTEGER,DIMENSION(6) :: TypeInterp    ! TYPE of interpolation (linear,  
     128      INTEGER,DIMENSION(6,6) :: TypeInterp    ! TYPE of interpolation (linear,  
    129129                                            ! lagrange, spline, ... ) 
    130130      TYPE(AGRIF_PVariable) :: parent       ! Variable on the parent grid 
     
    202202      External :: procname 
    203203      Optional :: procname      
    204       INTEGER,DIMENSION(6) :: TypeInterp    ! TYPE of interpolation (linear,  
     204      INTEGER,DIMENSION(6,6) :: TypeInterp    ! TYPE of interpolation (linear,  
    205205                                            ! lagrange, spline, ... ) 
    206206      TYPE(AGRIF_PVariable) :: parent       ! Variable on the parent grid 
     
    279279      External :: procname 
    280280      Optional :: procname      
    281       INTEGER,DIMENSION(6) :: TypeInterp      ! TYPE of interpolation (linear,  
     281      INTEGER,DIMENSION(6,6) :: TypeInterp      ! TYPE of interpolation (linear,  
    282282                                              ! lagrange, spline, ... ) 
    283283      TYPE(AGRIF_PVariable) :: parent         ! Variable on the parent grid 
     
    356356      External :: procname 
    357357      Optional :: procname      
    358       INTEGER,DIMENSION(6) :: TypeInterp      ! TYPE of interpolation (linear,  
     358      INTEGER,DIMENSION(6,6) :: TypeInterp      ! TYPE of interpolation (linear,  
    359359                                              ! lagrange, spline, ... ) 
    360360      TYPE(AGRIF_PVariable) :: parent         ! Variable on the parent grid 
     
    433433C 
    434434C     Arguments       
    435       INTEGER,DIMENSION(6) :: TypeInterp      ! TYPE of interpolation (linear,  
     435      INTEGER,DIMENSION(6,6) :: TypeInterp      ! TYPE of interpolation (linear,  
    436436                                              ! lagrange, spline, ... ) 
    437437      TYPE(AGRIF_PVariable) :: parent         ! Variable on the parent grid 
     
    507507      TYPE(AGRIF_PVariable) :: parent         ! Variable on the parent grid 
    508508      TYPE(AGRIF_PVariable) :: child          ! Variable on the child grid 
    509       INTEGER,DIMENSION(6)  :: TypeInterp     ! TYPE of interpolation 
     509      INTEGER,DIMENSION(6,6)  :: TypeInterp     ! TYPE of interpolation 
    510510                                              !    (linear,lagrange,...) 
    511511      INTEGER               :: deb,fin        ! Positions where boundary 
     
    715715      External :: procname 
    716716      Optional :: procname 
    717       INTEGER,DIMENSION(6) :: TypeInterp ! TYPE of interpolation (linear,  
     717      INTEGER,DIMENSION(6,6) :: TypeInterp ! TYPE of interpolation (linear,  
    718718                                         !   spline,...)   
    719719      TYPE(AGRIF_PVariable)    :: parent ! Variable on the parent grid 
     
    910910C       
    911911      kindex = 1     
     912       
     913 
    912914C 
    913915      do nb = 1,nbdim 
    914916C 
    915         do ndir = 1,2                 
     917        do ndir = 1,2 
    916918C 
    917919          if (loctab_child(nb) /= (-ndir)  
     
    920922              IF (present(procname)) THEN 
    921923              Call Agrif_InterpnD 
    922      &             (TYPEInterp,parent,child, 
     924     &             (TYPEInterp(nb,:),parent,child, 
    923925     &              ptres(1:nbdim,1,ndir,nb),ptres(1:nbdim,2,ndir,nb), 
    924926     &              pttab_child(1:nbdim),pttab_Parent(1:nbdim), 
     
    928930              ELSE 
    929931              Call Agrif_InterpnD               
    930      &             (TYPEInterp,parent,child, 
     932     &             (TYPEInterp(nb,:),parent,child, 
    931933     &              ptres(1:nbdim,1,ndir,nb),ptres(1:nbdim,2,ndir,nb), 
    932934     &              pttab_child(1:nbdim),pttab_Parent(1:nbdim), 
  • trunk/AGRIF/AGRIF_FILES/modbcfunction.F

    r662 r774  
    329329C  
    330330      Subroutine Agrif_Set_bcinterp(tabvarsindic,interp,interp1, 
    331      &      interp2,interp3) 
     331     &      interp2,interp3,interp11,interp12,interp21,interp22) 
    332332C 
    333333CCC   Description: 
     
    343343C 
    344344      INTEGER, OPTIONAL      :: interp,interp1,interp2,interp3 
     345      INTEGER, OPTIONAL      :: interp11,interp12,interp21,interp22 
    345346C 
    346347      INTEGER :: tabvarsindic ! indice of the variable in tabvars 
     
    350351C 
    351352      Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp =  
    352      &           Agrif_Constant 
     353     &           Agrif_Constant    
    353354      IF (present(interp)) THEN 
    354355      Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp =  
    355356     &           interp 
    356       ENDIF 
     357      ENDIF        
    357358      IF (present(interp1)) THEN 
    358       Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp(1) =  
     359      Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp(1:2,1) =  
    359360     &           interp1 
    360       ENDIF 
     361      ENDIF        
     362      IF (present(interp11)) THEN 
     363      Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp(1,1) =  
     364     &           interp11 
     365      ENDIF 
     366      IF (present(interp12)) THEN 
     367      Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp(1,2) =  
     368     &           interp12 
     369      ENDIF           
    361370      IF (present(interp2)) THEN 
    362       Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp(2) =  
     371      Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp(1:2,2) =  
    363372     &           interp2 
    364373      ENDIF 
     374      IF (present(interp21)) THEN 
     375      Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp(2,1) =  
     376     &           interp21 
     377      ENDIF       
     378      IF (present(interp22)) THEN 
     379      Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp(2,2) =  
     380     &           interp22 
     381      ENDIF             
    365382      IF (present(interp3)) THEN 
    366       Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp(3) =  
     383      Agrif_Mygrid % tabvars(tabvarsindic)% var % bctypeinterp(1:2,3) = 
    367384     &           interp3 
    368385      ENDIF 
     
    617634      if ( dimensio .EQ. 3 ) then 
    618635      IF (present(procname)) THEN 
     636 
    619637      Call Agrif_Interp_Bc_3D( 
    620638     & Agrif_Mygrid % tabvars(tabvarsindic) % var % bctypeinterp, 
     
    14571475      ENDIF 
    14581476       
    1459       print *,'ici' 
    14601477      Allocate(Newflux) 
    14611478       
  • trunk/AGRIF/AGRIF_FILES/modcurgridfunctions.F

    r662 r774  
    802802      End Subroutine Agrif_Set_Regridding 
    803803C 
     804C 
     805C     ************************************************************************** 
     806CCC   subroutine Agrif_Set_coeffref_x 
     807C     ************************************************************************** 
     808      subroutine Agrif_Set_coeffref_x(coefref) 
     809 
     810      integer :: coefref 
     811 
     812      if (coefref.LT.0) then 
     813         write(*,*)'Coefficient of raffinement should be positive' 
     814         stop 
     815      else 
     816         AGRIF_coeffref(1) = coefref 
     817      endif 
     818      end subroutine Agrif_Set_coeffref_x 
     819C 
     820C     ************************************************************************** 
     821CCC   subroutine Agrif_Set_coeffref_y 
     822C     ************************************************************************** 
     823      subroutine Agrif_Set_coeffref_y(coefref) 
     824 
     825      integer :: coefref 
     826 
     827      if (coefref.LT.0) then 
     828         write(*,*)'Coefficient of raffinement should be positive' 
     829         stop 
     830      else 
     831         AGRIF_coeffref(2) = coefref 
     832      endif 
     833      end subroutine Agrif_Set_coeffref_y 
     834C 
     835C     ************************************************************************** 
     836CCC   subroutine Agrif_Set_coeffref_z 
     837C     ************************************************************************** 
     838      subroutine Agrif_Set_coeffref_z(coefref) 
     839 
     840      integer :: coefref 
     841 
     842      if (coefref.LT.0) then 
     843         write(*,*)'Coefficient of raffinement should be positive' 
     844         stop 
     845      else 
     846         AGRIF_coeffref(3) = coefref 
     847      endif 
     848      end subroutine Agrif_Set_coeffref_z 
     849C 
     850C     ************************************************************************** 
     851CCC   subroutine Agrif_Set_coeffreft_x 
     852C     ************************************************************************** 
     853      subroutine Agrif_Set_coeffreft_x(coefref) 
     854 
     855      integer :: coefref 
     856 
     857      if (coefref.LT.0) then 
     858         write(*,*)'Coefficient of time raffinement should be positive' 
     859         stop 
     860      else 
     861         AGRIF_coeffreft(1) = coefref 
     862      endif 
     863      end subroutine Agrif_Set_coeffreft_x 
     864C 
     865C     ************************************************************************** 
     866CCC   subroutine Agrif_Set_coeffreft_y 
     867C     ************************************************************************** 
     868      subroutine Agrif_Set_coeffreft_y(coefref) 
     869 
     870      integer :: coefref 
     871 
     872      if (coefref.LT.0) then 
     873         write(*,*)'Coefficient of time raffinement should be positive' 
     874         stop 
     875      else 
     876         AGRIF_coeffreft(2) = coefref 
     877      endif 
     878      end subroutine Agrif_Set_coeffreft_y 
     879C 
     880C     ************************************************************************** 
     881CCC   subroutine Agrif_Set_coeffreft_z 
     882C     ************************************************************************** 
     883      subroutine Agrif_Set_coeffreft_z(coefref) 
     884 
     885      integer :: coefref 
     886 
     887      if (coefref.LT.0) then 
     888         write(*,*)'Coefficient of time raffinement should be positive' 
     889         stop 
     890      else 
     891         AGRIF_coeffreft(3) = coefref 
     892      endif 
     893      end subroutine Agrif_Set_coeffreft_z 
     894C 
     895C     ************************************************************************** 
     896CCC   subroutine Agrif_Set_Minwidth 
     897C     ************************************************************************** 
     898      subroutine Agrif_Set_Minwidth(coefminwidth) 
     899 
     900      integer :: coefminwidth 
     901 
     902      if (coefminwidth.LT.0) then 
     903         write(*,*)'Coefficient of Minwidth should be positive' 
     904         stop 
     905      else 
     906         Agrif_Minwidth = coefminwidth 
     907      endif 
     908      end subroutine Agrif_Set_Minwidth 
     909C 
     910C     ************************************************************************** 
     911CCC   subroutine Agrif_Set_Rafmax 
     912C     ************************************************************************** 
     913      subroutine Agrif_Set_Rafmax(coefrafmax) 
     914 
     915      integer :: coefrafmax 
     916      integer :: i 
     917      real :: res 
     918 
     919      if (coefrafmax.LT.0) then 
     920         write(*,*)'Coefficient of  should be positive' 
     921         stop 
     922      else 
     923         res = 1. 
     924         do i = 1 , coefrafmax - 1 
     925            res = res * FLOAT(AGRIF_coeffref(1)) 
     926         enddo 
     927         if ( res .EQ. 0 ) res = 1 
     928         Agrif_Mind(1) = 1. / res 
     929C 
     930         res = 1. 
     931         do i = 1 , coefrafmax - 1 
     932            res = res * FLOAT(AGRIF_coeffref(2)) 
     933         enddo 
     934         if ( res .EQ. 0 ) res = 1 
     935         Agrif_Mind(2) = 1. / res 
     936C 
     937         res = 1. 
     938         do i = 1 , coefrafmax - 1 
     939            res = res * FLOAT(AGRIF_coeffref(3)) 
     940         enddo 
     941         if ( res .EQ. 0 ) res = 1 
     942         Agrif_Mind(3) = 1. / res 
     943C 
     944      endif 
     945      end subroutine Agrif_Set_Rafmax 
     946C 
     947C     ************************************************************************** 
     948CCC   subroutine Agrif_Open_File 
     949C     ************************************************************************** 
     950      subroutine Agrif_Open_File(num_id,name_file) 
     951 
     952      integer :: num_id 
     953      character(*) :: name_file 
     954 
     955      num_id = Agrif_Get_Unit() 
     956      if ( .NOT. Agrif_Root() ) then 
     957         name_file = TRIM(Agrif_CFixed())//'_'//TRIM(name_file) 
     958      endif 
     959 
     960      end subroutine Agrif_Open_File 
     961 
    804962      End Module Agrif_CurgridFunctions  
  • trunk/AGRIF/AGRIF_FILES/modmpp.F

    r662 r774  
    341341     &               MPI_COMM_WORLD,statut,code) 
    342342       END SELECT 
     343                         
     344            Call where_valtabtotab_mpi(tempCextend%var, 
     345     &             temprecv%var,imin_recv(:,k),imax_recv(:,k),0.,nbdim) 
     346      
     347                Call Agrif_nbdim_deallocation(temprecv%var,nbdim) 
     348C                deallocate(temprecv%var) 
     349 
    343350            endif 
     351 
     352C 
     353      enddo 
     354 
     355C     Reception from others processors of the necessary part of the parent grid 
     356      do k = Agrif_ProcRank+1,Agrif_Nbprocs-1 
     357C 
     358C 
    344359             
    345360            Call MPI_SEND(sendtoproc(k),1,MPI_LOGICAL,k,etiquette, 
     
    430445                END SELECT 
    431446C 
    432             endif             
    433              
    434             if (recvfromproc(k)) then 
    435                          
    436             Call where_valtabtotab_mpi(tempCextend%var, 
    437      &             temprecv%var,imin_recv(:,k),imax_recv(:,k),0.,nbdim) 
    438       
    439                 Call Agrif_nbdim_deallocation(temprecv%var,nbdim) 
    440 C                deallocate(temprecv%var) 
    441  
    442447            endif 
    443448 
    444449C 
    445450      enddo 
    446  
    447451C 
    448452C 
  • trunk/AGRIF/AGRIF_FILES/modtypes.F

    r662 r774  
    243243         INTEGER :: updateinf ! option update 
    244244         INTEGER :: updatesup ! option update          
    245          INTEGER, DIMENSION(6) :: bcTYPEinterp ! option bcinterp 
     245         INTEGER, DIMENSION(6,6) :: bcTYPEinterp ! option bcinterp 
    246246         INTEGER, DIMENSION(6) :: TYPEinterp ! option interp 
    247247         INTEGER, DIMENSION(6) :: TYPEupdate ! option update 
  • trunk/AGRIF/LIB/DiversListe.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    5252   variable *newvariable; 
    5353   listdim *dims; 
    54    char listdimension[LONGNOM]; 
    55    char ligne[LONGNOM]; 
     54   char listdimension[LONG_C]; 
     55   char ligne[LONG_C]; 
    5656   int out; 
    5757 
     
    6565   /*                                                                         */ 
    6666   strcpy(newvariable->v_nomvar,commonvar); 
     67   Save_Length(commonvar,4); 
    6768   strcpy(newvariable->v_commonname,commonblockname); 
     69   Save_Length(commonblockname,7); 
    6870   strcpy(newvariable->v_modulename,curmodulename); 
     71   Save_Length(curmodulename,6); 
    6972   strcpy(newvariable->v_subroutinename,subroutinename); 
     73   Save_Length(subroutinename,11); 
    7074   newvariable->v_positioninblock= positioninblock; 
    7175   newvariable->v_common=1; 
    7276   strcpy(newvariable->v_commoninfile,mainfile); 
     77   Save_Length(mainfile,10); 
    7378 
    7479   newvar->var = newvariable; 
     
    98103      } 
    99104      strcpy(newvariable->v_readedlistdimension,listdimension); 
     105      Save_Length(listdimension,15); 
    100106   } 
    101107 
     
    147153   newnom=(listnom *) malloc (sizeof (listnom)); 
    148154   strcpy(newnom->o_nom,nom); 
     155   Save_Length(nom,23); 
    149156   newnom->o_val = value; 
    150157   newnom->suiv = NULL; 
     
    196203      newnom=(listname *) malloc (sizeof (listname)); 
    197204      strcpy(newnom->n_name,nom); 
     205      Save_Length(nom,20); 
    198206      newnom->suiv = NULL; 
    199207      input = newnom; 
     
    212220         newnom=(listname *) malloc (sizeof (listname)); 
    213221         strcpy(newnom->n_name,nom); 
     222         Save_Length(nom,20); 
    214223         newnom->suiv = input; 
    215224         input = newnom; 
     
    271280    newmodule =(listusemodule *)malloc(sizeof(listusemodule)); 
    272281    strcpy(newmodule->u_usemodule,name); 
     282    Save_Length(name,16); 
    273283    strcpy(newmodule->u_cursubroutine,subroutinename); 
     284    Save_Length(subroutinename,18); 
    274285    newmodule->suiv = NULL; 
    275286    listofmoduletmp = newmodule ; 
     
    288299       newmodule =(listusemodule *)malloc(sizeof(listusemodule)); 
    289300       strcpy(newmodule->u_usemodule,name); 
     301       Save_Length(name,16); 
    290302       strcpy(newmodule->u_cursubroutine,subroutinename); 
     303       Save_Length(subroutinename,18); 
    291304       newmodule->suiv = listofmoduletmp; 
    292305       listofmoduletmp = newmodule; 
     
    316329      newnom=(listnom *) malloc (sizeof (listnom)); 
    317330      strcpy(newnom->o_nom,nom); 
     331      Save_Length(nom,23); 
    318332      newnom->suiv = List_NameOfModule; 
    319333      List_NameOfModule = newnom; 
     
    348362         newnom=(listnom *) malloc (sizeof (listnom)); 
    349363         strcpy(newnom->o_nom,nom); 
     364         Save_Length(nom,23); 
    350365         newnom->suiv = List_NameOfCommon; 
    351366         List_NameOfCommon = newnom; 
     
    371386      pointtmp=(listvarpointtovar *)malloc(sizeof(listvarpointtovar)); 
    372387      strcpy(pointtmp->t_usemodule,namemodule); 
     388      Save_Length(namemodule,28); 
    373389      strcpy(pointtmp->t_cursubroutine,subroutinename); 
     390      Save_Length(subroutinename,29); 
    374391      pointtmp->t_couple = couple; 
    375392      if ( List_CouplePointed_Var ) 
     
    410427  newinclude =(listusemodule *)malloc(sizeof(listusemodule)); 
    411428  strcpy(newinclude->u_usemodule,name); 
     429  Save_Length(name,16); 
    412430  strcpy(newinclude->u_cursubroutine,subroutinename); 
     431  Save_Length(subroutinename,18); 
    413432  newinclude->suiv = NULL; 
    414433 
     
    482501  listvar *newvar; 
    483502  listdim *dims; 
    484   char ligne[LONGNOM]; 
    485   char listdimension[LONGNOM]; 
     503  char ligne[LONG_C]; 
     504  char listdimension[LONG_C]; 
    486505 
    487506  if ( firstpass == 1 ) 
     
    494513     newvar->var->v_save=1; 
    495514     strcpy(newvar->var->v_nomvar,name); 
     515     Save_Length(name,4); 
    496516     strcpy(newvar->var->v_modulename,curmodulename); 
     517     Save_Length(curmodulename,6); 
    497518     strcpy(newvar->var->v_subroutinename,subroutinename); 
     519     Save_Length(subroutinename,11); 
    498520     strcpy(newvar->var->v_commoninfile,mainfile); 
     521     Save_Length(mainfile,10); 
    499522 
    500523     newvar->var->v_dimension=d; 
     
    520543     } 
    521544     strcpy(newvar->var->v_readedlistdimension,listdimension); 
     545     Save_Length(listdimension,15); 
    522546     /*                                                                       */ 
    523547     newvar->suiv = NULL; 
     
    539563  listvar *newvar; 
    540564  listvar *parcours; 
    541   listdim *dims; 
    542   char ligne[LONGNOM]; 
    543   char listdimension[LONGNOM]; 
    544565 
    545566  if ( firstpass == 1 ) 
     
    556577        strcpy(newvar->var->v_nomvar,parcours->var->v_nomvar); 
    557578        strcpy(newvar->var->v_modulename,curmodulename); 
     579        Save_Length(curmodulename,6); 
    558580        strcpy(newvar->var->v_subroutinename,subroutinename); 
     581        Save_Length(subroutinename,11); 
    559582        strcpy(newvar->var->v_commoninfile,mainfile); 
     583        Save_Length(mainfile,10); 
    560584        /*                                                                    */ 
    561585        strcpy(newvar->var->v_readedlistdimension, 
  • trunk/AGRIF/LIB/SubLoopCreation.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    4949/* Firstpass 0                                                                */ 
    5050/* We should write the head of the subroutine sub_loop_<subroutinename>       */ 
    51 /* suborfunc = 1 from subroutine                                              */ 
    52 /* suborfunc = 2 from function                                                */ 
    53 /******************************************************************************/ 
    54 /*                                                                            */ 
    55 /******************************************************************************/ 
    56 void writeheadnewsub_0(int suborfunc) 
    57 { 
    58    int out; 
    59    char ligne[LONGNOM]; 
    60    listusemodule *newmodule; 
     51/******************************************************************************/ 
     52/*                                                                            */ 
     53/******************************************************************************/ 
     54void writeheadnewsub_0() 
     55{ 
     56   char ligne[LONG_C]; 
    6157 
    6258   if ( firstpass == 0 && IsTabvarsUseInArgument_0() == 1 ) 
     
    7975      tofich(fortranout,ligne,1); 
    8076 
    81    /*   writesub_loopdeclaration_scalar(List_SubroutineArgument_Var,paramout);*/ 
    8277      WriteArgumentDeclaration_Sort(); 
    83 /*      writesub_loopdeclaration_tab(List_SubroutineArgument_Var,fortranout);*/ 
    8478 
    8579      if ( mark == 1 ) fprintf(fortranout,"!!! 222222222222222 \n"); 
     
    134128{ 
    135129   listvar *parcours; 
    136    char ligne[LONGNOM]; 
     130   char ligne[LONG_C]; 
    137131   int compteur; 
    138132 
     
    230224{ 
    231225   listvar *parcours; 
    232    char ligne[LONGNOM*100]; 
     226   char ligne[LONG_40M]; 
    233227   char ligne2[10]; 
    234228   int i; 
     229   int compteur ; 
    235230 
    236231   if ( todebug == 1 ) printf("Enter in WriteVariablelist_subloop_Call\n"); 
    237232   parcours = List_UsedInSubroutine_Var; 
     233   compteur = 0 ; 
    238234   while ( parcours ) 
    239235   { 
     
    248244         if ( didvariableadded == 0 ) 
    249245         { 
    250             strcpy(ligne,""); 
     246            if ( retour77 == 1 ) strcpy(ligne,"\n     & "); 
     247            else strcpy(ligne,"\n      "); 
    251248         } 
    252249         else 
    253250         { 
    254             strcpy(ligne,""); 
    255             strcat(ligne,","); 
     251            if ( compteur == 0 ) 
     252            { 
     253               if ( retour77 == 1 ) strcpy(ligne,"\n     & "); 
     254               else strcpy(ligne,"\n      "); 
     255            } 
     256            strcat(ligne," , "); 
    256257         } 
    257258         strcat(ligne,vargridcurgridtabvars(parcours->var,0)); 
     
    288289         } 
    289290         didvariableadded = 1; 
    290          if ( retour77 == 0 ) 
     291         compteur = compteur +1 ; 
     292         /*if ( retour77 == 0 ) 
    291293         { 
    292294            strcat(ligne," &"); 
    293295            fprintf(outputfile,"\n"); 
    294296         } 
    295          else fprintf(outputfile,"\n     & "); 
    296          tofich(outputfile,ligne,0); 
     297         else fprintf(outputfile,"\n     & ");*/ 
     298         /*tofich(outputfile,ligne,0);*/ 
    297299      } 
    298300      parcours = parcours -> suiv; 
    299301   } 
     302   Save_Length(ligne,41); 
     303   tofich(outputfile,ligne,0); 
    300304   /* Now we should replace the last ", &" by " &"                            */ 
    301    if ( didvariableadded != 0 && retour77 == 0 ) fseek(outputfile,-1,SEEK_CUR); 
    302    if ( didvariableadded == 0 ) fseek(outputfile,-2,SEEK_CUR); 
     305/*   if ( didvariableadded != 0 && retour77 == 0 ) fseek(outputfile,-1,SEEK_CUR); 
     306   if ( didvariableadded == 0 ) fseek(outputfile,-1,SEEK_CUR);*/ 
    303307   if ( todebug == 1 ) printf("Out of WriteVariablelist_subloop_Call\n"); 
    304308} 
     
    323327{ 
    324328   listvar *parcours; 
    325    char ligne[LONGNOM]; 
     329   char ligne[LONG_40M]; 
    326330   int compteur; 
    327331 
     
    341345         if ( didvariableadded == 0 ) 
    342346         { 
    343             strcpy(ligne,""); 
     347            if ( retour77 == 1 ) strcpy(ligne,"\n     &"); 
     348            else strcpy(ligne,"\n      "); 
    344349         } 
    345350         else 
    346351         { 
    347             if ( compteur == 0 ) strcpy(ligne,""); 
     352            if ( compteur == 0 ) 
     353            { 
     354               if ( retour77 == 1 ) strcpy(ligne,"\n     & "); 
     355               else strcpy(ligne,"\n      "); 
     356            } 
    348357            strcat(ligne,","); 
    349358         } 
     
    351360         compteur = compteur + 1; 
    352361         didvariableadded = 1; 
    353          if ( compteur == 3 ) 
     362/*         if ( compteur == 3 ) 
    354363         { 
    355364            if ( retour77 == 0 ) 
     
    360369            else fprintf(outputfile,"\n     & %s",ligne); 
    361370            compteur = 0; 
    362          } 
     371         }*/ 
    363372      } 
    364373      parcours = parcours -> suiv; 
    365374   } 
    366    if ( compteur != 3 && compteur != 0 ) 
     375 /*  if ( compteur != 3 && compteur != 0 ) 
    367376   { 
    368377      if ( retour77 == 0 ) fprintf(outputfile,"\n      %s &",ligne); 
    369378      else fprintf(outputfile,"\n     & %s",ligne); 
    370    } 
     379   }*/ 
     380   Save_Length(ligne,41); 
     381   tofich(outputfile,ligne,0); 
    371382 
    372383   /* Now we should replace the last ", &" by " &"                            */ 
    373   if ( didvariableadded != 0 && retour77 == 0 ) fseek(outputfile,-1,SEEK_CUR); 
    374    if ( didvariableadded == 0 ) fseek(outputfile,-1,SEEK_CUR); 
     384  /* if ( didvariableadded != 0 && retour77 == 0 ) fseek(outputfile,-1,SEEK_CUR); 
     385   if ( didvariableadded == 0 ) fseek(outputfile,-1,SEEK_CUR);*/ 
    375386   if ( todebug == 1 ) printf("Out of WriteVariablelist_subloop_Def\n"); 
    376387} 
     
    394405void WriteHeadofSubroutineLoop() 
    395406{ 
    396    char ligne[LONGNOM]; 
     407   char ligne[LONG_C]; 
    397408   FILE * subloop; 
    398409 
     
    412423   /*                                                                         */ 
    413424   sprintf(ligne,")"); 
    414    tofich(subloop,ligne,1); 
     425   fprintf(subloop,ligne); 
    415426   /* if USE agrif_Uti l should be add                                        */ 
    416427   AddUseAgrifUtil_0(subloop); 
     
    434445/*                                                                            */ 
    435446/******************************************************************************/ 
    436 void closeandcallsubloopandincludeit_0(int suborfun, char endsub[LONGNOM]) 
    437 { 
    438    char ligne[LONGNOM]; 
     447void closeandcallsubloopandincludeit_0(int suborfun) 
     448{ 
     449   char ligne[LONG_C]; 
    439450 
    440451   if ( firstpass == 0 ) 
     
    468479      /* Close the parenthesis of the new subroutine called                   */ 
    469480      sprintf(ligne,")"); 
    470       tofich(fortranout,ligne,1); 
     481      fprintf(fortranout,ligne); 
    471482      /* We should close the original subroutine                              */ 
    472483      if ( suborfun == 3 ) sprintf(ligne,"\n      end program %s" 
     
    489500 
    490501 
    491 void closeandcallsubloop_contains_0(int suborfun, char endsub[LONGNOM]) 
    492 { 
    493    char ligne[LONGNOM]; 
     502void closeandcallsubloop_contains_0() 
     503{ 
     504   char ligne[LONG_C]; 
    494505 
    495506   if ( firstpass == 0 ) 
  • trunk/AGRIF/LIB/UtilAgrif.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    237237     listnomtmp=(listnom *)malloc(sizeof(listnom)); 
    238238     strcpy(listnomtmp->o_nom,sub); 
     239     Save_Length(sub,23); 
    239240     strcpy(listnomtmp->o_module,mod); 
     241     Save_Length(mod,24); 
    240242     listnomtmp->suiv = NULL; 
    241243     List_SubroutineWhereAgrifUsed  =  listnomtmp; 
     
    252254       listnomtmp=(listnom *)malloc(sizeof(listnom)); 
    253255       strcpy(listnomtmp->o_nom,sub); 
     256       Save_Length(sub,23); 
    254257       strcpy(listnomtmp->o_module,mod); 
     258       Save_Length(mod,24); 
    255259       listnomtmp->suiv = List_SubroutineWhereAgrifUsed; 
    256260       List_SubroutineWhereAgrifUsed  =  listnomtmp; 
     
    280284{ 
    281285  listnom *parcours; 
    282   listusemodule *newmodule; 
    283   int out; 
    284286 
    285287  if ( firstpass == 0 ) 
     
    578580void AgriffunctionModify_0(char *ident,int whichone) 
    579581{ 
    580    char toprint[LONGNOM]; 
     582   char toprint[LONG_C]; 
    581583 
    582584   if ( firstpass == 0 ) 
     
    606608      else if ( whichone == 3 ) /* Agrif_Rhox                                 */ 
    607609      { 
    608          sprintf(toprint,"REAL(Agrif_Curgrid %% spaceref(1))"); 
     610         sprintf(toprint,"REAL("); 
     611         if( retour77 == 0 ) strcat(toprint," & \n"); 
     612         else strcat(toprint,"\n     & "); 
     613         strcat(toprint,"Agrif_Curgrid % spaceref(1))"); 
    609614      } 
    610615      else if ( whichone == 4 ) /* Agrif_Parent_Rhox                          */ 
    611616      { 
    612          sprintf(toprint,"REAL(Agrif_Curgrid %% parent %% spaceref(1))"); 
     617         sprintf(toprint,"REAL("); 
     618         if( retour77 == 0 ) strcat(toprint," & \n"); 
     619         else strcat(toprint,"\n     & "); 
     620         strcat(toprint,"Agrif_Curgrid % parent % spaceref(1))"); 
    613621      } 
    614622      else if ( whichone == 5 ) /* Agrif_Rhox                                 */ 
    615623      { 
    616          sprintf(toprint,"Agrif_Curgrid %% spaceref(1)"); 
     624         sprintf(toprint,"Agrif_Curgrid"); 
     625         if( retour77 == 0 ) strcat(toprint," & \n"); 
     626         else strcat(toprint,"\n     & "); 
     627         strcat(toprint,"% spaceref(1)"); 
    617628      } 
    618629      else if ( whichone == 6 ) /* Agrif_Parent_Rhox                          */ 
    619630      { 
    620          sprintf(toprint,"Agrif_Curgrid %% parent %% spaceref(1)"); 
     631         sprintf(toprint,"Agrif_Curgrid"); 
     632         if( retour77 == 0 ) strcat(toprint," & \n"); 
     633         else strcat(toprint,"\n     & "); 
     634         strcat(toprint,"% parent % spaceref(1)"); 
    621635      } 
    622636      else if ( whichone == 7 ) /* Agrif_Rhoy                                 */ 
    623637      { 
    624          sprintf(toprint,"REAL(Agrif_Curgrid %% spaceref(2))"); 
     638         sprintf(toprint,"REAL(Agrif_Curgrid"); 
     639         if( retour77 == 0 ) strcat(toprint," & \n"); 
     640         else strcat(toprint,"\n     & "); 
     641         strcat(toprint,"% spaceref(2))"); 
    625642      } 
    626643      else if ( whichone == 8 ) /* Agrif_Parent_Rhoy                          */ 
    627644      { 
    628          sprintf(toprint,"REAL(Agrif_Curgrid %% parent %% spaceref(2))"); 
     645         sprintf(toprint,"REAL(Agrif_Curgrid"); 
     646         if( retour77 == 0 ) strcat(toprint," & \n"); 
     647         else strcat(toprint,"\n     & "); 
     648         strcat(toprint,"% parent % spaceref(2))"); 
    629649      } 
    630650      else if ( whichone == 9 ) /* Agrif_Rhoy                                 */ 
    631651      { 
    632          sprintf(toprint,"Agrif_Curgrid %% spaceref(2)"); 
     652         sprintf(toprint,"Agrif_Curgrid"); 
     653         if( retour77 == 0 ) strcat(toprint," & \n"); 
     654         else strcat(toprint,"\n     & "); 
     655         strcat(toprint,"% spaceref(2)"); 
    633656      } 
    634657      else if ( whichone == 10 ) /* Agrif_Parent_Rhoy                         */ 
    635658      { 
    636          sprintf(toprint,"Agrif_Curgrid %% parent %% spaceref(2)"); 
     659         sprintf(toprint,"Agrif_Curgrid"); 
     660         if( retour77 == 0 ) strcat(toprint," & \n"); 
     661         else strcat(toprint,"\n     & "); 
     662         strcat(toprint,"% parent % spaceref(2)"); 
    637663      } 
    638664      else if ( whichone == 11 ) /* Agrif_Rhoz                                */ 
    639665      { 
    640          sprintf(toprint,"REAL(Agrif_Curgrid %% spaceref(3))"); 
     666         sprintf(toprint,"REAL(Agrif_Curgrid"); 
     667         if( retour77 == 0 ) strcat(toprint," & \n"); 
     668         else strcat(toprint,"\n     & "); 
     669         strcat(toprint,"% spaceref(3))"); 
    641670      } 
    642671      else if ( whichone == 12 ) /* Agrif_Parent_Rhoz                         */ 
    643672      { 
    644          sprintf(toprint,"REAL(Agrif_Curgrid %% parent %% spaceref(3))"); 
     673         sprintf(toprint,"REAL(Agrif_Curgrid"); 
     674         if( retour77 == 0 ) strcat(toprint," & \n"); 
     675         else strcat(toprint,"\n     & "); 
     676         strcat(toprint,"% parent % spaceref(3))"); 
    645677      } 
    646678      else if ( whichone == 13 ) /* Agrif_Rhoz                                */ 
    647679      { 
    648          sprintf(toprint,"Agrif_Curgrid %% spaceref(3)"); 
     680         sprintf(toprint,"Agrif_Curgrid"); 
     681         if( retour77 == 0 ) strcat(toprint," & \n"); 
     682         else strcat(toprint,"\n     & "); 
     683         strcat(toprint,"% spaceref(3)"); 
    649684      } 
    650685      else if ( whichone == 14 ) /* Agrif_Parent_Rhoz                         */ 
    651686      { 
    652          sprintf(toprint,"Agrif_Curgrid %% parent %% spaceref(3)"); 
     687         sprintf(toprint,"Agrif_Curgrid"); 
     688         if( retour77 == 0 ) strcat(toprint," & \n"); 
     689         else strcat(toprint,"\n     & "); 
     690         strcat(toprint,"% parent % spaceref(3)"); 
    653691      } 
    654692      else if ( whichone == 15 ) /* Agrif_NearCommonBorderX                   */ 
    655693      { 
    656          sprintf(toprint,"Agrif_Curgrid %% NearRootBorder(1)"); 
     694         sprintf(toprint,"Agrif_Curgrid"); 
     695         if( retour77 == 0 ) strcat(toprint," & \n"); 
     696         else strcat(toprint,"\n     & "); 
     697         strcat(toprint,"% NearRootBorder(1)"); 
    657698      } 
    658699      else if ( whichone == 16 ) /* Agrif_NearCommonBorderY                   */ 
    659700      { 
    660          sprintf(toprint,"Agrif_Curgrid %% NearRootBorder(2)"); 
     701         sprintf(toprint,"Agrif_Curgrid"); 
     702         if( retour77 == 0 ) strcat(toprint," & \n"); 
     703         else strcat(toprint,"\n     & "); 
     704         strcat(toprint,"% NearRootBorder(2)"); 
    661705      } 
    662706      else if ( whichone == 17 ) /* Agrif_NearCommonBorderZ                   */ 
    663707      { 
    664          sprintf(toprint,"Agrif_Curgrid %% NearRootBorder(3)"); 
     708         sprintf(toprint,"Agrif_Curgrid"); 
     709         if( retour77 == 0 ) strcat(toprint," & \n"); 
     710         else strcat(toprint,"\n     & "); 
     711         strcat(toprint,"% NearRootBorder(3)"); 
    665712      } 
    666713      else if ( whichone == 18 ) /* Agrif_NearCommonBorderX                   */ 
    667714      { 
    668          sprintf(toprint,"Agrif_Curgrid %% DistantRootBorder(1)"); 
     715         sprintf(toprint,"Agrif_Curgrid"); 
     716         if( retour77 == 0 ) strcat(toprint," & \n"); 
     717         else strcat(toprint,"\n     & "); 
     718         strcat(toprint,"% DistantRootBorder(1)"); 
    669719      } 
    670720      else if ( whichone == 19 ) /* Agrif_NearCommonBorderY                   */ 
    671721      { 
    672          sprintf(toprint,"Agrif_Curgrid %% DistantRootBorder(2)"); 
     722         sprintf(toprint,"Agrif_Curgrid"); 
     723         if( retour77 == 0 ) strcat(toprint," & \n"); 
     724         else strcat(toprint,"\n     & "); 
     725         strcat(toprint,"% DistantRootBorder(2)"); 
    673726      } 
    674727      else if ( whichone == 20 ) /* Agrif_NearCommonBorderZ                   */ 
    675728      { 
    676          sprintf(toprint,"Agrif_Curgrid %% DistantRootBorder(3)"); 
     729         sprintf(toprint,"Agrif_Curgrid"); 
     730         if( retour77 == 0 ) strcat(toprint," & \n"); 
     731         else strcat(toprint,"\n     & "); 
     732         strcat(toprint,"% DistantRootBorder(3)"); 
    677733      } 
    678734      else if ( whichone == 21 ) /* Agrif_Get_parent_id                       */ 
    679735      { 
    680          sprintf(toprint,"Agrif_Curgrid %% parent %% grid_id"); 
     736         sprintf(toprint,"Agrif_Curgrid"); 
     737         if( retour77 == 0 ) strcat(toprint," & \n"); 
     738         else strcat(toprint,"\n     & "); 
     739         strcat(toprint,"% parent % grid_id"); 
    681740      } 
    682741      else if ( whichone == 22 ) /*  Agrif_Get_grid_id                        */ 
    683742      { 
    684          sprintf(toprint,"Agrif_Curgrid %% grid_id"); 
     743         sprintf(toprint,"Agrif_Curgrid"); 
     744         if( retour77 == 0 ) strcat(toprint," & \n"); 
     745         else strcat(toprint,"\n     & "); 
     746         strcat(toprint,"% grid_id"); 
    685747      } 
    686748      else if ( whichone == 23 ) /*  Agrif_Parent_Iz                          */ 
    687749      { 
    688          sprintf(toprint,"Agrif_Curgrid %% parent %% ix(3)"); 
     750         sprintf(toprint,"Agrif_Curgrid"); 
     751         if( retour77 == 0 ) strcat(toprint," & \n"); 
     752         else strcat(toprint,"\n     & "); 
     753         strcat(toprint,"% parent % ix(3)"); 
    689754      } 
    690755      else if ( whichone == 24 ) /*  Agrif_Parent_Iy                          */ 
    691756      { 
    692          sprintf(toprint,"Agrif_Curgrid %% parent %% ix(2)"); 
     757         sprintf(toprint,"Agrif_Curgrid"); 
     758         if( retour77 == 0 ) strcat(toprint," & \n"); 
     759         else strcat(toprint,"\n     & "); 
     760         strcat(toprint,"% parent % ix(2)"); 
    693761      } 
    694762      else if ( whichone == 25 ) /*  Agrif_Parent_Ix                          */ 
    695763      { 
    696          sprintf(toprint,"Agrif_Curgrid %% parent %% ix(1)"); 
     764         sprintf(toprint,"Agrif_Curgrid"); 
     765         if( retour77 == 0 ) strcat(toprint," & \n"); 
     766         else strcat(toprint,"\n     & "); 
     767         strcat(toprint,"% parent % ix(1)"); 
    697768      } 
    698769      else if ( whichone == 26 ) /* Agrif_Iz                                  */ 
    699770      { 
    700          sprintf(toprint,"Agrif_Curgrid %% ix(3)"); 
     771         sprintf(toprint,"Agrif_Curgrid"); 
     772         if( retour77 == 0 ) strcat(toprint," & \n"); 
     773         else strcat(toprint,"\n     & "); 
     774         strcat(toprint," % ix(3)"); 
    701775      } 
    702776      else if ( whichone == 27 ) /* Agrif_Iy                                  */ 
    703777      { 
    704          sprintf(toprint,"Agrif_Curgrid %% ix(2)"); 
     778         sprintf(toprint,"Agrif_Curgrid"); 
     779         if( retour77 == 0 ) strcat(toprint," & \n"); 
     780         else strcat(toprint,"\n     & "); 
     781         strcat(toprint,"% ix(2)"); 
    705782      } 
    706783      else if ( whichone == 28 ) /* Agrif_Ix                                  */ 
    707784      { 
    708          sprintf(toprint,"Agrif_Curgrid %% ix(1)"); 
     785         sprintf(toprint,"Agrif_Curgrid"); 
     786         if( retour77 == 0 ) strcat(toprint," & \n"); 
     787         else strcat(toprint,"\n     & "); 
     788         strcat(toprint,"% ix(1)"); 
    709789      } 
    710790      else if ( whichone == 29 ) /* Agrif_Nb_Fixed_Grids                      */ 
     
    714794      else if ( whichone == 30 ) /* AGRIF_Nb_Step                             */ 
    715795      { 
    716          sprintf(toprint,"Agrif_Curgrid %% ngridstep"); 
     796         sprintf(toprint,"Agrif_Curgrid"); 
     797         if( retour77 == 0 ) strcat(toprint," & \n"); 
     798         else strcat(toprint,"\n     & "); 
     799         strcat(toprint,"% ngridstep"); 
    717800      } 
    718801      /*                                                                      */ 
    719802      if ( whichone == 1 || whichone == 2 ) 
    720803      { 
     804         Save_Length(toprint,43); 
    721805         tofich(fortranout,toprint,2); 
    722806      } 
    723807      else 
    724808      { 
    725          if( retour77 == 0 ) fprintf(fortranout," & \n"); 
    726          else fprintf(fortranout,"\n     & "); 
     809/*         if( retour77 == 0 ) fprintf(fortranout," & \n"); 
     810         else fprintf(fortranout,"\n     & ");*/ 
     811         Save_Length(toprint,43); 
    727812         fprintf(fortranout,"%s",toprint); 
    728813      } 
  • trunk/AGRIF/LIB/UtilCharacter.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    5151/*                                                                            */ 
    5252/******************************************************************************/ 
    53 void FindAndChangeNameToTabvars(char name[LONGNOM],char toprint[LONGNOM], 
    54                                 listvar * listtosee, int whichone) 
     53void FindAndChangeNameToTabvars(char name[LONG_C],char toprint[LONG_4C], 
     54                                              listvar * listtosee, int whichone) 
    5555{ 
    5656   listvar *newvar; 
     
    6565         if ( !strcasecmp(newvar->var->v_nomvar,name) ) 
    6666         { 
    67             out = 1; 
    68             strcat(toprint,vargridcurgridtabvars(newvar->var,whichone)); 
     67            if ( LookingForVariableInListName( 
     68                             List_SubroutineArgument_Var,name) == 0 ) 
     69            { 
     70               out = 1; 
     71               strcat(toprint,vargridcurgridtabvars(newvar->var,whichone)); 
     72            } 
     73            else newvar=newvar->suiv; 
    6974         } 
    7075         else newvar=newvar->suiv; 
     
    7277      if ( out == 0 ) strcat(toprint,name); 
    7378   } 
     79   Save_Length(toprint,44); 
    7480} 
    7581 
     
    8793                                                                   int whichone) 
    8894{ 
    89    char toprinttmp[LONGNOM]; 
     95   char toprinttmp[LONG_4C]; 
    9096   int i; 
    9197   char chartmp[2]; 
     
    99105      if ( nom[i] == '+' ) 
    100106      { 
    101          FindAndChangeNameToTabvars(toprinttmp,toprintglob,listtoread,whichone); 
     107        FindAndChangeNameToTabvars(toprinttmp,toprintglob,listtoread,whichone); 
    102108         strcpy(toprinttmp,""); 
    103109         strcat(toprintglob,"+"); 
     
    156162   strcpy(toprinttmp,""); 
    157163 
     164   Save_Length(toprinttmp,44); 
     165   Save_Length(toprintglob,39); 
    158166   /*                                                                         */ 
    159167   return toprintglob; 
     
    289297listnom *DecomposeTheNameinlistnom(char *nom, listnom * listout) 
    290298{ 
    291    char toprinttmp[LONGNOM]; 
     299   char toprinttmp[LONG_4C]; 
    292300   int i; 
    293301   char chartmp[2]; 
     
    327335   } 
    328336   strcpy(toprinttmp,""); 
     337   Save_Length(toprinttmp,44); 
    329338 
    330339   return listout; 
     
    343352void DecomposeTheName(char *nom) 
    344353{ 
    345    char toprinttmp[LONGNOM]; 
     354   char toprinttmp[LONG_4C]; 
    346355   int i; 
    347356   char chartmp[2]; 
     
    378387      i=i+1; 
    379388   } 
     389   Save_Length(toprinttmp,44); 
    380390   if (strcasecmp(toprinttmp,"") && ( toprinttmp[0] >= 'A' ) ) 
    381391   { 
     
    404414   } 
    405415} 
     416 
     417int convert2int(char *name) 
     418{ 
     419   int i; 
     420   int caractere; 
     421   int value; 
     422   int value_tmp; 
     423   int longueur; 
     424 
     425   value = 0; 
     426 
     427   longueur = strlen(name) - 1; 
     428   for (i=0;i<=longueur;i++) 
     429   { 
     430      caractere=name[i]; 
     431      value_tmp = caractere -'0'; 
     432      if ( value_tmp > 9 ) return 0; 
     433           if ( longueur+1-i == 6 ) value = value + value_tmp *100000; 
     434      else if ( longueur+1-i == 5 ) value = value + value_tmp *10000; 
     435      else if ( longueur+1-i == 4 ) value = value + value_tmp *1000; 
     436      else if ( longueur+1-i == 3 ) value = value + value_tmp *100; 
     437      else if ( longueur+1-i == 2 ) value = value + value_tmp *10; 
     438      else if ( longueur+1-i == 1 ) value = value + value_tmp *1; 
     439   } 
     440   return value; 
     441} 
  • trunk/AGRIF/LIB/UtilFile.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    4646FILE * associate (char *filename) 
    4747{ 
    48   char filefich[LONGNOM]; 
     48  char filefich[LONG_C]; 
    4949  sprintf(filefich,"%s/%s",nomdir,filename); 
    5050  return fopen (filefich, "w"); 
     
    5959FILE * associateaplus (char *filename) 
    6060{ 
    61   char filefich[LONGNOM]; 
     61  char filefich[LONG_C]; 
    6262  sprintf(filefich,"%s/%s",nomdir,filename); 
    6363  return fopen (filefich, "a+"); 
  • trunk/AGRIF/LIB/UtilFortran.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    268268   newvar = (listnom *)malloc(sizeof(listnom)); 
    269269   strcpy(newvar->o_nom,nom); 
     270   Save_Length(nom,23); 
    270271   newvar->suiv = NULL; 
    271272 
     
    297298   listnom *parcours_nomprec; 
    298299   int out; 
    299    char ligne[LONGNOM]; 
    300  
    301    if ( firstpass == 0 ) 
    302    { 
     300   char ligne[LONG_C]; 
     301 
     302   if ( firstpass == 0 ) 
     303   { 
     304      parcours_nomprec = (listnom *)NULL; 
    303305      parcours_nom = List_NameOfModule; 
    304306      out = 0 ; 
     
    382384   listnom *parcours_nomprec; 
    383385   int out; 
    384    char ligne[LONGNOM]; 
    385  
    386    if ( firstpass == 0 ) 
    387    { 
     386   char ligne[LONG_C]; 
     387 
     388   if ( firstpass == 0 ) 
     389   { 
     390      parcours_nomprec = (listnom *)NULL; 
    388391      parcours_nom = List_NameOfModule; 
    389392      out = 0 ; 
     
    558561{ 
    559562   listvar *parcours; 
    560    int out; 
    561563 
    562564   if ( firstpass == 1 ) 
     
    590592         newvar = (listname *)malloc(sizeof(listname)); 
    591593         strcpy(newvar->n_name,nom); 
     594         Save_Length(nom,20); 
    592595         newvar->suiv = NULL; 
    593596         List_Pointer_Var = newvar; 
     
    611614              newvar = (listname *)malloc(sizeof(listname)); 
    612615              strcpy(newvar->n_name,nom); 
     616              Save_Length(nom,20); 
    613617              newvar->suiv = NULL; 
    614618              parcours->suiv = newvar; 
  • trunk/AGRIF/LIB/UtilListe.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    116116{ 
    117117   if (!strcasecmp(type,"character") && strcasecmp(CharacterSize,"") ) 
    118                             strcpy(curvar->v_dimchar,CharacterSize); 
     118   { 
     119      strcpy(curvar->v_dimchar,CharacterSize); 
     120      Save_Length(CharacterSize,5); 
     121   } 
    119122 
    120123  /* On donne la precision de la variable si elle a ete donnee                */ 
     
    123126  /*                                                                          */ 
    124127  strcpy(curvar->v_vallengspec,""); 
    125   if ( strcasecmp(vallengspec,"") ) strcpy(curvar->v_vallengspec,vallengspec); 
     128  if ( strcasecmp(vallengspec,"") ) 
     129  { 
     130     strcpy(curvar->v_vallengspec,vallengspec); 
     131     Save_Length(vallengspec,8); 
     132  } 
    126133 
    127134  strcpy(curvar->v_precision,""); 
    128   if ( strcasecmp(NamePrecision,"") ) strcpy(curvar->v_precision,NamePrecision); 
     135  if ( strcasecmp(NamePrecision,"") ) 
     136  { 
     137     strcpy(curvar->v_precision,NamePrecision); 
     138     Save_Length(NamePrecision,12); 
     139  } 
    129140  /* Si cette variable a ete declaree dans un module on met curvar->module=1  */ 
    130141  if ( inmoduledeclare == 1 || SaveDeclare == 1) 
     
    134145   /* Puis on donne le nom du module dans curvar->v_modulename                */ 
    135146   strcpy(curvar->v_modulename,curmodulename); 
     147   Save_Length(curmodulename,6); 
    136148   /* Si cette variable a ete initialisee                                     */ 
    137    if (InitialValueGiven == 1 ) strcpy(curvar->v_initialvalue,InitValue); 
     149   if (InitialValueGiven == 1 ) 
     150   { 
     151      strcpy(curvar->v_initialvalue,InitValue); 
     152      Save_Length(InitValue,14); 
     153   } 
    138154   /* Si cette variable est declaree en save                                  */ 
    139155   if (SaveDeclare == 1 ) curvar->v_save = 1; 
     
    141157   if (Allocatabledeclare == 1 ) curvar->v_allocatable=1; 
    142158   /* if INTENT spec has been given                                           */ 
    143    if ( strcasecmp(IntentSpec,"") ) strcpy(curvar->v_IntentSpec,IntentSpec); 
     159   if ( strcasecmp(IntentSpec,"") ) 
     160   { 
     161      strcpy(curvar->v_IntentSpec,IntentSpec); 
     162      Save_Length(IntentSpec,13); 
     163   } 
    144164} 
    145165 
     
    190210      tmpvar->v_pointedvar=parcours->var->v_pointedvar; 
    191211      strcpy(tmpvar->v_commoninfile,mainfile); 
     212      Save_Length(mainfile,10); 
    192213      strcpy(tmpvar->v_subroutinename,parcours->var->v_subroutinename); 
    193214      tmpvar->v_dimensiongiven=parcours->var->v_dimensiongiven; 
     
    277298      v=parcours_var->var; 
    278299      strcpy(v->v_dimchar,(lin->dim).last); 
     300      Save_Length((lin->dim).last,5); 
    279301      parcours_var=parcours_var->suiv; 
    280302   } 
     
    316338  variable *var; 
    317339  listdim *dims; 
    318   char ligne[LONGNOM]; 
    319   char listdimension[LONGNOM]; 
     340  char ligne[LONG_C]; 
     341  char listdimension[LONG_C]; 
    320342 
    321343   var=(variable *) malloc(sizeof(variable)); 
     
    324346   /*                                                                         */ 
    325347   strcpy(var->v_nomvar,nom); 
     348   Save_Length(nom,4); 
    326349   /*                                                                         */ 
    327350   strcpy(listdimension,""); 
    328351   strcpy(var->v_modulename,curmodulename); 
     352   Save_Length(curmodulename,6); 
    329353   strcpy(var->v_commoninfile,mainfile); 
     354   Save_Length(mainfile,10); 
    330355   strcpy(var->v_subroutinename,subroutinename); 
     356   Save_Length(subroutinename,11); 
    331357   /*                                                                         */ 
    332358   if ( strcasecmp(nameinttypename,"") ) 
    333                                  strcpy(var->v_nameinttypename,nameinttypename); 
     359   { 
     360      strcpy(var->v_nameinttypename,nameinttypename); 
     361      Save_Length(nameinttypename,9); 
     362   } 
    334363   if ( optionaldeclare     == 1 ) var->v_optionaldeclare = 1; 
    335364   if ( pointerdeclare      == 1 ) var->v_pointerdeclare = 1; 
     
    361390   } 
    362391   strcpy(var->v_readedlistdimension,listdimension); 
     392   Save_Length(listdimension,15); 
    363393   /*                                                                         */ 
    364394   var->v_nbdim=num_dims(d); 
     
    428458      v=newvar->var; 
    429459      strcpy(v->v_typevar,nom); 
     460      Save_Length(nom,3); 
    430461      newvar=newvar->suiv; 
    431462   } 
  • trunk/AGRIF/LIB/UtilNotGridDep.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    7474   newvar->var=(variable *)malloc(sizeof(variable)); 
    7575   strcpy(newvar->var->v_nomvar,name); 
     76   Save_Length(name,4); 
    7677   strcpy(newvar->var->v_commoninfile,mainfile); 
     78   Save_Length(mainfile,10); 
    7779   strcpy(newvar->var->v_subroutinename,subroutinename); 
     80   Save_Length(subroutinename,11); 
    7881   newvar->var->v_notgrid = 1 ; 
    7982   newvar->suiv = List_NotGridDepend_Var; 
  • trunk/AGRIF/LIB/WorkWithAllocatelist.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    5757         newvar = (listallocate *)malloc(sizeof(listallocate)); 
    5858         strcpy(newvar->a_nomvar,nom); 
     59         Save_Length(nom,25); 
    5960         strcpy(newvar->a_subroutine,subroutinename); 
     61         Save_Length(subroutinename,26); 
    6062         strcpy(newvar->a_module,nommodule); 
     63         Save_Length(nommodule,27); 
    6164         newvar->suiv = NULL; 
    6265         List_Allocate_Var = newvar; 
     
    8487              newvar = (listallocate *)malloc(sizeof(listallocate)); 
    8588              strcpy(newvar->a_nomvar,nom); 
     89              Save_Length(nom,25); 
    8690              strcpy(newvar->a_subroutine,subroutinename); 
     91              Save_Length(subroutinename,26); 
    8792              strcpy(newvar->a_module,nommodule); 
     93              Save_Length(nommodule,27); 
    8894              newvar->suiv = NULL; 
    8995              parcours->suiv = newvar; 
  • trunk/AGRIF/LIB/WorkWithParameterlist.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    4747void Add_GlobalParameter_Var_1(listvar *listin) 
    4848{ 
    49    listvar *parcours; 
    50  
    5149   if ( firstpass == 1 ) 
    5250   { 
  • trunk/AGRIF/LIB/WorkWithglobliste.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
  • trunk/AGRIF/LIB/WorkWithlistdatavariable.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    6161     if ( inmoduledeclare == 1 ) newvar->var->v_module=1; 
    6262     strcpy(newvar->var->v_nomvar,name); 
     63     Save_Length(name,4); 
    6364     strcpy(newvar->var->v_subroutinename,subroutinename); 
     65     Save_Length(subroutinename,11); 
    6466     strcpy(newvar->var->v_modulename,curmodulename); 
     67     Save_Length(curmodulename,6); 
    6568     strcpy(newvar->var->v_commoninfile,mainfile); 
     69     Save_Length(mainfile,10); 
    6670     strcpy(newvar->var->v_initialvalue,values); 
     71     Save_Length(values,14); 
    6772     newvar->suiv = NULL; 
    6873 
  • trunk/AGRIF/LIB/WorkWithlistmoduleinfile.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    3737#include <string.h> 
    3838#include "decl.h" 
     39 
     40void Save_Length(char *nom, int whichone) 
     41{ 
     42   if ( whichone == 1  && strlen(nom) > length_last ) 
     43   { 
     44      length_last               = strlen(nom); 
     45      if ( length_last > LONG_C ) 
     46      { 
     47         printf("WARNING 1 : The value of LONG_C - define in decl.h -\n"); 
     48         printf("             should be upgrated to %d\n",length_last+100); 
     49      } 
     50   } 
     51   if ( whichone == 2  && strlen(nom) > length_first ) 
     52   { 
     53      length_first              = strlen(nom); 
     54      if ( length_first > LONG_C ) 
     55      { 
     56         printf("WARNING 2 : The value of LONG_C - define in decl.h -\n"); 
     57         printf("             should be upgrated to %d\n",length_first+100); 
     58      } 
     59   } 
     60   if ( whichone == 3  && strlen(nom) > length_v_typevar ) 
     61   { 
     62      length_v_typevar          = strlen(nom); 
     63      if ( length_v_typevar > LONG_C ) 
     64      { 
     65         printf("WARNING 3 : The value of LONG_C - define in decl.h -\n"); 
     66         printf("             should be upgrated to %d\n",length_v_typevar+100); 
     67      } 
     68   } 
     69   if ( whichone == 4  && strlen(nom) > length_v_nomvar ) 
     70   { 
     71      length_v_nomvar           = strlen(nom); 
     72      if ( length_v_nomvar > LONG_C ) 
     73      { 
     74         printf("WARNING 4 : The value of LONG_C - define in decl.h -\n"); 
     75         printf("             should be upgrated to %d\n",length_v_nomvar+100); 
     76      } 
     77   } 
     78   if ( whichone == 5  && strlen(nom) > length_v_dimchar ) 
     79   { 
     80      length_v_dimchar          = strlen(nom); 
     81      if ( length_v_dimchar > LONG_C ) 
     82      { 
     83         printf("WARNING 5 : The value of LONG_C - define in decl.h -\n"); 
     84         printf("             should be upgrated to %d\n", 
     85                                                          length_v_dimchar+100); 
     86      } 
     87   } 
     88   if ( whichone == 6  && strlen(nom) > length_v_modulename ) 
     89   { 
     90      length_v_modulename       = strlen(nom); 
     91      if ( length_v_modulename > LONG_C ) 
     92      { 
     93         printf("WARNING 6 : The value of LONG_C - define in decl.h -\n"); 
     94         printf("             should be upgrated to %d\n", 
     95                                                       length_v_modulename+100); 
     96      } 
     97   } 
     98   if ( whichone == 7  && strlen(nom) > length_v_commonname ) 
     99   { 
     100      length_v_commonname       = strlen(nom); 
     101      if ( length_v_commonname > LONG_C ) 
     102      { 
     103         printf("WARNING 7 : The value of LONG_C - define in decl.h -\n"); 
     104         printf("             should be upgrated to %d\n", 
     105                                                       length_v_commonname+100); 
     106      } 
     107   } 
     108   if ( whichone == 8  && strlen(nom) > length_v_vallengspec ) 
     109   { 
     110      length_v_vallengspec      = strlen(nom); 
     111      if ( length_v_vallengspec > LONG_C ) 
     112      { 
     113         printf("WARNING 8 : The value of LONG_C - define in decl.h -\n"); 
     114         printf("             should be upgrated to %d\n", 
     115                                                      length_v_vallengspec+100); 
     116      } 
     117   } 
     118   if ( whichone == 9  && strlen(nom) > length_v_nameinttypename ) 
     119   { 
     120      length_v_nameinttypename  = strlen(nom); 
     121      if ( length_v_nameinttypename > LONG_C ) 
     122      { 
     123         printf("WARNING 9 : The value of LONG_C - define in decl.h -\n"); 
     124         printf("             should be upgrated to %d\n", 
     125                                                  length_v_nameinttypename+100); 
     126      } 
     127   } 
     128   if ( whichone == 10 && strlen(nom) > length_v_commoninfile ) 
     129   { 
     130      length_v_commoninfile     = strlen(nom); 
     131      if ( length_v_commoninfile > LONG_C ) 
     132      { 
     133         printf("WARNING 10 : The value of LONG_C - define in decl.h -\n"); 
     134         printf("             should be upgrated to %d\n", 
     135                                                     length_v_commoninfile+100); 
     136      } 
     137   } 
     138   if ( whichone == 11 && strlen(nom) > length_v_subroutinename ) 
     139   { 
     140      length_v_subroutinename   = strlen(nom); 
     141      if ( length_v_subroutinename > LONG_C ) 
     142      { 
     143         printf("WARNING 11 : The value of LONG_C - define in decl.h -\n"); 
     144         printf("             should be upgrated to %d\n", 
     145                                                   length_v_subroutinename+100); 
     146      } 
     147   } 
     148   if ( whichone == 12 && strlen(nom) > length_v_precision ) 
     149   { 
     150      length_v_precision        = strlen(nom); 
     151      if ( length_v_precision > LONG_C ) 
     152      { 
     153         printf("WARNING 12 : The value of LONG_C - define in decl.h -\n"); 
     154         printf("             should be upgrated to %d\n", 
     155                                                        length_v_precision+100); 
     156      } 
     157   } 
     158   if ( whichone == 13 && strlen(nom) > length_v_IntentSpec ) 
     159   { 
     160      length_v_IntentSpec       = strlen(nom); 
     161      if ( length_v_IntentSpec > LONG_C ) 
     162      { 
     163         printf("WARNING 13 : The value of LONG_C - define in decl.h -\n"); 
     164         printf("             should be upgrated to %d\n", 
     165                                                       length_v_IntentSpec+100); 
     166      } 
     167   } 
     168   if ( whichone == 14 && strlen(nom) > length_v_initialvalue ) 
     169   { 
     170      length_v_initialvalue     = strlen(nom); 
     171      if ( length_v_initialvalue > LONG_4C ) 
     172      { 
     173         printf("WARNING 14 : The value of LONG_4C - define in decl.h -\n"); 
     174         printf("             should be upgrated to %d\n", 
     175                                                     length_v_initialvalue+100); 
     176      } 
     177   } 
     178   if ( whichone == 15 && strlen(nom) > length_v_readedlistdimension ) 
     179   { 
     180      length_v_readedlistdimension = strlen(nom); 
     181      if ( length_v_readedlistdimension > LONG_C ) 
     182      { 
     183         printf("WARNING 15 : The value of LONG_C - define in decl.h -\n"); 
     184         printf("             should be upgrated to %d\n", 
     185                                              length_v_readedlistdimension+100); 
     186      } 
     187   } 
     188   if ( whichone == 16 && strlen(nom) > length_u_usemodule ) 
     189   { 
     190      length_u_usemodule        = strlen(nom); 
     191      if ( length_u_usemodule > LONG_C ) 
     192      { 
     193         printf("WARNING 16 : The value of LONG_C - define in decl.h -\n"); 
     194         printf("             should be upgrated to %d\n", 
     195                                                        length_u_usemodule+100); 
     196      } 
     197   } 
     198   if ( whichone == 17 && strlen(nom) > length_u_charusemodule ) 
     199   { 
     200      length_u_charusemodule    = strlen(nom); 
     201      if ( length_u_charusemodule > LONG_C ) 
     202      { 
     203         printf("WARNING 17 : The value of LONG_C - define in decl.h -\n"); 
     204         printf("             should be upgrated to %d\n", 
     205                                                    length_u_charusemodule+100); 
     206      } 
     207   } 
     208   if ( whichone == 18 && strlen(nom) > length_u_cursubroutine ) 
     209   { 
     210      length_u_cursubroutine    = strlen(nom); 
     211      if ( length_u_cursubroutine > LONG_C ) 
     212      { 
     213         printf("WARNING 18 : The value of LONG_C - define in decl.h -\n"); 
     214         printf("             should be upgrated to %d\n", 
     215                                                    length_u_cursubroutine+100); 
     216      } 
     217   } 
     218   if ( whichone == 19 && strlen(nom) > length_u_modulename ) 
     219   { 
     220      length_u_modulename       = strlen(nom); 
     221      if ( length_u_modulename > LONG_C ) 
     222      { 
     223         printf("WARNING 19 : The value of LONG_C - define in decl.h -\n"); 
     224         printf("             should be upgrated to %d\n", 
     225                                                       length_u_modulename+100); 
     226      } 
     227   } 
     228   if ( whichone == 20 && strlen(nom) > length_n_name ) 
     229   { 
     230      length_n_name             = strlen(nom); 
     231      if ( length_n_name > LONG_C ) 
     232      { 
     233         printf("WARNING 20 : The value of LONG_C - define in decl.h -\n"); 
     234         printf("             should be upgrated to %d\n",length_n_name+100); 
     235      } 
     236   } 
     237   if ( whichone == 21 && strlen(nom) > length_c_namevar ) 
     238   { 
     239      length_c_namevar          = strlen(nom); 
     240      if ( length_c_namevar > LONG_C ) 
     241      { 
     242         printf("WARNING 21 : The value of LONG_C - define in decl.h -\n"); 
     243         printf("             should be upgrated to %d\n",length_c_namevar+100); 
     244      } 
     245   } 
     246   if ( whichone == 22 && strlen(nom) > length_c_namepointedvar ) 
     247   { 
     248      length_c_namepointedvar   = strlen(nom); 
     249      if ( length_c_namepointedvar > LONG_C ) 
     250      { 
     251         printf("WARNING 22 : The value of LONG_C - define in decl.h -\n"); 
     252         printf("             should be upgrated to %d\n", 
     253                                                   length_c_namepointedvar+100); 
     254      } 
     255   } 
     256   if ( whichone == 23 && strlen(nom) > length_o_nom ) 
     257   { 
     258      length_o_nom              = strlen(nom); 
     259      if ( length_o_nom > LONG_C ) 
     260      { 
     261         printf("WARNING 23 : The value of LONG_C - define in decl.h -\n"); 
     262         printf("             should be upgrated to %d\n",length_o_nom+100); 
     263      } 
     264   } 
     265   if ( whichone == 24 && strlen(nom) > length_o_module ) 
     266   { 
     267      length_o_module           = strlen(nom); 
     268      if ( length_o_module > LONG_C ) 
     269      { 
     270         printf("WARNING 24 : The value of LONG_C - define in decl.h -\n"); 
     271         printf("             should be upgrated to %d\n",length_o_module+100); 
     272      } 
     273   } 
     274   if ( whichone == 25 && strlen(nom) > length_a_nomvar ) 
     275   { 
     276      length_a_nomvar           = strlen(nom); 
     277      if ( length_a_nomvar > LONG_C ) 
     278      { 
     279         printf("WARNING 25 : The value of LONG_C - define in decl.h -\n"); 
     280         printf("             should be upgrated to %d\n",length_a_nomvar+100); 
     281      } 
     282   } 
     283   if ( whichone == 26 && strlen(nom) > length_a_subroutine ) 
     284   { 
     285      length_a_subroutine       = strlen(nom); 
     286      if ( length_a_subroutine > LONG_C ) 
     287      { 
     288         printf("WARNING 26 : The value of LONG_C - define in decl.h -\n"); 
     289         printf("             should be upgrated to %d\n", 
     290                                                       length_a_subroutine+100); 
     291      } 
     292   } 
     293   if ( whichone == 27 && strlen(nom) > length_a_module ) 
     294   { 
     295      length_a_module           = strlen(nom); 
     296      if ( length_a_module > LONG_C ) 
     297      { 
     298         printf("WARNING 27 : The value of LONG_C - define in decl.h -\n"); 
     299         printf("             should be upgrated to %d\n",length_a_module+100); 
     300      } 
     301   } 
     302   if ( whichone == 28 && strlen(nom) > length_t_usemodule ) 
     303   { 
     304      length_t_usemodule        = strlen(nom); 
     305      if ( length_t_usemodule > LONG_C ) 
     306      { 
     307         printf("WARNING 28 : The value of LONG_C - define in decl.h -\n"); 
     308         printf("             should be upgrated to %d\n", 
     309                                                        length_t_usemodule+100); 
     310      } 
     311   } 
     312   if ( whichone == 29 && strlen(nom) > length_t_cursubroutine ) 
     313   { 
     314      length_t_cursubroutine    = strlen(nom); 
     315      if ( length_t_cursubroutine > LONG_C ) 
     316      { 
     317         printf("WARNING 29 : The value of LONG_C - define in decl.h -\n"); 
     318         printf("             should be upgrated to %d\n", 
     319                                                    length_t_cursubroutine+100); 
     320      } 
     321   } 
     322   if ( whichone == 30 && strlen(nom) > length_curfilename ) 
     323   { 
     324      length_curfilename        = strlen(nom); 
     325      if (length_curfilename  > LONG_C ) 
     326      { 
     327         printf("WARNING 30 : The value of LONG_C - define in decl.h -\n"); 
     328         printf("             should be upgrated to %d\n", 
     329                                                        length_curfilename+100); 
     330      } 
     331   } 
     332   if ( whichone == 31 && strlen(nom) > length_nomfileoutput ) 
     333   { 
     334      length_nomfileoutput      = strlen(nom); 
     335      if ( length_nomfileoutput > LONG_C ) 
     336      { 
     337         printf("WARNING 31 : The value of LONG_C - define in decl.h -\n"); 
     338         printf("             should be upgrated to %d\n", 
     339                                                      length_nomfileoutput+100); 
     340      } 
     341   } 
     342   if ( whichone == 32 && strlen(nom) > length_motparse ) 
     343   { 
     344      length_motparse           = strlen(nom); 
     345      if ( length_motparse > LONG_4C ) 
     346      { 
     347         printf("WARNING 32 : The value of LONG_4C - define in decl.h -\n"); 
     348         printf("             should be upgrated to %d\n",length_motparse+100); 
     349      } 
     350   } 
     351   if ( whichone == 33 && strlen(nom) > length_mainfile ) 
     352   { 
     353      length_mainfile           = strlen(nom); 
     354      if ( length_mainfile > LONG_C ) 
     355      { 
     356         printf("WARNING 33 : The value of LONG_C - define in decl.h -\n"); 
     357         printf("             should be upgrated to %d\n",length_mainfile+100); 
     358      } 
     359   } 
     360   if ( whichone == 34 && strlen(nom) > length_nomdir ) 
     361   { 
     362      length_nomdir             = strlen(nom); 
     363      if ( length_nomdir > LONG_C ) 
     364      { 
     365         printf("WARNING 34 : The value of LONG_C - define in decl.h -\n"); 
     366         printf("             should be upgrated to %d\n",length_nomdir+100); 
     367      } 
     368   } 
     369   if ( whichone == 35 && strlen(nom) > length_commondirout ) 
     370   { 
     371      length_commondirout       = strlen(nom); 
     372      if ( length_commondirout > LONG_C ) 
     373      { 
     374         printf("WARNING 35 : The value of LONG_C - define in decl.h -\n"); 
     375         printf("             should be upgrated to %d\n", 
     376                                                       length_commondirout+100); 
     377      } 
     378   } 
     379   if ( whichone == 36 && strlen(nom) > length_commondirin ) 
     380   { 
     381      length_commondirin        = strlen(nom); 
     382      if ( length_commondirin > LONG_C ) 
     383      { 
     384         printf("WARNING 36 : The value of LONG_C - define in decl.h -\n"); 
     385         printf("             should be upgrated to %d\n", 
     386                                                        length_commondirin+100); 
     387      } 
     388   } 
     389   if ( whichone == 37 && strlen(nom) > length_filetoparse ) 
     390   { 
     391      length_filetoparse        = strlen(nom); 
     392      if ( length_filetoparse > LONG_C ) 
     393      { 
     394         printf("WARNING 37 : The value of LONG_C - define in decl.h -\n"); 
     395         printf("             should be upgrated to %d\n", 
     396                                                        length_filetoparse+100); 
     397      } 
     398   } 
     399   if ( whichone == 38 && strlen(nom) > length_curbuf ) 
     400   { 
     401      length_curbuf             = strlen(nom); 
     402      if ( length_curbuf > LONG_40M ) 
     403      { 
     404         printf("WARNING 38 : The value of LONG_40M - define in decl.h -\n"); 
     405         printf("             should be upgrated to %d\n",length_curbuf+100); 
     406      } 
     407   } 
     408   if ( whichone == 39 && strlen(nom) > length_toprintglob ) 
     409   { 
     410      length_toprintglob        = strlen(nom); 
     411      if ( length_toprintglob > LONG_4C ) 
     412      { 
     413         printf("WARNING 39 : The value of LONG_4C - define in decl.h -\n"); 
     414         printf("             should be upgrated to %d\n", 
     415                                                        length_toprintglob+100); 
     416      } 
     417   } 
     418   if ( whichone == 40 && strlen(nom) > length_tmpvargridname ) 
     419   { 
     420      length_tmpvargridname     = strlen(nom); 
     421      if ( length_tmpvargridname > LONG_4C ) 
     422      { 
     423         printf("WARNING 40 : The value of LONG_4C - define in decl.h -\n"); 
     424         printf("             should be upgrated to %d\n", 
     425                                                     length_tmpvargridname+100); 
     426      } 
     427   } 
     428   if ( whichone == 41 && strlen(nom) > length_ligne_Subloop ) 
     429   { 
     430       length_ligne_Subloop    = strlen(nom); 
     431      if ( length_ligne_Subloop > LONG_40M ) 
     432      { 
     433         printf("WARNING 41 : The value of LONG_40M - define in decl.h -\n"); 
     434         printf("             should be upgrated to %d\n", 
     435                                                      length_ligne_Subloop+100); 
     436      } 
     437   } 
     438   if ( whichone == 42 && strlen(nom) > length_lvargridname_toamr ) 
     439   { 
     440      length_lvargridname_toamr     = strlen(nom); 
     441      if ( length_lvargridname_toamr > LONG_4C ) 
     442      { 
     443         printf("WARNING 42 : The value of LONG_4C - define in decl.h -\n"); 
     444         printf("             should be upgrated to %d\n", 
     445                                                 length_lvargridname_toamr+100); 
     446      } 
     447   } 
     448   if ( whichone == 43 && strlen(nom) > length_toprint_utilagrif ) 
     449   { 
     450      length_toprint_utilagrif     = strlen(nom); 
     451      if ( length_toprint_utilagrif > LONG_C ) 
     452      { 
     453         printf("WARNING 43 : The value of LONG_C - define in decl.h -\n"); 
     454         printf("             should be upgrated to %d\n", 
     455                                                  length_toprint_utilagrif+100); 
     456      } 
     457   } 
     458   if ( whichone == 44 && strlen(nom) > length_toprinttmp_utilchar ) 
     459   { 
     460      length_toprinttmp_utilchar     = strlen(nom); 
     461      if ( length_toprinttmp_utilchar > LONG_4C) 
     462      { 
     463         printf("WARNING 44 : The value of LONG_4C - define in decl.h -\n"); 
     464         printf("             should be upgrated to %d\n", 
     465                                                length_toprinttmp_utilchar+100); 
     466      } 
     467   } 
     468   if ( whichone == 45 && strlen(nom) > length_ligne_writedecl ) 
     469   { 
     470      length_ligne_writedecl     = strlen(nom); 
     471      if ( length_ligne_writedecl > LONG_4C ) 
     472      { 
     473         printf("WARNING 45 : The value of LONG_4C - define in decl.h -\n"); 
     474         printf("             should be upgrated to %d\n", 
     475                                                    length_ligne_writedecl+100); 
     476      } 
     477   } 
     478   if ( whichone == 46 && strlen(nom) > length_newname_toamr ) 
     479   { 
     480      length_newname_toamr    = strlen(nom); 
     481      if ( length_newname_toamr > LONG_4C ) 
     482      { 
     483         printf("WARNING 46 : The value of LONG_4C - define in decl.h -\n"); 
     484         printf("             should be upgrated to %d\n", 
     485                                                      length_newname_toamr+100); 
     486      } 
     487   } 
     488   if ( whichone == 47 && strlen(nom) > length_newname_writedecl ) 
     489   { 
     490      length_newname_writedecl    = strlen(nom); 
     491      if ( length_newname_writedecl > LONG_4C ) 
     492      { 
     493         printf("WARNING 47 : The value of LONG_4C - define in decl.h -\n"); 
     494         printf("             should be upgrated to %d\n", 
     495                                                 length_newname_writedecl +100); 
     496      } 
     497   } 
     498   if ( whichone == 48 && strlen(nom) > length_ligne_toamr ) 
     499   { 
     500      length_ligne_toamr    = strlen(nom); 
     501      if ( length_ligne_toamr > LONGNOM ) 
     502      { 
     503         printf("WARNING 48 : The value of LONGNOM - define in decl.h -\n"); 
     504         printf("             should be upgrated to %d\n", 
     505                                                       length_ligne_toamr +100); 
     506      } 
     507   } 
     508   if ( whichone == 49 && strlen(nom) > length_tmpligne_writedecl ) 
     509   { 
     510      length_tmpligne_writedecl     = strlen(nom); 
     511      if ( length_tmpligne_writedecl > LONG_4C ) 
     512      { 
     513         printf("WARNING 49 : The value of LONG_4C - define in decl.h -\n"); 
     514         printf("             should be upgrated to %d\n", 
     515                                                 length_tmpligne_writedecl+100); 
     516      } 
     517   } 
     518} 
     519 
     520void Save_Length_int(int val, int whichone) 
     521{ 
     522   if ( whichone == 1 && val > value_char_size ) 
     523                               value_char_size                            = val; 
     524   if ( whichone == 2 && val > value_char_size1 ) 
     525                               value_char_size1                           = val; 
     526   if ( whichone == 3 && val > value_char_size2 ) 
     527                               value_char_size2                           = val; 
     528   if ( whichone == 4 && val > value_char_size3 ) 
     529                               value_char_size3                           = val; 
     530} 
  • trunk/AGRIF/LIB/WorkWithlistofmodulebysubroutine.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    155155     newmodule =(listusemodule *)malloc(sizeof(listusemodule)); 
    156156     strcpy(newmodule->u_usemodule,name); 
     157     Save_Length(name,16); 
    157158     strcpy(newmodule->u_charusemodule,charusemodule); 
     159     Save_Length(charusemodule,17); 
    158160     strcpy(newmodule->u_modulename,curmodulename); 
     161     Save_Length(curmodulename,19); 
    159162     strcpy(newmodule->u_cursubroutine,subroutinename); 
     163     Save_Length(subroutinename,18); 
    160164     newmodule->u_firstuse = 1 ; 
    161165     newmodule->suiv = NULL; 
     
    224228     newmodule =(listusemodule *)malloc(sizeof(listusemodule)); 
    225229     strcpy(newmodule->u_usemodule,name); 
     230     Save_Length(name,16); 
    226231     strcpy(newmodule->u_charusemodule,charusemodule); 
     232     Save_Length(charusemodule,17); 
    227233     strcpy(newmodule->u_cursubroutine,subroutinename); 
     234     Save_Length(subroutinename,18); 
    228235     newmodule->u_firstuse = 1 ; 
    229236     newmodule->suiv = NULL; 
  • trunk/AGRIF/LIB/WorkWithlistvarindoloop.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    6666      newvar->suiv = NULL; 
    6767      strcpy(newvar->var->v_nomvar,ident); 
     68      Save_Length(ident,4); 
    6869      strcpy(newvar->var->v_modulename,curmodulename); 
     70      Save_Length(curmodulename,6); 
    6971      strcpy(newvar->var->v_commoninfile,mainfile); 
     72      Save_Length(mainfile,10); 
    7073      strcpy(newvar->var->v_subroutinename,subroutinename); 
     74      Save_Length(subroutinename,11); 
    7175      newvar->var->v_pointedvar=pointedvar; 
    7276      List_UsedInSubroutine_Var = newvar ; 
     
    9296         /*                                                                   */ 
    9397         strcpy(newvar->var->v_nomvar,ident); 
     98         Save_Length(ident,4); 
    9499         strcpy(newvar->var->v_commoninfile,mainfile); 
     100         Save_Length(mainfile,10); 
    95101         strcpy(newvar->var->v_modulename,curmodulename); 
     102         Save_Length(curmodulename,6); 
    96103         strcpy(newvar->var->v_subroutinename,subroutinename); 
     104         Save_Length(subroutinename,11); 
    97105         newvar->var->v_pointedvar=pointedvar; 
    98106         newvar->suiv = List_UsedInSubroutine_Var; 
     
    126134      newvar->suiv = NULL; 
    127135      strcpy(newvar->var->v_nomvar,name); 
     136      Save_Length(name,4); 
    128137      strcpy(newvar->var->v_modulename,curmodulename); 
     138      Save_Length(curmodulename,6); 
    129139      strcpy(newvar->var->v_commoninfile,mainfile); 
     140      Save_Length(mainfile,10); 
    130141      strcpy(newvar->var->v_subroutinename,subroutinename); 
     142      Save_Length(subroutinename,11); 
    131143      newvar->var->v_pointedvar=pointedvar; 
    132144      List_UsedInSubroutine_Var = newvar ; 
     
    169181         /*                                                                   */ 
    170182         strcpy(newvar->var->v_nomvar,name); 
     183         Save_Length(name,4); 
    171184         strcpy(newvar->var->v_modulename,curmodulename); 
     185         Save_Length(curmodulename,6); 
    172186         strcpy(newvar->var->v_commoninfile,mainfile); 
     187         Save_Length(mainfile,10); 
    173188         strcpy(newvar->var->v_subroutinename,subroutinename); 
     189         Save_Length(subroutinename,11); 
    174190         newvar->var->v_pointedvar=pointedvar; 
    175191         /* we should find this new variable to know the tabvars indice       */ 
     
    390406   int out; 
    391407 
     408   parcoursprec = (listvar *)NULL; 
    392409   parcours = list_to_modify; 
    393410   while( parcours ) 
     
    453470   listvar *parcours; 
    454471   listvar *newvar; 
    455    listvar *parcours1; 
    456    char ligne[LONGNOM]; 
    457    int out; 
     472   char ligne[LONG_C]; 
    458473 
    459474   parcours = List_Save_Var; 
     
    475490         Add_NameOfCommon_1(ligne); 
    476491         strcpy(newvar->var->v_commonname,ligne); 
     492         Save_Length(ligne,7); 
    477493         List_Common_Var = AddListvarToListvar(newvar,List_Common_Var,1); 
    478494      } 
     
    751767} 
    752768 
     769int LookingForVariableInListName(listvar *listin,char *name) 
     770{ 
     771   listvar *parcours1; 
     772   int out; 
     773 
     774   parcours1 = listin; 
     775   out = 0 ; 
     776   while ( parcours1 && out == 0 ) 
     777   { 
     778      if ( !strcasecmp(name,parcours1->var->v_nomvar) && 
     779           ( !strcasecmp(subroutinename,parcours1->var->v_subroutinename) || 
     780             !strcasecmp(subroutinename,"") ) 
     781         ) out = 1 ; 
     782      else parcours1 = parcours1 -> suiv; 
     783   } 
     784 
     785   return out; 
     786} 
     787 
    753788int LookingForVariableInListGlob(listvar *listin,variable *var) 
    754789{ 
     
    809844   int remove; 
    810845 
     846   parcoursprec = (listvar *)NULL; 
    811847   parcours = List_UsedInSubroutine_Var; 
    812848   while ( parcours ) 
     
    865901 
    866902 
     903void Clean_List_ModuleUsed_Var() 
     904{ 
     905   listvar *parcours; 
     906   listvar *parcours1; 
     907   listvar *parcoursprec; 
     908   int remove; 
     909 
     910   parcoursprec = (listvar *)NULL; 
     911   parcours = List_ModuleUsed_Var; 
     912   while ( parcours ) 
     913   { 
     914      /*                                                                      */ 
     915      parcours1 = List_GlobalParameter_Var; 
     916      remove = 0 ; 
     917      while ( parcours1 && remove == 0 ) 
     918      { 
     919         if ( !strcasecmp(parcours->var->v_nomvar,parcours1->var->v_nomvar) 
     920            ) remove = 1 ; 
     921         else parcours1 = parcours1 -> suiv; 
     922      } 
     923      /************************************************************************/ 
     924      /*                         Remove                                       */ 
     925      /************************************************************************/ 
     926      if ( remove == 1 ) 
     927      { 
     928         if ( parcours == List_ModuleUsed_Var ) 
     929         { 
     930           List_ModuleUsed_Var = List_ModuleUsed_Var -> suiv; 
     931           parcours = List_ModuleUsed_Var; 
     932         } 
     933         else 
     934         { 
     935            parcoursprec->suiv = parcours->suiv; 
     936            parcours = parcoursprec -> suiv ; 
     937         } 
     938      } 
     939      else 
     940      { 
     941         parcoursprec = parcours; 
     942         parcours = parcours -> suiv ; 
     943      } 
     944   } 
     945 
     946} 
     947 
    867948void Clean_List_SubroutineDeclaration_Var() 
    868949{ 
     
    872953   int out ; 
    873954 
     955   parcoursprec = (listvar *)NULL; 
    874956   parcours = List_SubroutineDeclaration_Var; 
    875957   while ( parcours ) 
     
    9231005} 
    9241006 
     1007void Clean_List_Global_Var() 
     1008{ 
     1009   listvar *parcours; 
     1010   listvar *parcours2; 
     1011   listvar *parcoursprec; 
     1012   listvar *parcours2prec; 
     1013 
     1014   parcoursprec = (listvar *)NULL; 
     1015   parcours2prec = (listvar *)NULL; 
     1016   parcours = List_Global_Var; 
     1017   while ( parcours ) 
     1018   { 
     1019      if ( parcours->var->v_VariableIsParameter == 1 ) 
     1020      { 
     1021         /* remove                                                            */ 
     1022         if ( parcours == List_Global_Var ) 
     1023         { 
     1024            List_Global_Var = List_Global_Var->suiv; 
     1025            free(parcours); 
     1026            parcours = List_Global_Var; 
     1027         } 
     1028         else 
     1029         { 
     1030            parcoursprec->suiv = parcours->suiv; 
     1031            free(parcours); 
     1032            parcours = parcoursprec->suiv; 
     1033         } 
     1034      } 
     1035      else 
     1036      { 
     1037         parcoursprec = parcours; 
     1038         parcours = parcours->suiv; 
     1039      } 
     1040   } 
     1041   /* looking for sevral declaration of the same variable                     */ 
     1042   parcours = List_Global_Var; 
     1043   while ( parcours ) 
     1044   { 
     1045      parcours2prec = parcours; 
     1046      parcours2 = parcours->suiv; 
     1047      while ( parcours2 ) 
     1048      { 
     1049         if ( !strcasecmp(parcours->var->v_nomvar, 
     1050                         parcours2->var->v_nomvar)     && 
     1051              !strcasecmp(parcours->var->v_modulename, 
     1052                         parcours2->var->v_modulename) ) 
     1053         { 
     1054            CopyRecord(parcours->var,parcours2->var); 
     1055            /* remove var from the parcours2                                  */ 
     1056            parcours2prec ->suiv = parcours2->suiv; 
     1057            free(parcours2); 
     1058            parcours2 = parcours2prec ->suiv; 
     1059         } 
     1060         else 
     1061         { 
     1062            parcours2prec = parcours2; 
     1063            parcours2 = parcours2->suiv; 
     1064         } 
     1065      } 
     1066      parcours = parcours->suiv; 
     1067   } 
     1068} 
    9251069/******************************************************************************/ 
    9261070/*                             ListClean                                      */ 
     
    9321076   listvar *newvar; 
    9331077 
    934  
     1078   Clean_List_ModuleUsed_Var(); 
    9351079   Clean_List_UsedInSubroutine_Var(); 
    9361080   Clean_List_SubroutineDeclaration_Var(); 
    937  
    9381081 
    9391082   newvar = (listvar *)NULL; 
     
    9781121/*   newvar = List_Common_Var;*/ 
    9791122/*   newvar = List_UsedInSubroutine_Var;*/ 
    980    while(newvar) 
    981    { 
    982       printf("----- %s --- %s ---%s---\n",newvar->var->v_nomvar, 
    983          newvar->var->v_commonname,newvar->var->v_readedlistdimension 
    984       ); 
    985       newvar = newvar -> suiv; 
     1123   while ( newvar ) 
     1124   { 
     1125      printf("++++ %s %d %s %s %s\n", 
     1126      newvar->var->v_nomvar, 
     1127      newvar->var->v_VariableIsParameter, 
     1128      newvar->var->v_subroutinename, 
     1129      newvar->var->v_modulename, 
     1130      newvar->var->v_typevar 
     1131            ); 
     1132      newvar = newvar->suiv; 
    9861133   } 
    9871134} 
     
    10491196   int position; 
    10501197   int out; 
    1051    char name_sub[LONGNOM]; 
     1198   char name_sub[LONG_C]; 
    10521199 
    10531200   parcours = List_SubroutineArgument_Var; 
     
    11251272   listindice *newindice; 
    11261273   int out; 
     1274 
     1275   parcoursprec = (listvar *)NULL; 
    11271276 
    11281277   if ( mark == 1 ) printf("MODULE Treated %s \n",nom); 
     
    12581407   int out; 
    12591408 
     1409   parcoursprec = (listvar *)NULL; 
     1410 
    12601411   if ( mark == 1 ) printf("COMMON Treated %s \n",nom); 
    12611412 
     
    13731524void IndiceTabvarsIdentification() 
    13741525{ 
    1375    listvar *parcours; 
    13761526   listnom *parcours_nom; 
    13771527 
     
    14731623void NewModule_Creation_0() 
    14741624{ 
    1475    listvar *parcours; 
    14761625   listnom *parcours_nom; 
    1477    char name_tmp[LONGNOM]; 
    1478    char ligne[LONGNOM]; 
     1626   char ligne[LONG_C]; 
    14791627 
    14801628   if ( firstpass == 0 ) 
     
    15291677   listvar *parcours4; 
    15301678   int out; 
    1531    char name_module[LONGNOM]; 
     1679   char name_module[LONG_C]; 
    15321680 
    15331681   /* We should integrate allocate and pointer variables                      */ 
  • trunk/AGRIF/LIB/WorkWithvarofsubroutineliste.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
  • trunk/AGRIF/LIB/WriteInFile.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    4848  char *tmp; 
    4949  int size; 
    50  
     50  int val_min; 
    5151 
    5252  if (strlen (s) <= 60) 
     
    6262  else 
    6363    { 
     64      val_min = 60; 
    6465      strncpy (temp, s, 60); 
    6566      strcpy (&temp[60], "\0"); 
    6667 
    6768      tmp = strrchr(temp, '+'); 
    68  
    69       if ( !tmp || strlen(tmp) == 60 ) tmp = strrchr(temp, '-'); 
    70       if ( !tmp || strlen(tmp) == 60  ) tmp = strrchr(temp, '/'); 
    71       if ( !tmp || strlen(tmp) == 60  ) tmp = strrchr(temp, '*'); 
    72       if ( !tmp || strlen(tmp) == 60  ) tmp = strrchr(temp, '%'); 
    73       if ( !tmp || strlen(tmp) == 60  ) tmp = strrchr(temp, ','); 
    74       if ( !tmp || strlen(tmp) == 60  ) tmp = strrchr(temp, ':'); 
    75       if ( !tmp || strlen(tmp) == 60  ) tmp = strrchr(temp, ')'); 
    76       if ( tmp ) 
    77       { 
    78          size = strlen(tmp); 
    79       } 
    80       else 
    81       { 
    82          size = 0 ; 
    83       } 
     69      if ( tmp ) 
     70      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     71      tmp = strrchr(temp, '-'); 
     72      if ( tmp ) 
     73      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     74      tmp = strrchr(temp, '/'); 
     75      if ( tmp ) 
     76      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     77      tmp = strrchr(temp, '*'); 
     78      if ( tmp ) 
     79      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     80      tmp = strrchr(temp, '%'); 
     81      if ( tmp ) 
     82      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     83      tmp = strrchr(temp, ','); 
     84      if ( tmp ) 
     85      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     86      tmp = strrchr(temp, ')'); 
     87      if ( tmp ) 
     88      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     89      tmp = strrchr(temp, '('); 
     90      if ( tmp ) 
     91      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     92 
     93      size = val_min; 
    8494 
    8595      strcpy (&temp[60-size], "\0"); 
     
    102112  char *tmp; 
    103113  int size; 
     114  int val_min; 
    104115 
    105116  if (strlen (s) <= 60) 
     
    115126  else 
    116127    { 
     128      val_min = 60; 
    117129      strncpy (temp, s, 60); 
    118130      strcpy (&temp[60], "\0"); 
    119131 
     132      tmp = strrchr(temp, '+'); 
     133      if ( tmp ) 
     134      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     135      tmp = strrchr(temp, '-'); 
     136      if ( tmp ) 
     137      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     138      tmp = strrchr(temp, '/'); 
     139      if ( tmp ) 
     140      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     141      tmp = strrchr(temp, '*'); 
     142      if ( tmp ) 
     143      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     144      tmp = strrchr(temp, '%'); 
     145      if ( tmp ) 
     146      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
    120147      tmp = strrchr(temp, ','); 
    121       if ( !tmp  || strlen(tmp) == strlen(temp) ) tmp = strrchr(temp, '+'); 
    122       if ( !tmp  || strlen(tmp) == strlen(temp)  ) tmp = strrchr(temp, '-'); 
    123       if ( !tmp  || strlen(tmp) == strlen(temp)  ) tmp = strrchr(temp, '/'); 
    124       if ( !tmp  || strlen(tmp) == strlen(temp)  ) tmp = strrchr(temp, '*'); 
    125       if ( !tmp  || strlen(tmp) == strlen(temp)  ) tmp = strrchr(temp, '%'); 
    126       if ( !tmp  || strlen(tmp) == strlen(temp)  ) tmp = strrchr(temp, ','); 
    127       if ( !tmp  || strlen(tmp) == strlen(temp)  ) tmp = strrchr(temp, ':'); 
    128       if ( !tmp  || strlen(tmp) == strlen(temp)  ) tmp = strrchr(temp, ')'); 
    129       if ( tmp ) 
    130       { 
    131          size = strlen(tmp); 
    132       } 
    133       else 
    134       { 
    135          size = 0 ; 
    136       } 
     148      if ( tmp ) 
     149      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     150      tmp = strrchr(temp, ')'); 
     151      if ( tmp ) 
     152      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     153      tmp = strrchr(temp, '('); 
     154      if ( tmp ) 
     155      if ( strlen(tmp) < val_min ) val_min = strlen(tmp); 
     156 
     157      size = val_min; 
    137158 
    138159      strcpy (&temp[60-size], "\0"); 
  • trunk/AGRIF/LIB/Writedeclarations.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    5050/*                                                                            */ 
    5151/******************************************************************************/ 
    52 void WriteBeginDeclaration(variable *v,char ligne[LONGLIGNE]) 
    53 { 
    54   char tmpligne[LONGLIGNE]; 
     52void WriteBeginDeclaration(variable *v,char ligne[LONG_4C]) 
     53{ 
     54  char tmpligne[LONG_4C]; 
    5555 
    5656  if ( !strcasecmp(v->v_typevar,"") ) 
     
    6565  { 
    6666     sprintf(tmpligne,"(%s)",v->v_precision); 
     67     Save_Length(tmpligne,49); 
    6768     strcat(ligne,tmpligne); 
    6869  } 
     
    7071  { 
    7172     sprintf(tmpligne,"(%s)",v->v_dimchar); 
     73     Save_Length(tmpligne,49); 
    7274     strcat(ligne,tmpligne); 
    7375  } 
     
    7577  { 
    7678     sprintf(tmpligne,"*%s",v->v_nameinttypename); 
     79     Save_Length(tmpligne,49); 
    7780     strcat(ligne,tmpligne); 
    7881  } 
     
    8083  { 
    8184     sprintf(tmpligne,",INTENT(%s) ",v->v_IntentSpec); 
     85     Save_Length(tmpligne,49); 
    8286     strcat(ligne,tmpligne); 
    8387  } 
     
    9094  if ( v->v_optionaldeclare     == 1 ) strcat(ligne,", OPTIONAL"); 
    9195  if ( v->v_pointerdeclare      == 1 ) strcat(ligne,", POINTER"); 
     96  Save_Length(ligne,45); 
    9297} 
    9398 
     
    104109/*                                                                            */ 
    105110/******************************************************************************/ 
    106 void WriteScalarDeclaration(variable *v,char ligne[LONGLIGNE]) 
     111void WriteScalarDeclaration(variable *v,char ligne[LONG_4C]) 
    107112{ 
    108113 
     
    115120     strcat(ligne,v->v_initialvalue); 
    116121  } 
     122  Save_Length(ligne,45); 
    117123} 
    118124 
     
    130136/*                                                                            */ 
    131137/******************************************************************************/ 
    132 void WriteTableDeclaration(variable * v,char ligne[LONGLIGNE],int tmpok) 
    133 { 
    134   char newname[LONGNOM]; 
     138void WriteTableDeclaration(variable * v,char ligne[LONG_4C],int tmpok) 
     139{ 
     140  char newname[LONG_4C]; 
    135141 
    136142  strcat (ligne, ", Dimension("); 
     
    156162        if ( !strcasecmp(newname,"") ) strcat(newname,v->v_readedlistdimension); 
    157163     } 
     164     Save_Length(newname,47); 
    158165     strcat(ligne,newname); 
    159166  } 
     
    162169  strcat (ligne, v->v_nomvar); 
    163170  if ( strcasecmp(vallengspec,"") ) strcat(ligne,v->v_vallengspec); 
    164 /*  if ( !strcasecmp (v->v_typevar, "character") ) 
    165                               strcat(ligne,vargridparam(v,0));*/ 
     171 
    166172  if ( v->v_VariableIsParameter == 1 ) 
    167173  { 
     
    169175     strcat(ligne,v->v_initialvalue); 
    170176  } 
     177  Save_Length(ligne,45); 
    171178} 
    172179 
     
    188195  listvar *newvar; 
    189196  variable *v; 
    190   char ligne[LONGNOM]; 
     197  char ligne[LONG_4C]; 
    191198 
    192199  filecommon=fileout; 
     
    207214     tofich (filecommon, ligne,1); 
    208215  } 
     216  Save_Length(ligne,45); 
    209217} 
    210218 
     
    273281void WriteArgumentDeclaration_beforecall() 
    274282{ 
    275    variable *v; 
    276283   int position; 
    277284   listnom *neededparameter; 
    278285   FILE *paramtoamr; 
    279286   listvar *newvar; 
    280    char ligne[LONGLIGNE]; 
    281    int out; 
    282    int writeit; 
    283    listnom *parcours; 
     287   char ligne[LONG_4C]; 
    284288 
    285289   fprintf(fortranout,"#include \"Param_BeforeCall_%s.h\" \n",subroutinename); 
     
    308312      else newvar = newvar -> suiv; 
    309313   } 
     314   Save_Length(ligne,45); 
    310315   fclose(paramtoamr); 
    311316} 
     
    313318void WriteArgumentDeclaration_Sort() 
    314319{ 
    315    variable *v; 
    316320   int position; 
    317 /*   listnom *neededparameter;*/ 
    318    FILE *paramtoamr; 
    319321   listvar *newvar; 
    320    char ligne[LONGLIGNE]; 
    321    int out; 
    322    int writeit; 
    323    listnom *parcours; 
    324322 
    325323   /*                                                                         */ 
     
    377375/******************************************************************************/ 
    378376listnom *writedeclarationintoamr (listvar * deb_common, FILE *fileout, 
    379                               variable *var , char commonname[LONGNOM], 
    380                            listnom *neededparameter, char name_common[LONGNOM]) 
     377                              variable *var , char commonname[LONG_C], 
     378                           listnom *neededparameter, char name_common[LONG_C]) 
    381379{ 
    382380  listvar *newvar; 
    383381  variable *v; 
    384   char ligne[LONGLIGNE]; 
     382  char ligne[LONG_4C]; 
    385383  int changeval; 
    386   char firstmodule[LONGNOM]; 
    387384  int out; 
    388385  int writeit; 
     
    436433   } 
    437434  /*                                                                          */ 
    438   strcpy(firstmodule,""); 
    439435  tofich (fileout, "",1); 
    440436  parcours = neededparameter; 
     
    484480     parcours=parcours->suiv; 
    485481  } 
     482  Save_Length(ligne,45); 
    486483  return neededparameter; 
    487484} 
     
    504501  listvar *newvar; 
    505502  variable *v; 
    506   char ligne[LONGLIGNE]; 
     503  char ligne[LONG_4C]; 
    507504 
    508505  tofich (fileout, "",1); 
     
    524521     newvar = newvar->suiv; 
    525522  } 
     523  Save_Length(ligne,45); 
    526524} 
    527525 
     
    542540  listvar *newvar; 
    543541  variable *v; 
    544   char ligne[LONGLIGNE]; 
     542  char ligne[LONG_4C]; 
    545543  int changeval; 
    546544 
     
    569567     newvar = newvar->suiv; 
    570568  } 
    571 } 
     569  Save_Length(ligne,45); 
     570} 
  • trunk/AGRIF/LIB/convert.lex

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535%s character 
  • trunk/AGRIF/LIB/convert.y

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535%{ 
     
    4242%union { 
    4343       int ival; 
    44        char na[LONGNOM]; 
     44       char na[LONG_C]; 
    4545       listnom * ln; 
    4646       } 
     
    8686   extern FILE * yyin ; 
    8787   FILE *dependglobaloutput; 
    88    char *tmp; 
    8988   int i; 
    9089   listnom *parcours; 
     
    133132   strcpy(mpiinitvar,""); 
    134133 
     134   length_last = 0 ; 
     135   length_first = 0 ; 
     136   length_v_typevar = 0 ; 
     137   length_v_nomvar = 0 ; 
     138   length_v_dimchar = 0 ; 
     139   length_v_modulename = 0 ; 
     140   length_v_commonname = 0 ; 
     141   length_v_vallengspec = 0 ; 
     142   length_v_nameinttypename = 0 ; 
     143   length_v_commoninfile = 0 ; 
     144   length_v_subroutinename = 0 ; 
     145   length_v_precision = 0 ; 
     146   length_v_IntentSpec = 0 ; 
     147   length_v_initialvalue = 0 ; 
     148   length_v_readedlistdimension = 0 ; 
     149   length_u_usemodule = 0 ; 
     150   length_u_charusemodule = 0 ; 
     151   length_u_cursubroutine = 0 ; 
     152   length_u_modulename = 0 ; 
     153   length_n_name = 0 ; 
     154   length_c_namevar = 0 ; 
     155   length_c_namepointedvar = 0 ; 
     156   length_o_nom = 0 ; 
     157   length_o_module = 0 ; 
     158   length_a_nomvar = 0 ; 
     159   length_a_subroutine = 0 ; 
     160   length_a_module = 0 ; 
     161   length_t_usemodule = 0 ; 
     162   length_t_cursubroutine = 0 ; 
     163   length_curfilename = 0 ; 
     164   length_nomfileoutput = 0 ; 
     165   length_motparse = 0 ; 
     166   length_mainfile = 0 ; 
     167   length_nomdir = 0 ; 
     168   length_commondirout = 0 ; 
     169   length_commondirin = 0 ; 
     170   length_filetoparse = 0 ; 
     171   length_curbuf = 0 ; 
     172   length_toprintglob = 0 ; 
     173   length_tmpvargridname = 0 ; 
     174   length_ligne_Subloop = 0 ; 
     175   length_lvargridname_toamr = 0 ; 
     176   length_toprint_utilagrif = 0 ; 
     177   length_toprinttmp_utilchar = 0 ; 
     178   length_ligne_writedecl = 0 ; 
     179   length_newname_toamr = 0 ; 
     180   length_newname_writedecl = 0 ; 
     181   length_ligne_toamr = 0 ; 
     182   length_tmpligne_writedecl = 0 ; 
     183   value_char_size = 0 ; 
     184   value_char_size1 = 0 ; 
     185   value_char_size2 = 0 ; 
     186   value_char_size3 = 0 ; 
     187 
    135188   checkexistcommon=1; 
    136189   todebug=0; 
     
    149202   mark = 0 ; 
    150203   shouldincludempif = 0 ; 
     204   Read_val_max(); 
    151205/******************************************************************************/ 
    152206/*  2-  Program arguments                                                     */ 
     
    214268   } 
    215269 
     270   Save_Length(nomdir,34); 
     271   Save_Length(commondirout,35); 
     272   Save_Length(commondirin,36); 
     273   Save_Length(filetoparse,37); 
     274 
    216275/******************************************************************************/ 
    217276/*  3-  Parsing of the  conv file <name>.in                                   */ 
     
    224283   } 
    225284   strcpy(mainfile,argv[1]); 
     285   Save_Length(mainfile,33); 
    226286 
    227287   if ( strstr(filetoparse,".f90") || 
     
    267327   /* Update all lists                                                        */ 
    268328   ListUpdate(); 
     329   /*                                                                         */ 
     330   Clean_List_Global_Var(); 
    269331   /* Indice tabvars identification                                           */ 
    270332   IndiceTabvarsIdentification(); 
     
    296358   processfortran(filetoparse); 
    297359 
     360   newvar = (listvar *)NULL; 
     361/*newvar = List_Global_Var; */ 
     362   while ( newvar ) 
     363   { 
     364      printf("++++ %s %d %s %s %s\n", 
     365      newvar->var->v_nomvar, 
     366      newvar->var->v_nbdim, 
     367      newvar->var->v_subroutinename, 
     368      newvar->var->v_modulename, 
     369      newvar->var->v_typevar 
     370             ); 
     371      newvar = newvar->suiv; 
     372   } 
    298373/******************************************************************************/ 
    299374/*  6-  Write informations in output files                                    */ 
     
    332407   creefichieramr(NameTamponfile); 
    333408 
     409   Write_val_max(); 
    334410 
    335411   if ( todebug == 1 ) printf("Out of CONV \n"); 
  • trunk/AGRIF/LIB/decl.h

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#define LONGNOM 800 
    36 #define LONGLIGNE 800 
     36 
     37#define LONG_C 300 
     38#define LONG_4C 400 
     39#define LONG_4M 4000 
     40#define LONG_40M 40000 
    3741 
    3842/******************************************************************************/ 
     
    4246typedef struct 
    4347{ 
    44    char first[LONGNOM]; 
    45    char last[LONGNOM]; 
     48   char first[LONG_C]; 
     49   char last[LONG_C]; 
    4650} typedim ;                /* fortran dimension as 'ndeb:nfin'                */ 
    4751 
     
    5458typedef struct variable 
    5559{ 
    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]; 
     60   char v_typevar[LONG_C]; 
     61   char v_nomvar[LONG_C] ; 
     62   char v_oldname[LONG_C] ; 
     63   char v_dimchar[LONG_C]; 
     64   char v_modulename[LONG_C]; 
     65   char v_commonname[LONG_C]; 
     66   char v_vallengspec[LONG_C]; 
     67   char v_nameinttypename[LONG_C]; 
     68   char v_commoninfile[LONG_C]; 
     69   char v_subroutinename[LONG_C]; 
     70   char v_precision[LONG_C]; 
     71   char v_initialvalue[LONG_4C]; 
     72   char v_IntentSpec[LONG_C]; 
     73   char v_readedlistdimension[LONG_C]; 
    7074   int  v_nbdim; 
    7175   int  v_common; 
     
    105109typedef struct listusemodule 
    106110{ 
    107    char u_usemodule[LONGNOM]; 
    108    char u_charusemodule[LONGNOM]; 
    109    char u_cursubroutine[LONGNOM]; 
    110    char u_modulename[LONGNOM]; 
     111   char u_usemodule[LONG_C]; 
     112   char u_charusemodule[LONG_C]; 
     113   char u_cursubroutine[LONG_C]; 
     114   char u_modulename[LONG_C]; 
    111115   int  u_firstuse; 
    112116   struct listusemodule * suiv; 
     
    115119typedef struct listparameter 
    116120{ 
    117    char p_name[LONGNOM]; 
    118    char p_modulename[LONGNOM]; 
     121   char p_name[LONG_C]; 
     122   char p_modulename[LONG_C]; 
    119123   struct listparameter * suiv; 
    120124} listparameter ;           /* list of names                                  */ 
     
    122126typedef struct listname 
    123127{ 
    124    char n_name[LONGNOM]; 
     128   char n_name[LONG_C]; 
    125129   struct  listname* suiv; 
    126130} listname ;            /* list of names                                  */ 
     
    128132typedef struct listcouple 
    129133{ 
    130    char c_namevar[LONGNOM]; 
    131    char c_namepointedvar[LONGNOM]; 
     134   char c_namevar[LONG_C]; 
     135   char c_namepointedvar[LONG_C]; 
    132136   struct listcouple * suiv; 
    133137} listcouple;              /* list of names                                   */ 
     
    136140typedef struct listnom 
    137141{ 
    138    char o_nom[LONGNOM]; 
    139    char o_module[LONGNOM]; 
     142   char o_nom[LONG_C]; 
     143   char o_module[LONG_C]; 
    140144   int  o_val; 
    141145   listcouple *couple; 
     
    146150typedef struct listallocate 
    147151{ 
    148    char a_nomvar[LONGNOM]; 
    149    char a_subroutine[LONGNOM]; 
    150    char a_module[LONGNOM]; 
     152   char a_nomvar[LONG_C]; 
     153   char a_subroutine[LONG_C]; 
     154   char a_module[LONG_C]; 
    151155   struct listallocate * suiv; 
    152156} listallocate ; 
     
    155159typedef struct listvarpointtovar 
    156160{ 
    157    char t_usemodule[LONGNOM]; 
    158    char t_cursubroutine[LONGNOM]; 
     161   char t_usemodule[LONG_C]; 
     162   char t_cursubroutine[LONG_C]; 
    159163   listcouple *t_couple; 
    160164   struct  listvarpointtovar* suiv; 
     
    222226 
    223227 int positioninblock; 
    224  char commonvar[LONGNOM]; 
    225  char commonblockname[LONGNOM]; 
     228 char commonvar[LONG_C]; 
     229 char commonblockname[LONG_C]; 
    226230 
    227231/******************************************************************************/ 
     
    231235 int sameagrifargument; 
    232236 int InAgrifParentDef; 
    233  char sameagrifname[LONGNOM]; 
     237 char sameagrifname[LONG_C]; 
    234238/******************************************************************************/ 
    235239/****************   *** VAR DEF Variables ***   *******************************/ 
     
    252256 int shouldincludempif; 
    253257 int c_star; 
    254  char DeclType[LONGNOM]; 
    255  char nameinttypename[LONGNOM]; 
     258 char DeclType[LONG_C]; 
     259 char nameinttypename[LONG_C]; 
    256260 int GlobalDeclaration; 
    257  char InitValue[LONGNOM*2]; 
    258  char IntentSpec[LONGNOM]; 
    259  char NamePrecision[LONGNOM]; 
    260  char CharacterSize[LONGNOM]; 
    261  char curmodulename[LONGNOM]; 
    262  char vallengspec[LONGNOM]; 
    263  char subroutinename[LONGNOM]; 
     261 char InitValue[LONG_4C]; 
     262 char IntentSpec[LONG_C]; 
     263 char NamePrecision[LONG_C]; 
     264 char CharacterSize[LONG_C]; 
     265 char curmodulename[LONG_C]; 
     266 char vallengspec[LONG_C]; 
     267 char subroutinename[LONG_C]; 
    264268 
    265269/******************************************************************************/ 
     
    273277 int todebugfree; 
    274278 int fixedgrids;           /* = 1 if fixedgrids is true                       */ 
    275  char nbmaillesX[LONGNOM]; /* number of cells in the x direction              */ 
    276  char nbmaillesY[LONGNOM]; /* number of cells in the y direction              */ 
    277  char nbmaillesZ[LONGNOM]; /* number of cells in the z direction              */ 
     279 char nbmaillesX[LONG_C]; /* number of cells in the x direction              */ 
     280 char nbmaillesY[LONG_C]; /* number of cells in the y direction              */ 
     281 char nbmaillesZ[LONG_C]; /* number of cells in the z direction              */ 
    278282 int IndicenbmaillesX; 
    279283 int IndicenbmaillesY; 
     
    290294 int couldaddvariable; 
    291295 int pointedvar; 
     296 int NbMailleXDefined; 
    292297 int agrif_parentcall; 
    293298 int didvariableadded; 
     
    301306 int created_dimensionlist; 
    302307 
    303  char meetagrifinitgrids[LONGNOM]; 
    304  char mpiinitvar[LONGNOM]; 
     308 char meetagrifinitgrids[LONG_C]; 
     309 char mpiinitvar[LONG_C]; 
    305310 char *NameTamponfile; 
    306  char toprintglob[LONGNOM]; 
    307  char tmpvargridname[LONGLIGNE]; 
    308  char EmptyChar[LONGNOM];        /* An empty char */ 
    309  char curfilename[LONGNOM]; 
    310  char nomfileoutput[LONGNOM]; 
    311  char curbuf[100*LONGNOM]; 
    312  char motparse[LONGNOM]; 
    313  char motparse1[LONGNOM]; 
    314  char charusemodule[LONGNOM]; 
    315  char subofagrifinitgrids[LONGNOM]; 
    316  char curfile[LONGNOM]; 
    317  char mainfile[LONGNOM]; 
    318  char nomdir[LONGNOM]; 
    319  char commondirout[LONGNOM]; 
    320  char commondirin[LONGNOM]; 
    321  char filetoparse[LONGNOM]; 
     311 char toprintglob[LONG_4C]; 
     312 char tmpvargridname[LONG_4C]; 
     313 char EmptyChar[2];        /* An empty char */ 
     314 char curfilename[LONG_C]; 
     315 char nomfileoutput[LONG_C]; 
     316 char curbuf[LONG_40M]; 
     317 char motparse[LONG_4C]; 
     318 char motparse1[LONG_4C]; 
     319 char charusemodule[LONG_C]; 
     320 char subofagrifinitgrids[LONG_C]; 
     321 char curfile[LONG_C]; 
     322 char mainfile[LONG_C]; 
     323 char nomdir[LONG_C]; 
     324 char commondirout[LONG_C]; 
     325 char commondirin[LONG_C]; 
     326 char filetoparse[LONG_C]; 
    322327 
    323328 FILE *fortranout;          /* Output File                                    */ 
     
    347352                           /* final position of a line in file                */ 
    348353 
     354/* v_oldname = v_nomvar; */ 
     355/* commonvar = v_nomvar; */ 
     356/* commonblockname = v_commonname;*/ 
     357/* sameagrifname = v_nomvar ; */ 
     358/* DeclType = v_typevar; */ 
     359/* nameinttypename = v_nameinttypename; */ 
     360/* IntentSpec = v_IntentSpec; */ 
     361/* NamePrecision = v_precision; */ 
     362/* CharacterSize = v_dimchar; */ 
     363/* curmodulename = v_modulename; */ 
     364/* vallengspec = v_vallengspec; */ 
     365/* subroutinename = v_subroutinename; */ 
     366/* meetagrifinitgrids = v_subroutinename; */ 
     367/* nbmaillesX = v_nomvar; */ 
     368/* nbmaillesY = v_nomvar; */ 
     369/* nbmaillesZ = v_nomvar; */ 
     370/* mpiinitvar = v_nomvar; */ 
     371/* EmptyChar = 2; */ 
     372/* motparse1 = motparse;*/ 
     373/* charusemodule = p_modulename; */ 
     374/* subofagrifinitgrids = v_subroutinename; */ 
     375/* curfile = mainfile; */ 
     376/* InitValue = v_initialvalue; */ 
     377 
     378/* p_name;???????? */ 
     379/* p_modulename; ?????????????*/ 
     380 
     381 int length_last; 
     382 int length_first; 
     383 int length_v_typevar; 
     384 int length_v_nomvar; 
     385 int length_v_dimchar; 
     386 int length_v_modulename; 
     387 int length_v_commonname; 
     388 int length_v_vallengspec; 
     389 int length_v_nameinttypename; 
     390 int length_v_commoninfile; 
     391 int length_v_subroutinename; 
     392 int length_v_precision; 
     393 int length_v_IntentSpec; 
     394 int length_v_initialvalue; 
     395 int length_v_readedlistdimension; 
     396 int length_u_usemodule; 
     397 int length_u_charusemodule; 
     398 int length_u_cursubroutine; 
     399 int length_u_modulename; 
     400 int length_n_name; 
     401 int length_c_namevar; 
     402 int length_c_namepointedvar; 
     403 int length_o_nom; 
     404 int length_o_module; 
     405 int length_a_nomvar; 
     406 int length_a_subroutine; 
     407 int length_a_module; 
     408 int length_t_usemodule; 
     409 int length_t_cursubroutine; 
     410 int length_curfilename; 
     411 int length_nomfileoutput; 
     412 int length_motparse; 
     413 int length_mainfile; 
     414 int length_nomdir; 
     415 int length_commondirout; 
     416 int length_commondirin; 
     417 int length_filetoparse; 
     418 int length_curbuf; 
     419 int length_toprintglob; 
     420 int length_tmpvargridname; 
     421 int length_ligne_Subloop; 
     422 int length_lvargridname_toamr; 
     423 int length_toprint_utilagrif; 
     424 int length_toprinttmp_utilchar; 
     425 int length_ligne_writedecl; 
     426 int length_newname_toamr; 
     427 int length_newname_writedecl; 
     428 int length_ligne_toamr; 
     429 int length_tmpligne_writedecl; 
     430 int value_char_size; 
     431 int value_char_size1; 
     432 int value_char_size2; 
     433 int value_char_size3; 
     434 
    349435/******************************************************************************/ 
    350436/*********** Declaration of externals subroutines *****************************/ 
     
    376462extern int Did_filetoparse_readed(char *NameTampon); 
    377463extern int Did_module_common_treaded(char *NameTampon); 
     464extern void Write_val_max(); 
     465extern void Read_val_max(); 
    378466/******************************************************************************/ 
    379467/*********** DiversListe.c ****************************************************/ 
     
    391479extern void WriteIncludeDeclaration(); 
    392480extern void Add_Save_Var_1 (char *name,listdim *d); 
     481extern void Add_Save_Var_dcl_1 (listvar *var); 
    393482/******************************************************************************/ 
    394483/*********** SubLoopCreation.c ************************************************/ 
    395484/******************************************************************************/ 
    396 extern void writeheadnewsub_0(int suborfunc); 
     485extern void writeheadnewsub_0(); 
    397486extern void WriteVariablelist_subloop(FILE *outputfile); 
    398487extern void WriteVariablelist_subloop_Call(FILE *outputfile); 
    399488extern void WriteVariablelist_subloop_Def(FILE *outputfile); 
    400489extern void WriteHeadofSubroutineLoop(); 
    401 extern void closeandcallsubloopandincludeit_0(int suborfun, 
    402                                                           char endsub[LONGNOM]); 
     490extern void closeandcallsubloopandincludeit_0(int suborfun); 
     491extern void closeandcallsubloop_contains_0(); 
    403492/******************************************************************************/ 
    404493/*********** toamr.c **********************************************************/ 
     
    407496extern char *variablenametabvars (variable * var, int iorindice); 
    408497extern char *variablecurgridtabvars (variable * var,int ParentOrCurgrid); 
     498extern void WARNING_CharSize(variable *var); 
    409499extern char *vargridnametabvars (variable * var,int iorindice); 
    410500extern char *vargridcurgridtabvars (variable * var,int ParentOrCurgrid); 
     
    432522extern void ModifyTheVariableName_0(char *ident); 
    433523extern void Add_SubroutineWhereAgrifUsed_1(char *sub,char *mod); 
    434 extern void  AddUseAgrifUtil_0(FILE *fileout); 
    435 extern void  AddUseAgrifUtilBeforeCall_0(FILE *fileout); 
     524extern void AddUseAgrifUtil_0(FILE *fileout); 
     525extern void AddUseAgrifUtilBeforeCall_0(FILE *fileout); 
    436526extern void NotifyAgrifFunction_0(char *ident); 
    437527extern void ModifyTheAgrifFunction_0(char *ident); 
     
    441531/*********** UtilCharacter.c **************************************************/ 
    442532/******************************************************************************/ 
    443 extern void FindAndChangeNameToTabvars(char name[LONGNOM],char toprint[LONGNOM], 
     533extern void FindAndChangeNameToTabvars(char name[LONG_C],char toprint[LONG_4C], 
    444534                                             listvar * listtosee, int whichone); 
    445535extern char *ChangeTheInitalvaluebyTabvarsName(char *nom,listvar *listtoread, 
     
    450540extern void DecomposeTheName(char *nom); 
    451541extern void convert2lower(char *name); 
     542extern int convert2int(char *name); 
    452543/******************************************************************************/ 
    453544/*********** UtilFile.c *******************************************************/ 
     
    465556extern int Variableshouldberemove(char *nom); 
    466557extern int variableisglobal(listvar *curvar, listvar *listin); 
     558extern int VariableIsInListCommon(listvar *curvar,listvar *listin); 
    467559extern int VariableIsInList(listvar *curvar,listvar *listin); 
    468560extern void variableisglobalinmodule(listcouple *listin, char *module, 
     
    520612/*********** WorkWithlistmoduleinfile.c ***************************************/ 
    521613/******************************************************************************/ 
    522  
     614extern void Save_Length(char *nom, int whichone); 
     615extern void Save_Length_int(int val, int whichone); 
    523616/******************************************************************************/ 
    524617/*********** WorkWithlistofmodulebysubroutine.c *******************************/ 
     
    545638extern int LookingForVariableInList(listvar *listin,variable *var); 
    546639extern int LookingForVariableInListGlobal(listvar *listin,variable *var); 
     640extern int LookingForVariableInListName(listvar *listin,char *var); 
    547641extern int LookingForVariableInListGlob(listvar *listin,variable *var); 
    548642extern int LookingForVariableInListParamGlob(listparameter *listin, 
     
    551645extern void Clean_List_UsedInSubroutine_Var(); 
    552646extern void Clean_List_SubroutineDeclaration_Var(); 
     647extern void Clean_List_Global_Var(); 
    553648extern void ListClean(); 
    554649extern void ListUpdate(); 
     650extern void GiveTypeOfVariables(); 
    555651extern void Sort_List_SubroutineArgument_Var(); 
    556652extern void IndiceTabvars_Global_Var_Treated(char *nom); 
     
    582678/*********** Writedeclarations.c **********************************************/ 
    583679/******************************************************************************/ 
    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); 
     680extern void WriteBeginDeclaration(variable *v,char ligne[LONG_4C]); 
     681extern void WriteScalarDeclaration(variable *v,char ligne[LONG_4C]); 
     682extern void WriteTableDeclaration(variable * v,char ligne[LONG_4C],int tmpok); 
    587683extern void writevardeclaration (listvar * var_record, FILE *fileout, 
    588684                                                                     int value); 
     
    593689extern void WriteArgumentDeclaration_Sort(); 
    594690extern listnom *writedeclarationintoamr (listvar * deb_common, FILE *fileout, 
    595                                        variable *var , char commonname[LONGNOM], 
    596                            listnom *neededparameter, char name_common[LONGNOM]); 
     691                                       variable *var , char commonname[LONG_C], 
     692                           listnom *neededparameter, char name_common[LONG_C]); 
    597693extern void writesub_loopdeclaration_scalar (listvar * deb_common, 
    598694                                                                 FILE *fileout); 
  • trunk/AGRIF/LIB/dependfile.c

    r663 r774  
    3131/* knowledge of the CeCILL-C license and that you accept its terms.           */ 
    3232/******************************************************************************/ 
    33 /* version 1.6                                                                */ 
     33/* version 1.7                                                                */ 
    3434/******************************************************************************/ 
    3535#include <stdio.h> 
     
    9292     } 
    9393  } 
     94  NbMailleXDefined = 0; 
    9495  if ( out == 1 ) 
    9596  { 
     97     NbMailleXDefined = 1; 
    9698     dependfileoutput = fopen(".dependnbxnby","w"); 
    9799     fprintf(dependfileoutput,"%d\n",parcours->var->v_indicetabvars); 
     
    194196  FILE *dependfileoutput; 
    195197  listusemodule *parcours; 
    196   char ligne[LONGNOM]; 
     198  char ligne[LONG_C]; 
    197199 
    198200 
     
    236238  FILE *dependfileoutput; 
    237239  listusemodule *parcours; 
    238   char ligne[LONGNOM]; 
     240  char ligne[LONG_C]; 
    239241 
    240242  convert2lower(NameTampon); 
     
    279281  FILE *dependfileoutput; 
    280282  listvar *parcours; 
    281   char ligne[LONGNOM]; 
     283  char ligne[LONG_C]; 
    282284 
    283285  if ( List_GlobalParameter_Var ) 
     
    318320  FILE *dependfileoutput; 
    319321  listparameter *parcours; 
    320   char ligne[LONGNOM]; 
     322  char ligne[LONG_C]; 
    321323 
    322324  convert2lower(NameTampon); 
     
    370372  listvar *parcours; 
    371373  listdim *dims; 
    372   char ligne[LONGNOM]; 
    373   char listdimension[LONGNOM]; 
    374   char curname[LONGNOM]; 
     374  char ligne[LONG_C]; 
     375  char listdimension[LONG_C]; 
     376  char curname[LONG_C]; 
    375377  int out; 
    376378 
     
    511513listvar *Readthedependfile( char *NameTampon , listvar *listout) 
    512514{ 
    513   char ligne[LONGNOM]; 
     515  char ligne[LONG_C]; 
    514516  FILE *dependfileoutput; 
    515517  listvar *parcours0; 
    516518  listvar *parcours; 
    517519  listvar *parcoursprec; 
    518   char nothing[LONGNOM]; 
     520  char nothing[LONG_C]; 
    519521  int i; 
    520522 
     
    675677  listnom *ref; 
    676678 
     679  ref = (listnom *)NULL; 
    677680  if ((dependfileoutput=fopen(".dependAllocAgrif","r"))!=NULL) 
    678681  { 
     
    681684     { 
    682685        parcours=(listnom *)malloc(sizeof(listnom)); 
     686        strcpy(parcours->o_nom,""); 
     687 
    683688        fscanf(dependfileoutput,"%s\n",&parcours->o_nom); 
    684689        parcours->suiv = NULL; 
     
    791796{ 
    792797  FILE *dependfileoutput; 
    793   char ligne[LONGNOM]; 
     798  char ligne[LONG_C]; 
    794799  int out; 
    795800 
     
    820825{ 
    821826  FILE *dependfileoutput; 
    822   char ligne[LONGNOM]; 
     827  char ligne[LONG_C]; 
    823828  int out; 
    824829 
     
    836841  return out; 
    837842} 
     843 
     844 
     845 
     846void Write_val_max() 
     847{ 
     848  FILE *dependfileoutput; 
     849 
     850  if ((dependfileoutput=fopen(".dependvalmax","w"))!=NULL) 
     851  { 
     852     fprintf(dependfileoutput,"length_last\n"); 
     853     fprintf(dependfileoutput,"%d\n",length_last); 
     854     fprintf(dependfileoutput,"length_first\n"); 
     855     fprintf(dependfileoutput,"%d\n",length_first); 
     856     fprintf(dependfileoutput,"length_v_typevar\n"); 
     857     fprintf(dependfileoutput,"%d\n",length_v_typevar); 
     858     fprintf(dependfileoutput,"length_v_nomvar\n"); 
     859     fprintf(dependfileoutput,"%d\n",length_v_nomvar); 
     860     fprintf(dependfileoutput,"length_v_dimchar\n"); 
     861     fprintf(dependfileoutput,"%d\n",length_v_dimchar); 
     862     fprintf(dependfileoutput,"length_v_modulename\n"); 
     863     fprintf(dependfileoutput,"%d\n",length_v_modulename); 
     864     fprintf(dependfileoutput,"length_v_commonname\n"); 
     865     fprintf(dependfileoutput,"%d\n",length_v_commonname); 
     866     fprintf(dependfileoutput,"length_v_vallengspec\n"); 
     867     fprintf(dependfileoutput,"%d\n",length_v_vallengspec); 
     868     fprintf(dependfileoutput,"length_v_nameinttypename\n"); 
     869     fprintf(dependfileoutput,"%d\n",length_v_nameinttypename); 
     870     fprintf(dependfileoutput,"length_v_commoninfile\n"); 
     871     fprintf(dependfileoutput,"%d\n",length_v_commoninfile); 
     872     fprintf(dependfileoutput,"length_v_subroutinename\n"); 
     873     fprintf(dependfileoutput,"%d\n",length_v_subroutinename); 
     874     fprintf(dependfileoutput,"length_v_precision\n"); 
     875     fprintf(dependfileoutput,"%d\n",length_v_precision); 
     876     fprintf(dependfileoutput,"length_v_IntentSpec\n"); 
     877     fprintf(dependfileoutput,"%d\n",length_v_IntentSpec); 
     878     fprintf(dependfileoutput,"length_v_initialvalue\n"); 
     879     fprintf(dependfileoutput,"%d\n",length_v_initialvalue); 
     880     fprintf(dependfileoutput,"length_v_readedlistdimension\n"); 
     881     fprintf(dependfileoutput,"%d\n",length_v_readedlistdimension); 
     882     fprintf(dependfileoutput,"length_u_usemodule\n"); 
     883     fprintf(dependfileoutput,"%d\n",length_u_usemodule); 
     884     fprintf(dependfileoutput,"length_u_charusemodule\n"); 
     885     fprintf(dependfileoutput,"%d\n",length_u_charusemodule); 
     886     fprintf(dependfileoutput,"length_u_cursubroutine\n"); 
     887     fprintf(dependfileoutput,"%d\n",length_u_cursubroutine); 
     888     fprintf(dependfileoutput,"length_u_modulename\n"); 
     889     fprintf(dependfileoutput,"%d\n",length_u_modulename); 
     890     fprintf(dependfileoutput,"length_n_name\n"); 
     891     fprintf(dependfileoutput,"%d\n",length_n_name); 
     892     fprintf(dependfileoutput,"length_c_namevar\n"); 
     893     fprintf(dependfileoutput,"%d\n",length_c_namevar); 
     894     fprintf(dependfileoutput,"length_c_namepointedvar\n"); 
     895     fprintf(dependfileoutput,"%d\n",length_c_namepointedvar); 
     896     fprintf(dependfileoutput,"length_o_nom\n"); 
     897     fprintf(dependfileoutput,"%d\n",length_o_nom); 
     898     fprintf(dependfileoutput,"length_o_module\n"); 
     899     fprintf(dependfileoutput,"%d\n",length_o_module); 
     900     fprintf(dependfileoutput,"length_a_nomvar\n"); 
     901     fprintf(dependfileoutput,"%d\n",length_a_nomvar); 
     902     fprintf(dependfileoutput,"length_a_subroutine\n"); 
     903     fprintf(dependfileoutput,"%d\n",length_a_subroutine); 
     904     fprintf(dependfileoutput,"length_a_module\n"); 
     905     fprintf(dependfileoutput,"%d\n",length_a_module); 
     906     fprintf(dependfileoutput,"length_usemodule\n"); 
     907     fprintf(dependfileoutput,"%d\n",length_t_usemodule); 
     908     fprintf(dependfileoutput,"length_cursubroutine\n"); 
     909     fprintf(dependfileoutput,"%d\n",length_t_cursubroutine); 
     910     fprintf(dependfileoutput,"length_curfilename\n"); 
     911     fprintf(dependfileoutput,"%d\n",length_curfilename); 
     912     fprintf(dependfileoutput,"length_nomfileoutput\n"); 
     913     fprintf(dependfileoutput,"%d\n",length_nomfileoutput); 
     914     fprintf(dependfileoutput,"length_motparse\n"); 
     915     fprintf(dependfileoutput,"%d\n",length_motparse); 
     916     fprintf(dependfileoutput,"length_mainfile\n"); 
     917     fprintf(dependfileoutput,"%d\n",length_mainfile); 
     918     fprintf(dependfileoutput,"length_nomdir\n"); 
     919     fprintf(dependfileoutput,"%d\n",length_nomdir); 
     920     fprintf(dependfileoutput,"length_commondirout\n"); 
     921     fprintf(dependfileoutput,"%d\n",length_commondirout); 
     922     fprintf(dependfileoutput,"length_commondirin\n"); 
     923     fprintf(dependfileoutput,"%d\n",length_commondirin); 
     924     fprintf(dependfileoutput,"length_filetoparse\n"); 
     925     fprintf(dependfileoutput,"%d\n",length_filetoparse); 
     926     fprintf(dependfileoutput,"length_curbuf\n"); 
     927     fprintf(dependfileoutput,"%d\n",length_curbuf); 
     928     fprintf(dependfileoutput,"length_toprintglob\n"); 
     929     fprintf(dependfileoutput,"%d\n",length_toprintglob); 
     930     fprintf(dependfileoutput,"Size_char0d\n"); 
     931     fprintf(dependfileoutput,"%d\n",value_char_size); 
     932     fprintf(dependfileoutput,"Size_char1d\n"); 
     933     fprintf(dependfileoutput,"%d\n",value_char_size1); 
     934     fprintf(dependfileoutput,"Size_char2d\n"); 
     935     fprintf(dependfileoutput,"%d\n",value_char_size2); 
     936     fprintf(dependfileoutput,"Size_char3d\n"); 
     937     fprintf(dependfileoutput,"%d\n",value_char_size3); 
     938     fprintf(dependfileoutput,"length_tmpvargridname\n"); 
     939     fprintf(dependfileoutput,"%d\n",length_tmpvargridname); 
     940     fprintf(dependfileoutput,"length_ligne_Subloop\n"); 
     941     fprintf(dependfileoutput,"%d\n",length_ligne_Subloop); 
     942     fprintf(dependfileoutput,"length_lvargridname_toamr\n"); 
     943     fprintf(dependfileoutput,"%d\n",length_lvargridname_toamr); 
     944     fprintf(dependfileoutput,"length_toprint_toamr\n"); 
     945     fprintf(dependfileoutput,"%d\n",length_toprint_utilagrif); 
     946     fprintf(dependfileoutput,"length_toprinttmp_utilchar\n"); 
     947     fprintf(dependfileoutput,"%d\n",length_toprinttmp_utilchar); 
     948     fprintf(dependfileoutput,"length_ligne_writedecl\n"); 
     949     fprintf(dependfileoutput,"%d\n",length_ligne_writedecl); 
     950     fprintf(dependfileoutput,"length_newname_toamr\n"); 
     951     fprintf(dependfileoutput,"%d\n",length_newname_toamr); 
     952     fprintf(dependfileoutput,"length_newname_writedecl\n"); 
     953     fprintf(dependfileoutput,"%d\n",length_newname_writedecl); 
     954     fprintf(dependfileoutput,"length_ligne_toamr\n"); 
     955     fprintf(dependfileoutput,"%d\n",length_ligne_toamr); 
     956     fprintf(dependfileoutput,"length_tmpligne_writedecl\n"); 
     957     fprintf(dependfileoutput,"%d\n",length_tmpligne_writedecl); 
     958/*     fprintf(dependfileoutput,"\n"); 
     959     fprintf(dependfileoutput,"%d\n",); 
     960     fprintf(dependfileoutput,"\n"); 
     961     fprintf(dependfileoutput,"%d\n",); 
     962     fprintf(dependfileoutput,"\n"); 
     963     fprintf(dependfileoutput,"%d\n",); 
     964     fprintf(dependfileoutput,"\n"); 
     965     fprintf(dependfileoutput,"%d\n",); 
     966     fprintf(dependfileoutput,"\n"); 
     967     fprintf(dependfileoutput,"%d\n",); 
     968     fprintf(dependfileoutput,"\n"); 
     969     fprintf(dependfileoutput,"%d\n",); 
     970     fprintf(dependfileoutput,"\n"); 
     971     fprintf(dependfileoutput,"%d\n",); 
     972     fprintf(dependfileoutput,"\n"); 
     973     fprintf(dependfileoutput,"%d\n",); 
     974     fprintf(dependfileoutput,"\n"); 
     975     fprintf(dependfileoutput,"%d\n",);*/ 
     976 
     977     fclose(dependfileoutput); 
     978  } 
     979} 
     980 
     981 
     982void Read_val_max() 
     983{ 
     984  char nothing[LONG_C]; 
     985  FILE *dependfileoutput; 
     986 
     987  if ((dependfileoutput=fopen(".dependvalmax","r"))!=NULL) 
     988  { 
     989     fscanf(dependfileoutput,"%s\n",nothing); 
     990     fscanf(dependfileoutput,"%d\n",&length_last); 
     991     fscanf(dependfileoutput,"%s\n",nothing); 
     992     fscanf(dependfileoutput,"%d\n",&length_first); 
     993     fscanf(dependfileoutput,"%s\n",nothing); 
     994     fscanf(dependfileoutput,"%d\n",&length_v_typevar); 
     995     fscanf(dependfileoutput,"%s\n",nothing); 
     996     fscanf(dependfileoutput,"%d\n",&length_v_nomvar); 
     997     fscanf(dependfileoutput,"%s\n",nothing); 
     998     fscanf(dependfileoutput,"%d\n",&length_v_dimchar); 
     999     fscanf(dependfileoutput,"%s\n",nothing); 
     1000     fscanf(dependfileoutput,"%d\n",&length_v_modulename); 
     1001     fscanf(dependfileoutput,"%s\n",nothing); 
     1002     fscanf(dependfileoutput,"%d\n",&length_v_commonname); 
     1003     fscanf(dependfileoutput,"%s\n",nothing); 
     1004     fscanf(dependfileoutput,"%d\n",&length_v_vallengspec); 
     1005     fscanf(dependfileoutput,"%s\n",nothing); 
     1006     fscanf(dependfileoutput,"%d\n",&length_v_nameinttypename); 
     1007     fscanf(dependfileoutput,"%s\n",nothing); 
     1008     fscanf(dependfileoutput,"%d\n",&length_v_commoninfile); 
     1009     fscanf(dependfileoutput,"%s\n",nothing); 
     1010     fscanf(dependfileoutput,"%d\n",&length_v_subroutinename); 
     1011     fscanf(dependfileoutput,"%s\n",nothing); 
     1012     fscanf(dependfileoutput,"%d\n",&length_v_precision); 
     1013     fscanf(dependfileoutput,"%s\n",nothing); 
     1014     fscanf(dependfileoutput,"%d\n",&length_v_IntentSpec); 
     1015     fscanf(dependfileoutput,"%s\n",nothing); 
     1016     fscanf(dependfileoutput,"%d\n",&length_v_initialvalue); 
     1017     fscanf(dependfileoutput,"%s\n",nothing); 
     1018     fscanf(dependfileoutput,"%d\n",&length_v_readedlistdimension); 
     1019     fscanf(dependfileoutput,"%s\n",nothing); 
     1020     fscanf(dependfileoutput,"%d\n",&length_u_usemodule); 
     1021     fscanf(dependfileoutput,"%s\n",nothing); 
     1022     fscanf(dependfileoutput,"%d\n",&length_u_charusemodule); 
     1023     fscanf(dependfileoutput,"%s\n",nothing); 
     1024     fscanf(dependfileoutput,"%d\n",&length_u_cursubroutine); 
     1025     fscanf(dependfileoutput,"%s\n",nothing); 
     1026     fscanf(dependfileoutput,"%d\n",&length_u_modulename); 
     1027     fscanf(dependfileoutput,"%s\n",nothing); 
     1028     fscanf(dependfileoutput,"%d\n",&length_n_name); 
     1029     fscanf(dependfileoutput,"%s\n",nothing); 
     1030     fscanf(dependfileoutput,"%d\n",&length_c_namevar); 
     1031     fscanf(dependfileoutput,"%s\n",nothing); 
     1032     fscanf(dependfileoutput,"%d\n",&length_c_namepointedvar); 
     1033     fscanf(dependfileoutput,"%s\n",nothing); 
     1034     fscanf(dependfileoutput,"%d\n",&length_o_nom); 
     1035     fscanf(dependfileoutput,"%s\n",nothing); 
     1036     fscanf(dependfileoutput,"%d\n",&length_o_module); 
     1037     fscanf(dependfileoutput,"%s\n",nothing); 
     1038     fscanf(dependfileoutput,"%d\n",&length_a_nomvar); 
     1039     fscanf(dependfileoutput,"%s\n",nothing); 
     1040     fscanf(dependfileoutput,"%d\n",&length_a_subroutine); 
     1041     fscanf(dependfileoutput,"%s\n",nothing); 
     1042     fscanf(dependfileoutput,"%d\n",&length_a_module); 
     1043     fscanf(dependfileoutput,"%s\n",nothing); 
     1044     fscanf(dependfileoutput,"%d\n",&length_t_usemodule); 
     1045     fscanf(dependfileoutput,"%s\n",nothing); 
     1046     fscanf(dependfileoutput,"%d\n",&length_t_cursubroutine); 
     1047     fscanf(dependfileoutput,"%s\n",nothing); 
     1048     fscanf(dependfileoutput,"%d\n",&length_curfilename); 
     1049     fscanf(dependfileoutput,"%s\n",nothing); 
     1050     fscanf(dependfileoutput,"%d\n",&length_nomfileoutput); 
     1051     fscanf(dependfileoutput,"%s\n",nothing); 
     1052     fscanf(dependfileoutput,"%d\n",&length_motparse); 
     1053     fscanf(dependfileoutput,"%s\n",nothing); 
     1054     fscanf(dependfileoutput,"%d\n",&length_mainfile); 
     1055     fscanf(dependfileoutput,"%s\n",nothing); 
     1056     fscanf(dependfileoutput,"%d\n",&length_nomdir); 
     1057     fscanf(dependfileoutput,"%s\n",nothing); 
     1058     fscanf(dependfileoutput,"%d\n",&length_commondirout); 
     1059     fscanf(dependfileoutput,"%s\n",nothing); 
     1060     fscanf(dependfileoutput,"%d\n",&length_commondirin); 
     1061     fscanf(dependfileoutput,"%s\n",nothing); 
     1062     fscanf(dependfileoutput,"%d\n",&length_filetoparse); 
     1063     fscanf(dependfileoutput,"%s\n",nothing); 
     1064     fscanf(dependfileoutput,"%d\n",&length_curbuf); 
     1065     fscanf(dependfileoutput,"%s\n",nothing); 
     1066     fscanf(dependfileoutput,"%d\n",&length_toprintglob); 
     1067     fscanf(dependfileoutput,"%s\n",nothing); 
     1068     fscanf(dependfileoutput,"%d\n",&value_char_size); 
     1069     fscanf(dependfileoutput,"%s\n",nothing); 
     1070     fscanf(dependfileoutput,"%d\n",&value_char_size1); 
     1071     fscanf(dependfileoutput,"%s\n",nothing); 
     1072     fscanf(dependfileoutput,"%d\n",&value_char_size2); 
     1073     fscanf(dependfileoutput,"%s\n",nothing); 
     1074     fscanf(dependfileoutput,"%d\n",&value_char_size3); 
     1075     fscanf(dependfileoutput,"%s\n",nothing); 
     1076     fscanf(dependfileoutput,"%d\n",&length_tmpvargridname); 
     1077     fscanf(dependfileoutput,"%s\n",nothing); 
     1078     fscanf(dependfileoutput,"%d\n",&length_ligne_Subloop); 
     1079     fscanf(dependfileoutput,"%s\n",nothing); 
     1080     fscanf(dependfileoutput,"%d\n",&length_lvargridname_toamr); 
     1081     fscanf(dependfileoutput,"%s\n",nothing); 
     1082     fscanf(dependfileoutput,"%d\n",&length_toprint_utilagrif); 
     1083     fscanf(dependfileoutput,"%s\n",nothing); 
     1084     fscanf(dependfileoutput,"%d\n",&length_toprinttmp_utilchar); 
     1085     fscanf(dependfileoutput,"%s\n",nothing); 
     1086     fscanf(dependfileoutput,"%d\n",&length_ligne_writedecl); 
     1087     fscanf(dependfileoutput,"%s\n",nothing); 
     1088     fscanf(dependfileoutput,"%d\n",&length_newname_toamr); 
     1089     fscanf(dependfileoutput,"%s\n",nothing); 
     1090     fscanf(dependfileoutput,"%d\n",&length_newname_writedecl); 
     1091     fscanf(dependfileoutput,"%s\n",nothing); 
     1092     fscanf(dependfileoutput,"%d\n",&length_ligne_toamr); 
     1093     fscanf(dependfileoutput,"%s\n",nothing); 
     1094     fscanf(dependfileoutput,"%d\n",&length_tmpligne_writedecl); 
     1095/*     fscanf(dependfileoutput,"%s\n",nothing); 
     1096     fscanf(dependfileoutput,"%d\n",&); 
     1097     fscanf(dependfileoutput,"%s\n",nothing); 
     1098     fscanf(dependfileoutput,"%d\n",&); 
     1099     fscanf(dependfileoutput,"%s\n",nothing); 
     1100     fscanf(dependfileoutput,"%d\n",&); 
     1101     fscanf(dependfileoutput,"%s\n",nothing); 
     1102     fscanf(dependfileoutput,"%d\n",&); 
     1103     fscanf(dependfileoutput,"%s\n",nothing); 
     1104     fscanf(dependfileoutput,"%d\n",&); 
     1105     fscanf(dependfileoutput,"%s\n",nothing); 
     1106     fscanf(dependfileoutput,"%d\n",&); 
     1107     fscanf(dependfileoutput,"%s\n",nothing); 
     1108     fscanf(dependfileoutput,"%d\n",&); 
     1109     fscanf(dependfileoutput,"%s\n",nothing); 
     1110     fscanf(dependfileoutput,"%d\n",&); 
     1111     fscanf(dependfileoutput,"%s\n",nothing); 
     1112     fscanf(dependfileoutput,"%d\n",&);*/ 
     1113 
     1114     fclose(dependfileoutput); 
     1115  } 
     1116} 
  • trunk/AGRIF/LIB/fortran.c

    r663 r774  
    22static const char yysccsid[] = "@(#)yaccpar  1.9 (Berkeley) 02/21/93"; 
    33#endif 
     4 
     5#include <stdlib.h> 
     6 
    47#define YYBYACC 1 
    58#define YYMAJOR 1 
    69#define YYMINOR 9 
    7 #define yyclearin (yychar=(-1)) 
    8 #define yyerrok (yyerrflag=0) 
    9 #define YYRECOVERING (yyerrflag!=0) 
     10#define YYPATCH 20070509 
     11 
     12#define YYEMPTY (-1) 
     13#define yyclearin    (yychar = YYEMPTY) 
     14#define yyerrok      (yyerrflag = 0) 
     15#define YYRECOVERING (yyerrflag != 0) 
     16 
    1017extern int yyparse(void); 
     18 
     19static int yygrowstack(void); 
    1120#define yyparse fortranparse 
    1221#define yylex fortranlex 
     
    4251extern int line_num_fortran_common; 
    4352char *tmp; 
    44 char c_selectorname[LONGNOM]; 
    45 char ligne[LONGNOM]; 
    46 char identcopy[LONGNOM]; 
     53char c_selectorname[LONG_C]; 
     54char ligne[LONG_C]; 
     55char identcopy[LONG_C]; 
    4756int c_selectorgiven=0; 
    4857int incom; 
     
    5564#line 56 "fortran.y" 
    5665typedef union { 
     66       char      nac[LONG_C]; 
    5767       char      na[LONGNOM]; 
    5868       listdim  *d; 
     
    6373       variable *v; 
    6474       } YYSTYPE; 
    65 #line 66 "y.tab.c" 
     75#line 76 "y.tab.c" 
    6676#define TOK_BINARY_OP 257 
    6777#define EQV 258 
     
    138148#define TOK_PRIVATE 329 
    139149#define TOK_ALLOCATABLE 330 
    140 #define TOK_IN 331 
    141 #define TOK_RETURN 332 
    142 #define TOK_THEN 333 
    143 #define TOK_ELSEIF 334 
    144 #define TOK_ELSE 335 
    145 #define TOK_ENDIF 336 
    146 #define TOK_PRINT 337 
    147 #define TOK_PLAINGOTO 338 
    148 #define TOK_CONSTRUCTID 339 
    149 #define TOK_LOGICALIF 340 
    150 #define TOK_PLAINDO 341 
    151 #define TOK_CONTAINS 342 
    152 #define TOK_ENDDO 343 
    153 #define TOK_MODULE 344 
    154 #define TOK_ENDMODULE 345 
    155 #define TOK_DOWHILE 346 
    156 #define TOK_ALLOCATE 347 
    157 #define TOK_OPEN 348 
    158 #define TOK_CLOSE 349 
    159 #define TOK_INQUIRE 350 
    160 #define TOK_WRITE 351 
    161 #define TOK_READ 352 
    162 #define TOK_REWIND 353 
    163 #define TOK_DEALLOCATE 354 
    164 #define TOK_NULLIFY 355 
    165 #define TOK_FIN 356 
    166 #define TOK_DEBUT 357 
    167 #define TOK_OUT 358 
    168 #define TOK_INOUT 359 
    169 #define TOK_DIMENSION 360 
    170 #define TOK_ENDSELECT 361 
    171 #define TOK_EXTERNAL 362 
    172 #define TOK_INTENT 363 
    173 #define TOK_INTRINSIC 364 
    174 #define TOK_NAMELIST 365 
    175 #define TOK_CASEDEFAULT 366 
    176 #define TOK_OPTIONAL 367 
    177 #define TOK_POINTER 368 
    178 #define TOK_CONTINUE 369 
    179 #define TOK_SAVE 370 
    180 #define TOK_TARGET 371 
    181 #define TOK_QUOTE 372 
    182 #define TOK_IMPLICIT 373 
    183 #define TOK_NONE 374 
    184 #define TOK_CALL 375 
    185 #define TOK_STAT 376 
    186 #define TOK_POINT_TO 377 
    187 #define TOK_COMMON 378 
    188 #define TOK_GLOBAL 379 
    189 #define TOK_INTERFACE 380 
    190 #define TOK_ENDINTERFACE 381 
    191 #define TOK_LEFTAB 382 
    192 #define TOK_RIGHTAB 383 
    193 #define TOK_PAUSE 384 
    194 #define TOK_PROCEDURE 385 
    195 #define TOK_STOP 386 
    196 #define TOK_NAMEEQ 387 
    197 #define TOK_REAL8 388 
     150#define TOK_RETURN 331 
     151#define TOK_THEN 332 
     152#define TOK_ELSEIF 333 
     153#define TOK_ELSE 334 
     154#define TOK_ENDIF 335 
     155#define TOK_PRINT 336 
     156#define TOK_PLAINGOTO 337 
     157#define TOK_CONSTRUCTID 338 
     158#define TOK_LOGICALIF 339 
     159#define TOK_PLAINDO 340 
     160#define TOK_CONTAINS 341 
     161#define TOK_ENDDO 342 
     162#define TOK_MODULE 343 
     163#define TOK_ENDMODULE 344 
     164#define TOK_DOWHILE 345 
     165#define TOK_ALLOCATE 346 
     166#define TOK_OPEN 347 
     167#define TOK_CLOSE 348 
     168#define TOK_INQUIRE 349 
     169#define TOK_WRITE 350 
     170#define TOK_READ 351 
     171#define TOK_REWIND 352 
     172#define TOK_DEALLOCATE 353 
     173#define TOK_NULLIFY 354 
     174#define TOK_FIN 355 
     175#define TOK_DEBUT 356 
     176#define TOK_DIMENSION 357 
     177#define TOK_ENDSELECT 358 
     178#define TOK_EXTERNAL 359 
     179#define TOK_INTENT 360 
     180#define TOK_INTRINSIC 361 
     181#define TOK_NAMELIST 362 
     182#define TOK_CASEDEFAULT 363 
     183#define TOK_OPTIONAL 364 
     184#define TOK_POINTER 365 
     185#define TOK_CONTINUE 366 
     186#define TOK_SAVE 367 
     187#define TOK_TARGET 368 
     188#define TOK_QUOTE 369 
     189#define TOK_IMPLICIT 370 
     190#define TOK_NONE 371 
     191#define TOK_CALL 372 
     192#define TOK_STAT 373 
     193#define TOK_POINT_TO 374 
     194#define TOK_COMMON 375 
     195#define TOK_GLOBAL 376 
     196#define TOK_INTERFACE 377 
     197#define TOK_ENDINTERFACE 378 
     198#define TOK_LEFTAB 379 
     199#define TOK_RIGHTAB 380 
     200#define TOK_PAUSE 381 
     201#define TOK_PROCEDURE 382 
     202#define TOK_STOP 383 
     203#define TOK_NAMEEQ 384 
     204#define TOK_REAL8 385 
     205#define TOK_OUT 386 
     206#define TOK_INOUT 387 
     207#define TOK_IN 388 
    198208#define TOK_USE 389 
    199209#define TOK_TRUE 390 
     
    236246#define YYERRCODE 256 
    237247short fortranlhs[] = {                                        -1, 
    238     0,    0,   66,   66,   66,   66,   66,   69,   69,   74, 
    239    74,   74,   74,   74,   80,   76,   70,   70,   70,   70, 
    240    67,   68,   68,   71,   71,   81,   73,   82,   82,   75, 
    241    75,   75,   75,   75,   75,   16,   72,   78,   64,    6, 
    242     6,    6,   83,   83,   83,    5,    5,   22,   22,   77, 
    243    77,   77,   77,   77,   77,   77,   77,   77,   77,   77, 
    244    77,   77,   77,   77,   77,   77,   77,   77,   77,   77, 
    245    84,   84,  103,  103,  103,  103,  103,  103,  103,  103, 
    246   103,  103,  103,  103,  103,  103,  103,  103,  103,  103, 
    247   103,  103,  103,  103,  103,  103,   98,   98,   86,   86, 
    248    99,   99,  105,  106,  106,  104,  104,   85,   85,    2, 
    249     2,  108,   87,  100,  101,  101,  101,   49,   49,   89, 
    250    89,   89,   89,  111,  112,  112,  110,  110,  110,   35, 
    251    35,   35,   35,   35,   62,   62,   96,  113,  113,  113, 
    252   113,  114,   95,   95,  115,    3,    3,   92,   92,   91, 
    253    91,   97,   97,   88,   88,   88,  117,  117,  118,  118, 
    254   119,   15,   15,  109,  109,    4,    4,   14,   94,  120, 
    255   120,   90,   90,  121,    1,    1,  107,   21,   21,   21, 
    256    21,  127,  126,  126,  126,  126,  129,  129,  129,  125, 
    257    24,   23,   23,   23,   23,   23,   23,  116,  116,   65, 
    258    65,  124,  124,  124,  131,  131,  128,  128,  128,  128, 
    259    20,   20,  130,  130,  122,  122,  122,  132,  132,  133, 
    260   133,  133,  133,  133,  133,  133,  133,  133,  133,  133, 
    261    59,   59,   59,  102,  102,   11,   11,   12,   12,   13, 
    262    13,   13,   13,   13,   60,   60,   54,   54,   54,   54, 
    263    52,   52,   52,   52,   52,   52,   52,   52,   52,   52, 
    264    52,   52,   52,   52,   52,   52,   52,   52,   52,   52, 
    265    52,   52,   52,   52,   52,   52,   52,   26,   26,   25, 
    266    25,   25,   25,   25,   25,   61,   61,   63,   63,   63, 
     248    0,    0,   65,   65,   65,   65,   65,   68,   68,   73, 
     249   73,   73,   73,   73,   79,   75,   69,   69,   69,   69, 
     250   66,   67,   67,   70,   70,   80,   72,   81,   81,   74, 
     251   74,   74,   74,   74,   74,   16,   71,   77,   33,    6, 
     252    6,    6,   82,   82,   82,    5,    5,   37,   37,   76, 
     253   76,   76,   76,   76,   76,   76,   76,   76,   76,   76, 
     254   76,   76,   76,   76,   76,   76,   76,   76,   76,   76, 
     255   83,   83,  102,  102,  102,  102,  102,  102,  102,  102, 
     256  102,  102,  102,  102,  102,  102,  102,  102,  102,  102, 
     257  102,  102,  102,  102,  102,  102,   97,   97,   85,   85, 
     258   98,   98,  104,  105,  105,  103,  103,   84,   84,    2, 
     259    2,  107,   86,   99,  100,  100,  100,   57,   57,   88, 
     260   88,   88,   88,  110,  111,  111,  109,  109,  109,   46, 
     261   46,   46,   46,   46,   32,   32,   95,  112,  112,  112, 
     262  112,  113,   94,   94,  114,    3,    3,   91,   91,   90, 
     263   90,   96,   96,   87,   87,   87,  116,  116,  117,  117, 
     264  118,   15,   15,  108,  108,    4,    4,   14,   93,  119, 
     265  119,   89,   89,  120,    1,    1,  106,   19,   19,   19, 
     266   19,  126,  125,  125,  125,  125,  128,  128,  128,  124, 
     267   25,   24,   24,   24,   24,   24,   24,  115,  115,   64, 
     268   64,  123,  123,  123,  130,  130,  127,  127,  127,  127, 
     269   36,   36,  129,  129,  121,  121,  121,  131,  131,  132, 
     270  132,  132,  132,  132,  132,  132,  132,  132,  132,  132, 
     271   30,   30,   30,  101,  101,   11,   11,   12,   12,   13, 
     272   13,   13,   13,   13,   62,   62,   61,   61,   61,   61, 
     273   60,   60,   60,   60,   60,   60,   60,   60,   60,   60, 
     274   60,   60,   60,   60,   60,   60,   60,   60,   60,   60, 
     275   60,   60,   60,   60,   60,   60,   60,   39,   39,   38, 
     276   38,   38,   38,   38,   38,   31,   31,   63,   63,   63, 
    267277   63,   63,   63,   63,   63,   63,   63,   63,   63,   63, 
    268    63,   63,   63,   63,   63,   63,   50,   50,   50,   50, 
    269    51,   51,   28,   28,   28,   36,   39,   39,   39,   39, 
    270    17,   38,   30,   40,   40,   42,   42,   41,   41,   43, 
    271    43,   43,   43,   43,   43,   43,   37,   29,   29,   29, 
    272    29,   29,   29,   29,   29,   45,   45,   45,   45,   46, 
    273    46,   44,   48,   48,   47,   47,  123,  123,  134,   27, 
    274    93,   93,   93,   93,  135,   18,    9,    9,   10,    7, 
    275     7,    8,    8,   79,   79,   79,   79,   79,   79,   79, 
    276    79,   79,   79,   79,   79,   79,   79,   79,   79,   79, 
    277    79,   79,   79,   79,   79,   79,   55,   58,   57,   56, 
     278   63,   63,   63,   63,   63,   63,   58,   58,   58,   58, 
     279   59,   59,   40,   40,   40,  133,   48,   48,   48,   48, 
     280   35,   47,   41,   49,   49,   51,   51,   50,   50,   52, 
     281   52,   52,   52,   52,   52,   52,   28,   27,   27,   27, 
     282   27,   27,   27,   27,   27,   26,   26,   26,   26,   54, 
     283   54,   53,   56,   56,   55,   55,  122,  122,  134,   34, 
     284   92,   92,   92,   92,  135,   17,    9,    9,   10,    7, 
     285    7,    8,    8,   78,   78,   78,   78,   78,   78,   78, 
     286   78,   78,   78,   78,   78,   78,   78,   78,   78,   78, 
     287   78,   78,   78,   78,   78,   78,   20,   23,   22,   21, 
    278288  143,  143,  143,  141,  141,  141,  146,  146,  146,  145, 
    279   145,   19,   19,  148,  148,  144,  147,  149,  149,  136, 
     289  145,   18,   18,  148,  148,  144,  147,  149,  149,  136, 
    280290  136,  136,  136,  136,  136,  136,  136,  136,  136,  136, 
    281291  136,  157,  150,  150,  156,  156,  151,  151,  154,  159, 
     
    288298  181,  181,  181,  181,  181,  181,  181,  181,  181,  181, 
    289299  182,  182,  174,  174,  184,  184,  183,  183,  183,  183, 
    290   183,  185,  185,  185,   31,   31,   32,   32,   32,   32, 
    291    32,   32,   32,   32,   33,   33,   33,   33,   33,   34, 
    292    34,  186,  186,  164,  152,  152,  137,  137,  137,  187, 
     300  183,  185,  185,  185,   42,   42,   43,   43,   43,   43, 
     301   43,   43,   43,   43,   44,   44,   44,   44,   44,   45, 
     302   45,  186,  186,  164,  152,  152,  137,  137,  137,  187, 
    293303  187,  187,  188,  189,  189,  139,  139,  138,  138,  140, 
    294   140,  190,  190,  191,  191,  142,   53, 
     304  140,  190,  190,  191,  191,  142,   29, 
    295305}; 
    296306short fortranlen[] = {                                         2, 
     
    317327    3,    0,    2,    3,    1,    3,    2,    3,    1,    1, 
    318328    1,    1,    0,    3,    0,    2,    4,    1,    3,    1, 
    319     1,    1,    2,    1,    2,    1,    1,    1,    1,    1, 
     329    1,    1,    2,    1,    4,    1,    1,    1,    1,    1, 
    320330    1,    1,    1,    1,    1,    0,    3,    1,    3,    1, 
    321331    1,    2,    2,    3,    1,    1,    1,    3,    1,    1, 
     
    363373    0,  451,  365,    0,  182,    0,  193,  192,  197,  195, 
    364374  397,  400,  399,  398,  190,  114,  194,  196,  337,  435, 
    365     0,    0,    0,    0,    0,    0,    0,    0,  378,    4, 
     375    0,    0,    0,    0,    0,  378,    0,    0,    0,    4, 
    366376    0,   21,   21,    0,    0,   21,    0,    0,    0,    0, 
    367377   58,   60,   61,   62,   63,   64,   65,    0,    0,    0, 
     
    372382    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    373383    0,    0,    0,    0,    0,    0,    0,  338,  339,    0, 
    374   346,  349,  348,  341,  342,  343,  340,    0,    0,  247, 
    375   249,    0,    0,  282,    0,    0,  315,    0,  250,    0, 
     384  346,  349,  348,  341,  342,  343,  340,    0,    0,    0, 
     385    0,    0,  249,    0,  247,    0,  282,    0,  315,  250, 
    376386    0,    0,    0,  355,  429,    0,    0,    0,  101,    0, 
    377387  427,    0,    0,  150,    0,  148,    0,  428,    0,  413, 
     
    380390    0,    0,  138,    0,    0,  172,  173,  158,  143,  144, 
    381391  170,    0,  234,  235,    0,   72,   52,    0,    0,    0, 
    382   112,    0,   50,    0,  174,    0,    0,    0,  178,   15, 
    383     0,  380,  381,  379,    0,    0,   10,   11,   39,   21, 
     392  112,    0,   50,    0,  174,  380,  381,  379,    0,    0, 
     393    0,  178,   15,    0,    0,    0,   10,   11,   39,   21, 
    384394   37,   14,    0,    0,    0,    0,  166,  165,    0,    0, 
    385395    0,    0,    0,    0,    0,    0,  120,    0,    0,  137, 
     
    392402    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    393403    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    394     0,    0,    0,  249,    0,    0,    0,    0,    0,    0, 
    395     0,    0,    0,  318,    0,  344,  316,  316,  347,  351, 
    396   345,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    397     0,    0,    0,    0,    0,    0,    0,    0,  283,    0, 
     404    0,    0,  249,    0,    0,    0,    0,    0,    0,    0, 
     405    0,    0,  347,    0,  351,  345,  344,  316,    0,  318, 
     406    0,  316,    0,    0,    0,    0,    0,    0,    0,    0, 
     407    0,    0,    0,    0,    0,    0,    0,    0,    0,  283, 
    398408    0,    0,  392,    0,    0,    0,    0,    0,  109,  152, 
    399409    0,    0,    0,    0,  566,    0,    0,    0,    0,    0, 
     
    422432    0,    0,    0,    0,    0,    0,    0,  393,  104,    0, 
    423433  103,  102,   66,    0,    0,    0,    0,    0,    0,  474, 
    424   476,  473,    0,    0,    0,  377,    0,  163,    0,   99, 
    425     0,  171,   51,    0,  223,  231,  232,  233,  225,    0, 
    426     0,    0,  111,    0,    0,  204,    0,  245,    0,  238, 
    427     0,  240,  433,   31,    0,   54,  167,    0,    0,    0, 
    428     0,  136,    0,    0,    0,    0,  129,    0,    0,    0, 
    429   160,    0,    0,    0,    0,  189,  186,  208,    0,    0, 
    430     0,  367,    0,    0,    0,    0,  449,  441,    0,  486, 
    431   487,    0,    0,    0,    0,  471,  472,    0,    0,    0, 
    432   523,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    433     0,    0,   42,    0,   33,  385,    0,  253,  254,  257, 
    434   260,  262,  263,  264,  265,  266,  261,  267,  268,  269, 
    435   270,  271,  272,  274,  275,  276,  277,  256,    0,    0, 
    436     0,  248,  528,    0,  532,    0,  530,    0,  259,    0, 
    437     0,    0,  326,    0,  329,    0,  321,    0,    0,    0, 
    438     0,    0,    0,    0,  153,  389,    0,    0,    0,  549, 
    439   375,  557,  376,  561,   98,    0,    0,    0,  147,  219, 
    440   217,    0,    0,  206,    0,    0,  237,    0,    0,  122, 
    441     0,    0,    0,    0,    0,  115,    0,  128,    0,  117, 
    442   140,  146,  185,    0,  187,    0,    0,    0,    0,    0, 
    443     0,    0,    0,  447,    0,    0,    0,  497,    0,  479, 
    444     0,    0,  524,  514,   47,   44,    0,    0,    0,    0, 
    445     0,  360,    0,    0,    0,    0,    0,  320,  105,    0, 
    446   553,    0,  100,    0,    0,  199,    0,    0,  239,    0, 
    447   244,  119,    0,    0,    0,    0,    0,  188,  214,    0, 
    448   363,    0,  370,  369,  368,  425,  426,    0,  434,  485, 
    449     0,    0,    0,   45,    0,  537,  539,  538,  352,    0, 
    450     0,  327,    0,    0,  559,    0,    0,  175,    0,  116, 
    451     0,    0,    0,  521,    0,    0,    0,    0,  201,  176, 
    452     0,  372,  371,    0,    0,    0,    0,    0,    0,    0, 
    453     0, 
     434  473,  476,    0,    0,    0,  377,    0,  163,    0,   99, 
     435    0,  171,   51,    0,  223,    0,    0,    0,    0,  111, 
     436    0,    0,  204,    0,  245,    0,  238,    0,  240,  433, 
     437   31,    0,   54,  167,    0,    0,  136,    0,    0,    0, 
     438    0,    0,    0,  129,    0,    0,    0,  160,    0,    0, 
     439    0,    0,  189,  186,  208,    0,    0,    0,  367,    0, 
     440    0,    0,    0,  449,  441,    0,  486,  487,    0,    0, 
     441    0,    0,  471,  472,    0,    0,    0,  523,    0,    0, 
     442    0,    0,    0,    0,    0,    0,    0,    0,    0,   42, 
     443    0,   33,  385,    0,  253,  254,  257,  260,  262,  263, 
     444  264,  265,  266,  261,  267,  268,  269,  270,  271,  272, 
     445  274,  275,  276,  277,  256,    0,    0,    0,  248,  528, 
     446    0,  532,    0,  530,    0,  259,    0,    0,  321,    0, 
     447  326,    0,  329,    0,    0,    0,    0,    0,    0,    0, 
     448    0,  153,  389,    0,    0,    0,  549,  375,  557,  376, 
     449  561,   98,    0,    0,    0,  147,  232,  233,  231,    0, 
     450  219,  217,    0,    0,  206,    0,    0,  237,    0,    0, 
     451  122,    0,    0,    0,    0,    0,    0,  115,  128,    0, 
     452  117,  140,  146,  185,    0,  187,    0,    0,    0,    0, 
     453    0,    0,    0,    0,  447,    0,    0,    0,  497,    0, 
     454  479,    0,    0,  524,  514,   47,   44,    0,    0,    0, 
     455    0,    0,  360,    0,    0,    0,    0,    0,  320,  105, 
     456    0,  553,    0,  100,    0,    0,  199,  225,    0,    0, 
     457  239,    0,  244,  119,    0,    0,    0,    0,    0,  188, 
     458  214,    0,  363,    0,  370,  369,  368,  425,  426,    0, 
     459  434,  485,    0,    0,    0,   45,    0,  537,  539,  538, 
     460  352,    0,    0,  327,    0,    0,  559,    0,    0,  175, 
     461    0,  116,    0,    0,    0,  521,    0,    0,    0,    0, 
     462  201,  176,    0,  372,  371,    0,    0,    0,    0,    0, 
     463    0,    0,    0, 
    454464}; 
    455465short fortrandgoto[] = {                                       1, 
    456   262,  263,   91,  286,  595,  352,  922,  923,  741,  742, 
    457   510,  709,  710,  287,  242,  145,  189,  313,  222,  540, 
    458    92,  596,   93,   94,  190,  355,  191,  192,  193,  194, 
    459   385,  386,  803,  889,  720,  639,  195,  196,  197,  640, 
    460   813,  814,  815,  394,  198,  401,  205,  211,  721,  659, 
    461   643,  199,  551,  356,   96,   97,   98,   99,  699,  712, 
    462   201,  723,  419,  280,  906,   10,  276,   11,  100,   12, 
    463   142,   13,   14,  101,  102,  277,  103,  104,  105,  106, 
    464     0,  107,  775,  255,  215,  245,  108,  109,  110,  111, 
    465   112,  113,  114,  115,  116,  117,  431,  476,  208,  118, 
    466   293,  496,  477,  481,  209,  426,  501,  264,  289,  294, 
    467   119,  297,  120,  300,  121,  839,  122,  304,  305,  252, 
    468   503,  265,  948,  269,  123,  308,  124,  311,  542,  736, 
    469   507,  497,  498,  949,  125,  126,  439,  679,  447,  450, 
     466  262,  263,   91,  286,  595,  352,  924,  925,  738,  739, 
     467  510,  706,  707,  287,  242,  145,  313,  222,   92,   93, 
     468   94,   95,   96,   97,   98,  189,  190,  191,  551,  840, 
     469  192,  718,  280,  193,  194,  540,  596,  195,  355,  196, 
     470  197,  385,  386,  800,  890,  719,  198,  199,  638,  811, 
     471  812,  813,  395,  396,  205,  211,  720,  659,  643,  200, 
     472  356,  709,  420,  907,   10,  276,   11,  100,   12,  142, 
     473   13,   14,  101,  102,  277,  103,  104,  105,  106,    0, 
     474  107,  772,  255,  215,  245,  108,  109,  110,  111,  112, 
     475  113,  114,  115,  116,  117,  431,  476,  208,  118,  293, 
     476  496,  477,  481,  209,  426,  501,  264,  289,  294,  119, 
     477  297,  120,  300,  121,  836,  122,  304,  305,  252,  503, 
     478  265,  950,  272,  123,  308,  124,  311,  542,  733,  507, 
     479  497,  498,  639,  951,  125,  126,  439,  679,  447,  450, 
    470480  127,  128,  202,  129,  320,  552,  130,  228,    0,  131, 
    471   325,  132,  133,  134,  135,  136,  271,  137,  329,  559, 
     481  325,  132,  133,  134,  135,  136,  274,  137,  329,  559, 
    472482  560,  138,  561,  225,  139,  332,  140,  345,  235,    0, 
    473483    0,    0,  580,  581,  346,  585,    0,  566,  347,  568, 
    474   569,  349,  582,  583,  762,    0,  441,  442,    0,    0, 
     484  569,  349,  582,  583,  759,    0,  441,  442,    0,    0, 
    475485    0, 
    476486}; 
    477487short fortransindex[] = {                                      0, 
    478    22,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    479 26786, -322,    0,    0,    0,    0,    0, -309, -309,    0, 
    480   100,    0,    0,25041,  106,  886,  127,  138,    0,25041, 
    481    97,  103,  886,  142,    0,    8,    0,  -15,25041,    0, 
    482     0, -223, -218,    8,    0,  165,    0,    0,    0,    0, 
    483     0,  -13,  177,  193,    0,    0,   92,   92, -153,    0, 
    484   196,    0,    0, -222,    0,    0, -138,    8,    8,    0, 
    485  -160,    0,    0,  -84,    0,    8,    0,    0,    0,    0, 
    486     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    487   221,   27,  228,  216,  217,    8,    8,    8,    0,    0, 
    488   225,    0,    0, -105, -322,    0,   36,  -12,  277,  281, 
    489     0,    0,    0,    0,    0,    0,    0,  -49,  -88,  359, 
    490   277,  -80,  240, -255,   33,    0,    0, 4745,  -16,25041, 
    491    41,    0,    0,    0,  886,  391,  417,   65,  449,  379, 
    492     0,    0,    0,    0,    0,  480,25041,25041,    0,    0, 
    493 25041,  492,  514,  536,25041,25041,25041,  538,  543,  548, 
    494   552,  553,  554,  563,  565,  577,  581,  590,  591,  595, 
    495 25041,  597,  599,  604,  609,  610,25093,    0,    0,  622, 
    496     0,    0,    0,    0,    0,    0,    0,25041,  634,    0, 
    497     0,  453,  135,    0,  640,  644,    0,  -11,    0,26791, 
    498 25041,  110,25041,    0,    0,26791,  150,  487,    0,25041, 
    499     0,26791,  511,    0,  243,    0,  243,    0,25041,    0, 
    500     0,    0,    0,25041,    0,16959,    0,    0,    0,    0, 
    501   150,    0,    0,25222,    0,  150,  150,  243, 1417,    0, 
    502   249,  150,    0,25041,  641,    0,    0,    0,    0,    0, 
    503     0,  648,    0,    0,   92,    0,    0,  279,  490,  646, 
    504     0,  668,    0, -309,    0,  294,25270, -255,    0,    0, 
    505   686,    0,    0,    0,26786, -322,    0,    0,    0,    0, 
    506     0,    0, -309,  658,  313,  703,    0,    0,  226,  335, 
    507   226,    1,   84,   30,  686,  335,    0,  150,  226,    0, 
    508   337,  686,  350,  728,    0,   -9, 1465,    0,24013,    0, 
    509   732,    0,  730,    0,  744,  759,    0,    0,  277,  150, 
    510 26791,25041,25041,  150,    0,    0,  369, 2564,    0,    0, 
    511   834,    0,    0,    0,    0,25041,25041,25041,25041,  760, 
    512   834,  453,  135, 1958,    0,  771,  289,    0,  826,    0, 
    513     9,  546,25737,  491,  178,26791,25041,25041,25041,  395, 
    514 25759,  429,25041,25041,25041,25041,25041,25041,25041,25041, 
    515 25041,25041,25041,25041,25041,25785,25041,25041,25041,25041, 
    516 25041,25093,  785,    0,  451,  791,  797,    0,26791,25041, 
    517   803,25841,25041,    0,  150,    0,    0,    0,    0,    0, 
    518     0,24395,25041,25041,25041,25041,25041,25041,25041,25041, 
    519 25041,25041,25041,25041,24061,25041,24524,24576,    0,26791, 
    520 25041,25041,    0,25855,  686,  439,  127,25869,    0,    0, 
    521   807,  807,25883, 2174,    0,  453,  815,  644,  812,  822, 
    522     0,    0,  821,  823,  334,  815,  819,    0,    0,  503, 
    523   807,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    524     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    525     0,    0,    0,    0,    0,  824,    0,  593,    0,26791, 
    526   505,  827,  458,    8,  686,    0,    0,  686,    0, -210, 
    527     0,    0,    0,    0,    0,    0,  114,    0,    0,    0, 
    528     0,  480,  461,    0, 3107,26791,    0,  840,24190,  686, 
    529     0,    0,    0,    0,  480,25041,  527,  313,  277,    0, 
    530   277,  494,25041,    0,  465,  466,  494,    0,    0,    0, 
    531   277,  686,    0,  728,  350,    0, 1465,    0,24347,  841, 
    532 26791,  843, 3650,    0,    0, -219,  150,  150,    0,    0, 
    533   828,    0,26791,26791,    0,    0,  473,26791,  859,  857, 
    534     0,    0,    0,23867,  826,  560,   47,    0,    0,26791, 
    535 26791,26791,26791,25041,  245, 1958,  453, 4747,26791,    0, 
    536   861,    0,26791, 1958,    0,  826,  826,  826,  826,  826, 
    537   633,    0,    0,    0,  566,    0,  867,  886,25041,    0, 
    538   578,  582,25919,    0,    0,    0,25933,25973,25999,26021, 
    539 26035,26116,26166,26213,26268,26282,26296,26310,26349,    0, 
    540   584,  607,  613,  614,  615,  864,  866,  868,26363,25093, 
    541     0,25093,25093,  620,25041,    0,  855,  453,24705,  873, 
    542   874,25041,    0,26791, 1067, 1067,  491,  192,  192,  192, 
    543   192,  192,  192,  170,  170,   82,25041,25041,    0,26791, 
    544    82,25041,  192,25041,  192,26791,26791,    0,    0,  150, 
    545     0,    0,    0,  499,  588,25041,24705, -272,  887,    0, 
    546     0,    0, -272,  889,  150,    0, 1417,    0,25041,    0, 
    547 25041,    0,    0,  885,    0,    0,    0,    0,    0,  490, 
    548   877,  515,    0,  686,  897,    0,25041,    0,  629,    0, 
    549 26463,    0,    0,    0,26791,    0,    0,  350,  335,  467, 
    550   667,    0,  420,26399,  671,  902,    0,  675,  150,  885, 
    551     0,  903, 3650,  841,  531,    0,    0,    0,  894,  586, 
    552   915,    0,  812,  819,25041,  686,    0,    0, 2564,    0, 
    553     0,24705,  626,  250,  834,    0,    0,26791,    0,  631, 
    554     0,26791,26791, 1958,26791,  861,  234,  633,  633,  633, 
    555    24,    3,    0,   11,    0,    0,26791,    0,    0,    0, 
    556     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    557     0,    0,    0,    0,    0,    0,    0,    0,25399,25399, 
    558 25399,    0,    0,26791,    0,26791,    0,26791,    0,  923, 
    559 25041,24864,    0,  922,    0,26542,    0,  634,  192,  192, 
    560    82,  192,  192,  686,    0,    0,26427,  638,  906,    0, 
    561     0,    0,    0,    0,    0,26791,  649,25447,    0,    0, 
    562     0,  686,  885,    0,26791,24190,    0, 4193,  728,    0, 
    563   494,  494,  494,  494,  494,    0,  135,    0,  494,    0, 
    564     0,    0,    0,  841,    0, 3650,   10,  569,  570,  947, 
    565   950,26595,  686,    0,  978,17399,  150,    0,  289,    0, 
    566  2020,26791,    0,    0,    0,    0,  650,  959,  981,  987, 
    567  1004,    0, 1005,25041,26695,24705,25041,    0,    0, 1003, 
    568     0,  150,    0,24912,26791,    0,  885,    0,    0,26791, 
    569     0,    0,   83,   83, 1001,  544,  780,    0,    0,  684, 
    570     0, 1012,    0,    0,    0,    0,    0,25041,    0,    0, 
    571   822, 1019,26791,    0,25041,    0,    0,    0,    0,26791, 
    572 25041,    0,26709,25041,    0, 1022,    0,    0, 1010,    0, 
    573   655,  659,26641,    0,26730,26791,25041,26791,    0,    0, 
    574 25041,    0,    0,25041,25041,26791,26791,26791,26756,25041, 
    575 26791, 
     488   23,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     48925815, -367,    0,    0,    0,    0,    0, -320, -320,    0, 
     490  122,    0,    0, 7265,  127, 5708,  198,  203,    0, 7265, 
     491  105,  108, 5708,  210,    0,    3,    0,  -10, 7265,    0, 
     492    0, -227, -189,    3,    0,  218,    0,    0,    0,    0, 
     493    0,  -13,  227,  229,    0,    0,  194,  194, -116,    0, 
     494  235,    0,    0, -277,    0,    0,  -86,    3,    3,    0, 
     495 -126,    0,    0,  167,    0,    3,    0,    0,    0,    0, 
     496    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     497  253,   37,    3,    3,    3,    0,  260,   89,  268,    0, 
     498  279,    0,    0,  -29, -367,    0,  121,  -14,  363,  365, 
     499    0,    0,    0,    0,    0,    0,    0,    4,  -89,  379, 
     500  363,  -49,  131, -225,   10,    0,    0, 2476,    9, 7265, 
     501   22,    0,    0,    0, 5708,  406,  434,   95,  461, 5131, 
     502    0,    0,    0,    0,    0,  476, 7265, 7265,    0,    0, 
     503 7265,  482,  501,  530, 7265, 7265, 7265,  531,  541,  542, 
     504  555,  572,  574,  582,  589,  591,  619,  634,  647,  651, 
     505 7265,  652,  656,  661,  662,  673, 7784,    0,    0,  688, 
     506    0,    0,    0,    0,    0,    0,    0, 7265,   -6,  112, 
     507  708, 7265,    0,  709,    0,  583,    0,  710,    0,    0, 
     508 2572,  117, 7265,    0,    0, 2572,  309,  641,    0, 7265, 
     509    0, 2572,  694,    0,  341,    0,  341,    0, 7265,    0, 
     510    0,    0,    0, 7265,    0, 3642,    0,    0,    0,    0, 
     511  309,    0,    0, 8303,    0,  309,  309,  341, 3655,    0, 
     512  342,  309,    0, 7265,  716,    0,    0,    0,    0,    0, 
     513    0,  717,    0,    0,  194,    0,    0,  346,  453,  711, 
     514    0,  723,    0, -320,    0,    0,    0,    0,  344, 8822, 
     515 -225,    0,    0,  730,25815, -367,    0,    0,    0,    0, 
     516    0,    0, -320,  718,  354,  734,    0,    0,  234,  368, 
     517  234,   -2,   55,   28,  730,  368,    0,  309,  234,    0, 
     518  370,  730,  371,  745,    0,   -8,23686,    0,23298,    0, 
     519  749,    0,  747,    0,  762,  763,    0,    0,  363,  309, 
     520 2572, 7265, 7265,  309,    0,    0,  382,23815,    0,    0, 
     521  478,    0,    0,    0,    0, 7265, 7265, 7265, 7265,  754, 
     522  478,  112,  583, 1955,    0,  765,  493,    0,  287,    0, 
     523   12,  545,24724, 3819,   75, 2572, 7265, 7265, 7265,   84, 
     52424798,  172, 7265, 7265, 7265, 7265, 7265, 7265, 7265, 7265, 
     525 7265, 7265, 7265, 7265, 7265,24850, 7265, 7265, 7265, 7265, 
     526 7265, 7784,    0,  772,  439,  780,  782,    0, 2572, 7265, 
     527  788,24884,    0, 7265,    0,    0,    0,    0, 2572,    0, 
     528  309,    0,23975, 7265, 7265, 7265, 7265, 7265, 7265, 7265, 
     529 7265, 7265, 7265, 7265, 7265,23346, 7265,24023,24152,    0, 
     530 7265, 7265,    0,24898,  730,  224,  198,24957,    0,    0, 
     531  789,  789,24971,25560,    0,  794,  583,  710,  791,  799, 
     532    0,    0,  796,  515,  797,  794,  795,    0,    0,  246, 
     533  789,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     534    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     535    0,    0,    0,    0,    0,  798,    0,  576,    0, 2572, 
     536  330,  801,  427,    3,  730,    0,    0,  730,    0,  815, 
     537    0,    0,    0,    0,    0,    0,   63,    0,    0,    0, 
     538    0,  476,  442,    0,24200, 2572,    0,  819,23475,  730, 
     539    0,    0,    0,    0,  476, 7265,  364,  354,  363,    0, 
     540  363,  160, 7265,    0,  444,  446,  160,    0,    0,    0, 
     541  363,  730,    0,  745,  371,    0,23686,    0,23638,  812, 
     542 2572,  821,24334,    0,    0, -228,  309,  309,    0,    0, 
     543  803,    0, 2572, 2572,    0,    0,  448, 2572,  829,  831, 
     544    0,    0,    0,23146,  287,  381,  231,    0,    0, 2572, 
     545 2572, 2572, 2572, 7265,  594, 1955, 1073,  583, 2572,    0, 
     546  832,    0, 2572, 1955,    0,  287,  287,  287,  287,  287, 
     547  604,    0,    0,    0,  421,    0,  838, 5708, 7265,    0, 
     548  431,  435,24985,    0,    0,    0,25012,25034,25064,25131, 
     54925145,25226,25248,25278,25300,25314,25328,25378,25392,    0, 
     550  445,  456,  473,  489,  498,  835,  836,  842,25406, 7784, 
     551    0, 7784, 7784,  510, 7265,    0,  824,  846, 6227,  583, 
     552  855, 7265,    0, 2572, 3284, 3284, 3819,  672,  672,  672, 
     553  672,  672,  672,   88,   88,   60, 7265, 7265,    0, 2572, 
     554   60, 7265,  672, 7265,  672, 2572, 2572,    0,    0,  309, 
     555    0,    0,    0,  480,  566, 7265, 6227, -273,  858,    0, 
     556    0,    0, -273,  859,  309,    0, 3655,    0, 7265,    0, 
     557 7265,    0,    0,  861,    0,  263,  453,  849,  492,    0, 
     558  730,  869,    0, 7265,    0,  516,    0, 9858,    0,    0, 
     559    0, 2572,    0,    0,  371,  368,    0,  514,  502,  642, 
     56025420,  643,  872,    0,  644,  309,  861,    0,  876,24334, 
     561  812,  506,    0,    0,    0,  860,  554,  885,    0,  791, 
     562  795, 7265,  730,    0,    0,23815,    0,    0, 6227, 3136, 
     563  621,  478,    0,    0, 2572,    0,  539,    0, 2572, 2572, 
     564 1955, 2572,  832,   94,  604,  604,  604,   49,  -11,    0, 
     565   15,    0,    0, 2572,    0,    0,    0,    0,    0,    0, 
     566    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     567    0,    0,    0,    0,    0, 9341, 9341, 9341,    0,    0, 
     568 2572,    0, 2572,    0, 2572,    0,  889, 7265,    0, 6746, 
     569    0,  887,    0,12884,  709,  672,  672,   60,  672,  672, 
     570  730,    0,    0,25462,  547,  871,    0,    0,    0,    0, 
     571    0,    0, 2572,  552,24559,    0,    0,    0,    0,  892, 
     572    0,    0,  730,  861,    0, 2572,23475,    0,24382,  745, 
     573    0,  112,  160,  160,  160,  160,  160,    0,    0,  160, 
     574    0,    0,    0,    0,  812,    0,24334,   11,  517,  519, 
     575  896,  899,25574,  730,    0,  900, 4692,  309,    0,  493, 
     576    0, 1999, 2572,    0,    0,    0,    0,  558,  886,  905, 
     577  908,  909,    0,  911, 7265,25652, 6227, 7265,    0,    0, 
     578  910,    0,  309,    0,24511, 2572,    0,    0,  861,    0, 
     579    0, 2572,    0,    0,  110,  110,  906,  239,  697,    0, 
     580    0,  584,    0,  926,    0,    0,    0,    0,    0, 7265, 
     581    0,    0,  799,  931, 2572,    0, 7265,    0,    0,    0, 
     582    0, 2572, 7265,    0,25724, 7265,    0,  932,    0,    0, 
     583  933,    0,  608,  610,25676,    0,25745, 2572, 7265, 2572, 
     584    0,    0, 7265,    0,    0, 7265, 7265, 2572, 2572, 2572, 
     58525806, 7265, 2572, 
    576586}; 
    577587short fortranrindex[] = {                                      0, 
    578 23644,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    579   116,23498,    0,    0,    0,    0,    0,    0,    0,    0, 
    580     0,    0,    0,    0,    0,    0,    0,    0,    0,23345, 
    581   660,  660,    0,    0,    0,    0,    0,    0,    0,    0, 
    582     0,22737,    0,    0,    0,    0,    0,    0,    0,    0, 
    583     0,    0,    0,    0,    0,    0,  660, 1518,    0,    0, 
    584     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    585     0,    0,    0,    6,    0,    0,    0,    0,    0,    0, 
    586     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    587 18169,  698,   21,   28,   -4,    0,    0,    0,    0,    0, 
    588 22890,    0,    0,    0,23498,    0,    0,    0,13877,14035, 
    589     0,    0,    0,    0,    0,    0,    0,    0,18331,14185, 
    590   702,    0,   29,    0,    0,    0,    0,    0,23041,    0, 
    591     0,    0,    0,    0,    0,18481,18635,    0,    0,    0, 
    592     0,    0,    0,    0,    0,17136,    0,    0,    0,    0, 
    593     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    594     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    595     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    596     0,    0,    0,    0,    0,    0,    0,    0, 1264,    0, 
    597     0, 2740, 2906,    0, 1641, 1807,    0, 1098,    0,  130, 
    598     0,    0,    0,    0,    0,18785,    0,18939,    0,    0, 
    599     0,14435,    0,    0,    0,    0,    0,    0,    0,    0, 
    600     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    601     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    602     0,    0,    0,    0,19089,    0,    0,    0,    0,    0, 
    603     0,19243,    0,    0,   16,    0,    0,    0,    0,    0, 
    604     0,19393,    0,    0,    0,    0,    0,    0,    0,    0, 
    605    -7,    0,    0,    0,  116,23498,    0,    0,    0,    0, 
    606     0,    0,    0,    0,    0,19547,    0,    0,    0,14585, 
    607     0, 1021,  702,    0,12267,14585,    0,  253,    0,    0, 
    608     0,12267,    0,14743,    0,    0,    0,    0, 1025,    0, 
    609     0,    0,19697,    0,    0,    0,    0,    0,19851,23194, 
    610 20001,    0,    0,    0,    0,    0,    0, 1048,    0,    0, 
    611     0,    0,    0,    0,    0,    0,    0,    0,    0, 5591, 
    612     0,10069,10219, 5074,    0,20155,    0,10479,    0,    0, 
    613     0,20305,    0, 5968,    0,  656,    0,    0,    0,    0, 
    614     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    615     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    616     0,    0, 5306,    0,    0,  720,  733,16990,    0,    0, 
    617 24021,    0, 1053,    0,    0,    0,    0,    0,    0,    0, 
    618     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    619     0,    0,    0,    0, 4912,    0,    0,    0,    0,11455, 
    620     0,    0,    0,    0,  657,    0,    0,    0,    0,    0, 
    621 20459,20609,    0,    0,    0,    0,  218,  501, 1076,  662, 
    622     0,    0, 4797,26827,25608,  529, 1076,    0,    0,    0, 
    623 20763,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    624     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    625     0,    0,    0,    0,    0,20913,    0,    0,    0,  664, 
    626     0,    0,    0,    0,14952,    0,    0,  149,    0,    0, 
    627     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    628     0,21067,    0,    0,    0,   71,    0,    0,    0,   -7, 
    629     0,    0,    0,    0,21067,    0,    0,    0,  702,    0, 
    630 15110,  512,    0,    0,    0,    0,  512,    0,    0,    0, 
    631   702,14952,    0,15260,    0,    0,    0,    0,  540, 1077, 
    632   670,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    633     0,    0,21217,21371,    0,    0,    0,  672,    0, 1079, 
    634     0,    0,    0,   56,    0,    0, 1078,    0,    0,12517, 
    635 12667,12917,13067,    0, 1078,25686, 3992,17394,15510,    0, 
    636 21521,    0,15510, 5441,    0,    0,    0,    0,    0,    0, 
    637 10629,    0,    0,    0,    0,    0,21675,    0,    0,    0, 
    638     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    639     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    640     0,    0,    0,    0,    0,26449,    0,    0,    0,    0, 
    641     0,    0,    0,    0,    0,    0,    0, 2197, 1080,    0, 
    642     0,    0,    0,11705, 9657, 9807, 6118, 6495, 6645, 7022, 
    643  7172, 7549, 7699, 4369, 4535, 3283,    0,    0,    0,11855, 
    644  3449,    0, 8076,    0, 8226,  132,  160,    0,    0,    0, 
    645     0,    0,    0,    0,    0,    0, 1085,    0,    0,    0, 
    646     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    647     0,    0,    0,17545,    0,    0,    0,    0,    0,    0, 
    648     0,    0,    0,13327,    0,    0,  679,    0,    0,    0, 
    649   683,    0,    0,    0,15660,    0,    0,    0,14585,  858, 
    650     0,    0,    0,    0,    0,   54,    0,    0,    0,17545, 
    651     0,    0,    0, 1077,    0,    0,    0,    0,    0,    0, 
    652 21825,    0, 1076, 1076,    0,   -7,    0,    0,    0,    0, 
    653     0,    0,  694,    0,    0,    0,    0,13477,  689,    0, 
    654     0,15887,16037, 5441,16264,21979,13727,10892,11042,11305, 
    655 12117,    0,    0,    0,    0,    0,  695,    0,    0,    0, 
    656     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    657     0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
    658     0,    0,    0,   -6,    0,   18,    0,   51,    0,26777, 
    659  1093,  699,    0, 1096,    0,  700,    0, 2363, 8603, 8753, 
    660  3826, 9130, 9280,  657,    0,    0,    0,    0,    0,    0, 
    661     0,    0,    0,    0,    0,  701,    0,    0,    0,    0, 
    662     0,13327,16414,    0,  721,    0,    0,  727,16572,    0, 
    663   512,  512,  512,  512,  512,    0,   94,    0,  512,    0, 
    664     0,    0,    0, 1077,    0,    0,    0,    0,    0,    0, 
    665     0,    0,   -7,    0,    0,    0,    0,    0,  737,    0, 
    666 25686,15510,    0,    0,    0,    0,    0,25018,    0,    0, 
    667     0,    0,    0,    0,  738,    0,  739,    0,    0,    0, 
    668     0,    0,    0,    0,17707,    0,16414,16727,    0,  683, 
    669     0,    0,   90,  450,  204,   61,    0,    0,    0,17857, 
    670     0,22129,    0,    0,    0,    0,    0,    0,    0,    0, 
    671   753,    0,16985,    0,    0,    0,    0,    0,    0,  754, 
    672     0,    0,  784,    0,    0,    0,16727,    0,    0,    0, 
    673     0,    0,22283,    0,    0,  802,    0,22433,    0,    0, 
    674     0,    0,    0,    0,    0,  804,18019,22587, 1097,    0, 
    675  1103, 
     588 1436,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     589  278,22929,    0,    0,    0,    0,    0,    0,    0,    0, 
     590    0,    0,    0,    0,    0,    0,    0,    0,    0,22779, 
     591  633,  633,    0,    0,    0,    0,    0,    0,    0,    0, 
     592    0,22305,    0,    0,    0,    0,    0,    0,    0,    0, 
     593    0,    0,    0,    0,    0,    0,  633, 4087,    0,    0, 
     594    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     595    0,    0,    0,    2,    0,    0,    0,    0,    0,    0, 
     596    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     59717625,  646,    0,    0,    0,    0,   29,   26,   52,    0, 
     598  901,    0,    0,    0,22929,    0,    0,    0,13487,13649, 
     599    0,    0,    0,    0,    0,    0,    0,    0,17787,13799, 
     600  649,    0,   27,    0,    0,    0,    0,    0,22467,    0, 
     601    0,    0,    0,    0,    0,17937,18099,    0,    0,    0, 
     602    0,    0,    0,    0,    0,16632,    0,    0,    0,    0, 
     603    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     604    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     605    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     606    0,    0,    0,    0,    0,    0,    0,    0, 1104, 2709, 
     607 1270,    0,    0, 1639,    0, 2875,    0, 1805,    0,    0, 
     608  144,    0,    0,    0,    0,18249,    0,18411,    0,    0, 
     609    0,14018,    0,    0,    0,    0,    0,    0,    0,    0, 
     610    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     611    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     612    0,    0,    0,    0,18561,    0,    0,    0,    0,    0, 
     613    0,18723,    0,    0,   14,    0,    0,    0,    0,    0, 
     614    0,18873,    0,    0,    0,    0,    0,    0,    0,    0, 
     615    0,    0,    0,   73,  278,22929,    0,    0,    0,    0, 
     616    0,    0,    0,    0,    0,19035,    0,    0,    0,14168, 
     617    0,  948,  649,    0,11970,14168,    0,  292,    0,    0, 
     618    0,11970,    0,14330,    0,    0,    0,    0,  952,    0, 
     619    0,    0,19185,    0,    0,    0,    0,    0,19347,22617, 
     62019497,    0,    0,    0,    0,    0,    0,  956,    0,    0, 
     621    0,    0,    0,    0,    0,    0,    0,    0,    0, 5530, 
     622    0,10094, 9944, 5011,    0,19659,    0,10313,    0,    0, 
     623    0,19809,    0, 5899,    0,  559,    0,    0,    0,    0, 
     624    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     625    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     626    0,    0,    0,  585,    0,  653,  671, 4206,    0,    0, 
     627 4741,    0,    0,  997,    0,    0,    0,    0,11201,    0, 
     628    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     629    0,    0,    0,    0,    0, 4849,    0,    0,    0,    0, 
     630    0,    0,    0,    0,  560,    0,    0,    0,    0,    0, 
     63119971,20121,    0,    0,    0,  128,    0,  140, 1018,  569, 
     632    0,    0, 2601, 3671, 3107,  150, 1018,    0,    0,    0, 
     63320283,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     634    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     635    0,    0,    0,    0,    0,20433,    0,    0,    0,  575, 
     636    0,    0,    0,    0,14537,    0,    0,   91,    0,    0, 
     637    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     638    0,20595,    0,    0,    0,   54,    0,    0,    0,   73, 
     639    0,    0,    0,    0,20595,    0,    0,    0,  649,    0, 
     64014694,  748,    0,    0,    0,    0,  748,    0,    0,    0, 
     641  649,14537,    0,14849,    0,    0,    0,    0,  532, 1023, 
     642  580,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     643    0,    0,20745,20907,    0,    0,    0,  616,    0, 1027, 
     644    0,    0,    0,  101,    0,    0, 1025,    0,    0,12189, 
     64512339,12558,12708,    0, 1025,23307,16851, 3945,15063,    0, 
     64621057,    0,15063, 5380,    0,    0,    0,    0,    0,    0, 
     64710463,    0,    0,    0,    0,    0,21219,    0,    0,    0, 
     648    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     649    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     650    0,    0,    0,    0,    0,25492,    0,    0,    0,    0, 
     651    0,    0,    0,    0,    0,    0,    0,    0, 1033, 2174, 
     652    0,    0,    0,11451, 9532, 9682, 6049, 6418, 6568, 6937, 
     653 7087, 7456, 7606, 4314, 4480, 3244,    0,    0,    0,11601, 
     654 3410,    0, 7975,    0, 8125,  193,  219,    0,    0,    0, 
     655    0,    0,    0,    0,    0,    0, 1034,    0,    0,    0, 
     656    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     657    0,    0,    0,17001,    0,    0,    0,    0,    0,    0, 
     65812968,    0,    0,  617,    0,    0,    0,  627,    0,    0, 
     659    0,15218,    0,    0,    0,14168,    0,    0,  807,    0, 
     660    0,    0,   33,    0,    0,    0,17001,    0,    0,    0, 
     661 1023,    0,    0,    0,    0,    0,    0,21369,    0, 1018, 
     662 1018,    0,   73,    0,    0,    0,    0,    0,    0,  628, 
     663    0,    0,    0,    0,13118,  695,    0,    0,15432,15587, 
     664 5380,15801,21531,13337,10682,10832,11051,11820,    0,    0, 
     665    0,    0,    0,  632,    0,    0,    0,    0,    0,    0, 
     666    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     667    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     668  -16,    0,  -15,    0,   -5,    0,25820, 1039,    0,  638, 
     669    0, 1040,    0,  640, 2340, 8494, 8644, 3779, 9013, 9163, 
     670  560,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     671    0,    0,  645,    0,    0,    0,    0,    0,    0,    0, 
     672    0,    0,12968,15956,    0,  666,    0,    0,  668,16113, 
     673    0,  212,  748,  748,  748,  748,  748,    0,    0,  748, 
     674    0,    0,    0,    0, 1023,    0,    0,    0,    0,    0, 
     675    0,    0,    0,   73,    0,    0,    0,    0,    0,  675, 
     676    0,23307,15063,    0,    0,    0,    0,    0, 2070,    0, 
     677    0,    0,    0,    0,    0,  679,    0,  680,    0,    0, 
     678    0,    0,    0,    0,    0,17163,    0,    0,15956,16268, 
     679    0,  627,    0,    0,   59,  188,  523,   44,    0,    0, 
     680    0,17313,    0,21681,    0,    0,    0,    0,    0,    0, 
     681    0,    0,  686,    0,16482,    0,    0,    0,    0,    0, 
     682    0,  692,    0,    0,  700,    0,    0,    0,16268,    0, 
     683    0,    0,    0,    0,21843,    0,    0,  701,    0,21993, 
     684    0,    0,    0,    0,    0,    0,    0,  702,17475,22155, 
     685 1041,    0, 1042, 
    676686}; 
    677687short fortrangindex[] = {                                      0, 
    678     0,    0,    0,  862,  372, -388,    0,  198,    0,  282, 
    679  -260,    0,  302,  635,  -38,   93,    0,    0,  -21, -301, 
    680     0,  380,    0,    0, -167,  459, -158, -135, -128,    0, 
    681     0,  772, -155, -718, -256,    0,   32, -187,    0,  757, 
    682   265,  485,  411, -194,    0,    0,  -26, -380, -488,    0, 
    683     0, -174,    0,  -24,    0,    0,    0,    0,    0,  316, 
    684  -296,    0, -398,    0,    0,    0, 1156,    0,  891,    0, 
    685   -65,  -79, 1154,    0,    0,   14,    0,    0,    0,    0, 
    686     0,    0,    0,    0,   99,    0,    0,    0,    0,    0, 
    687     0,    0,    0,    0,    0,    0,  -95,    0,    0,    0, 
    688     0, 1094,  482,  479,  747,    0,    0,    0,  -52,  645, 
    689     0, -279,    0,    0,    0, -684,    0, -289,  647,    0, 
    690   676,    0,  236,    0,    0,    0,    0,  907,  651, -635, 
    691     0,    0,  481,    0,    0, 1056,  639, -337,  637,    0, 
     688    0,    0,    0,  810,  338, -375,    0,  159,    0,  247, 
     689 -284,    0,  274,  605,  -74,  135,    0,  -27,    0,    0, 
     690    0,    0,    0,    0,    0,    0, -120,    5,    0,    0, 
     691 -329,    0,    0, -142,    0, -290,  353, -152,  450, -135, 
     692    0,    0,  742, -155, -722, -418, -185,    0,  724,  228, 
     693  451,  378, -190,    0,  -26, -384, -484,    0,    0, -174, 
     694  -24,  280, -403,    0,    0, 1121,    0,  856,    0,  -12, 
     695  -63, 1119,    0,    0,   40,    0,    0,    0,    0,    0, 
     696    0,    0,    0,  187,    0,    0,    0,    0,    0,    0, 
     697    0,    0,    0,    0,    0, -112,    0,    0,    0,    0, 
     698 1062,  455,  449,  725,    0,    0,    0,  -58,  611,    0, 
     699 -282,    0,    0,    0, -647,    0, -280,  609,    0,  650, 
     700    0,  204,    0,    0,    0,    0,  897,  606, -687,    0, 
     701    0,  459,    0,    0,    0, 1043,  620, -386,  622,    0, 
    692702    0,    0,    0,    0,    0,    0,    0,    0,    0, -230, 
    693     0,    0,    0,    0,    0,    0,  632,    0,    0,    0, 
    694     0,    0,  448,  661,    0, 1061,    0,    0,    0,    0, 
    695     0,    0,    0, -387,    0,    0,    0,    0,  -60,  447, 
    696  1066, -267, -694,    0, -523,    0, -212,    0,    0,    0, 
     703    0,    0,    0,    0,    0,    0,  614,    0,    0,    0, 
     704    0,    0,  428,  618,    0, 1036,    0,    0,    0,    0, 
     705    0,    0,    0, -425,    0,    0,    0,    0, -294,  426, 
     706 1047, -257, -675,    0, -505,    0, -196,    0,    0,    0, 
    697707    0, 
    698708}; 
    699 #define YYTABLESIZE 27210 
    700 short fortrantable[] = {                                     200, 
    701   440,  206,  388,  400,  342,  212,  218,  544,  206,  383, 
    702   520,  343,  637,  534,  226,   71,  529,  221,  384,  921, 
    703   391,  387,  230,  448,  224,  108,  234,  285,  393,  236, 
    704   537,    9,  432,  236,  528,  432,  236,  527,  728,  281, 
    705   523,  533,   95,  438,  592,  862,  249,  250,  438,  594, 
    706   592,  886,  592,  236,  257,  763,  432,  291,  739,  765, 
    707   191,  531,  350,   71,  191,  587,  444,  299,  301,  884, 
    708   259,  202,  183,  526,  272,  273,  274,  324,  191,  590, 
    709   296,  890,  891,  303,  260,  202,  183,  757,  587,  333, 
    710   243,  334,  337,  524,  529,  436,  337,  127,  865,  337, 
    711   436,  322,  141,  829,  134,  321,  214,  144,  326,  684, 
    712   206,  146,  216,  703,  205,   30,  278,  240,  241,  282, 
    713   696,  432,  353,  354,  854,   30,  714,  288,  205,  855, 
    714   217,  361,  131,  131,  131,  130,  130,  130,  130,  147, 
    715   130,  417,  451,  418,   89,  203,  376,  697,  698,  213, 
    716   423,  246,  389,  421,  213,  238,  239,  700,  908,  317, 
    717   213,  309,  932,  392,  669,  247,  207,  422,  310,  579, 
    718   401,  701,  402,  401,   30,  402,  420,  210,  424,  761, 
    719   761,  219,  240,  241,  761,  428,  884,  401,  760,  402, 
    720   240,  241,  236,  227,  433,  342,  766,  740,  229,  434, 
    721   403,  514,  343,  403,  231,  342,  236,  388,  577,  389, 
    722   512,  414,  343,  342,  626,  578,  236,  403,  600,  480, 
    723   343,  599,  947,  384,  694,  722,  628,  695,  918,  417, 
    724   722,  418,  237,  414,  412,  244,  413,  734,  425,  248, 
    725   525,  738,  506,  253,  254,  133,  133,  133,  133,  713, 
    726   519,  417,  521,  418,  313,  268,  251,  267,  432,  638, 
    727   531,  432,  437,   89,  258,  445,  549,  446,  449,  266, 
    728   567,  730,  522,  479,  270,  587,  333,    2,  334,  307, 
    729   575,  306,  541,  275,  541,  759,  587,  333,  591,  334, 
    730   878,  587,  333,  513,  334,  588,  589,  553,  554,  590, 
    731   279,  527,  191,  558,    3,    4,   95,  590,  261,  202, 
    732   183,  570,  571,  572,  573,  283,  440,  586,  588,  589, 
    733   288,    5,    6,  590,  290,  127,  337,  337,  295,  530, 
    734   587,  333,  134,  334,  603,  448,  302,  391,  607,  608, 
     709#define YYTABLESIZE 26239 
     710short fortrantable[] = {                                     201, 
     711  440,  206,  388,  400,  343,  212,  218,  520,  206,  637, 
     712  528,   71,  221,  529,  226,   99,  230,  533,  544,  342, 
     713  923,  387,  534,  108,  384,  285,  234,  527,  531,  224, 
     714  592,  537,    9,  394,  383,  391,  567,  523,  529,  448, 
     715  249,  250,  725,  866,  296,  438,  575,  303,  257,  736, 
     716  438,  291,  594,  592,  591,  887,  592,  141,  324,   71, 
     717  684,  299,  301,  243,  524,  266,  267,  268,  191,  202, 
     718  183,  526,  191,  760,  891,  892,  127,  762,  350,  863, 
     719  259,  445,  322,  202,  183,  885,  191,  134,  432,  590, 
     720  587,  432,  281,  246,  260,  437,  144,  205,  288,  826, 
     721  437,  131,  131,  131,  432,  321,  697,  247,  326,  236, 
     722  206,  205,  432,  236,  214,  600,  236,  216,  599,  418, 
     723  698,  419,  353,  354,  604,  451,  700,  599,  271,  415, 
     724  270,  361,  317,  236,  236,  587,  333,  337,  334,  711, 
     725  669,  337,  278,   89,  337,  282,  376,  418,  236,  419, 
     726  757,  856,  389,  146,  240,  241,  857,  423,  763,  934, 
     727  421,  147,  213,  392,  313,  213,  203,  399,  432,  579, 
     728  307,  432,  306,  758,  422,  758,  314,  920,  424,  758, 
     729  551,  240,  241,  551,  401,  428,  313,  401,  737,  227, 
     730  550,  309,  717,  550,  433,  343,  910,  717,  310,  434, 
     731  694,  401,  149,  695,  150,  343,  885,  388,  578,  389, 
     732  342,  425,  606,  343,  519,  599,  521,  514,  217,  480, 
     733  342,  240,  241,  577,  531,  710,  628,  229,  342,  626, 
     734  132,  132,  132,  402,  525,  436,  402,  207,  444,  383, 
     735  446,  449,  210,  238,  239,  506,  479,  727,  731,  219, 
     736  402,  213,  735,  130,  130,  130,  130,  231,  130,  403, 
     737  549,  949,  403,  512,  671,  640,  236,  670,  237,  522, 
     738  751,  754,  587,  333,  244,  334,  403,   30,    2,   99, 
     739  856,  854,  541,  855,  541,  857,  686,   30,  248,  685, 
     740  251,  764,  765,  766,  767,  768,  258,  553,  554,  527, 
     741   89,  269,  530,  558,  127,    3,    4,  202,  183,  590, 
     742  191,  570,  571,  572,  573,  134,  440,  590,  261,  513, 
     743  588,  589,    5,    6,  550,  273,  565,  295,  555,  333, 
     744  131,  334,  417,  590,  603,  205,   30,  275,  607,  608, 
    735745  609,  610,  611,  612,  613,  614,  615,  616,  617,  618, 
    736   619,  550,  205,  484,  416,  555,  502,  629,  933,  438, 
    737   438,  131,  912,  883,  883,  130,  883,  292,  212,  236, 
    738   917,   30,  432,  397,  682,  515,  527,  644,  645,  646, 
    739   647,  648,  649,  650,  651,  652,  653,  654,  655,  656, 
    740   660,  661,  663,  665,  399,   28,  666,  667,   30,   30, 
    741   531,  579,  298,  232,  284,  870,  871,  319,  223,  579, 
    742   233,  436,  436,    7,  536,   30,   30,  323,  341,  593, 
    743   335,  333,   71,  334,  220,  593,  920,  593,  849,  342, 
    744   893,  864,  108,  529,  327,  604,  343,  191,  599,  850, 
    745   577,  415,  416,  843,  202,  183,    8,  578,  577,  312, 
    746   342,  342,  342,  342,  342,  578,  328,  343,  343,  343, 
    747   343,  343,  693,  415,  416,  830,  718,  810,  719,  606, 
    748   832,  384,  599,  384,  384,  133,  805,  807,  729,  671, 
    749   392,  330,  670,  761,  711,  873,  590,  205,  331,  395, 
    750   438,  715,  132,  132,  132,  438,  240,  241,  724,  590, 
    751   590,  590,  590,  590,  754,  588,  589,   30,  854,  852, 
    752   851,  853,  541,  855,  541,  586,  588,  589,  541,  351, 
    753   586,  588,  589,  165,  165,  767,  768,  769,  770,  771, 
    754   427,  357,  414,  412,  883,  413,  149,  314,  150,  753, 
    755    30,  551,  436,  686,  551,  690,  685,  436,  689,  758, 
    756   417,  396,  418,  358,  722,  722,  722,  722,  722,  586, 
    757   588,  589,  722,  899,  919,  313,   89,  716,  429,  550, 
    758   518,  776,  550,  206,  777,  359,  337,  363,  437,  446, 
    759   337,  907,  364,  337,  391,  854,  852,  365,  853,  579, 
    760   855,  366,  367,  368,  857,  913,  914,  915,  916,  337, 
    761   756,  337,  369,  755,  370,  804,  773,  806,  808,  772, 
    762   389,  590,  929,  360,  816,  362,  371,  819,  778,  342, 
    763   372,  599,  779,  898,  794,  599,  343,  599,  577,  373, 
    764   374,  810,  820,  821,  375,  578,  377,  822,  378,  823, 
    765   384,  384,  384,  379,  805,  807,  931,  795,  380,  381, 
    766   599,  827,  816,  796,  797,  798,  599,  599,  599,  430, 
    767   809,  390,  877,  599,  836,  478,  480,  414,  412,  847, 
    768   413,  882,  846,  393,  881,  336,  337,  338,  901,  397, 
    769   339,  896,  845,  398,  482,  417,  402,  418,  472,  903, 
    770   934,  483,  689,  772,  879,  485,  278,  236,  472,  278, 
    771   236,  824,  548,  499,  106,  548,  579,  106,  541,  446, 
    772   211,  500,  448,  211,  446,  448,  834,  504,  516,  241, 
    773   872,  132,  241,  246,  558,  509,  246,  876,  472,  284, 
    774   472,  472,  472,  472,  483,  279,  391,  483,  279,  336, 
    775   328,  107,  336,  328,  107,  577,  518,  472,  472,  472, 
    776   472,  295,  578,  532,  406,  407,  408,  409,  410,  411, 
    777   861,  243,  415,  416,  243,  486,  302,  242,  178,  179, 
    778   242,  535,  545,  546,  804,  806,  808,  480,  334,  335, 
    779   480,  334,  335,  547,  181,  182,  212,  895,  183,  184, 
    780   185,  186,  556,  484,  333,  340,  484,  333,  548,  337, 
    781   337,  337,  187,  337,  337,  337,  337,  337,  337,  178, 
    782   179,  337,  337,  905,  584,  601,  602,  253,  254,  487, 
    783   574,  711,  597,  910,  330,  181,  182,  330,  630,  183, 
    784   184,  185,  186,  631,  632,  621,  622,  623,  624,  625, 
    785   633,  541,  332,  187,  331,  332,  635,  331,  634,  488, 
    786   674,  489,  490,  491,  677,  678,  492,  493,  324,  494, 
    787   495,  680,  683,  681,  688,  565,  691,  687,  333,  940, 
    788   334,  816,  943,  565,  692,  562,  333,  704,  334,  392, 
    789   706,  725,  726,  737,  735,  403,  404,  405,  745,  406, 
    790   407,  408,  409,  410,  411,  204,  223,  415,  416,  748, 
    791   749,  135,  135,  953,  764,  589,  774,  799,  317,  800, 
    792   955,  801,  811,  817,  818,  825,  956,  135,  135,  958, 
    793   826,  135,  135,  135,  135,  188,  838,  831,  149,  833, 
    794   150,  842,  966,  945,  841,  135,  967,  844,  856,  968, 
    795   969,  523,  859,  863,  472,  971,  860,  866,  472,  472, 
    796   472,  867,  472,  472,  472,  472,  472,  472,  869,  497, 
    797   472,  472,  868,  892,  472,  896,  902,  472,  472,  472, 
     746  619,  448,  391,  871,  872,  884,  884,  629,  884,  416, 
     747  417,  438,  438,  527,  531,  588,  589,  302,  914,  212, 
     748  690,  337,  337,  689,  529,  919,  279,  935,  644,  645, 
     749  646,  647,  648,  649,  650,  651,  652,  653,  654,  655, 
     750  656,  660,  661,  663,  665,  323,  666,  667,  502,  393, 
     751  283,  579,  284,  232,  713,  593,  288,  518,  290,  579, 
     752  233,  437,  437,  223,    7,  536,  844,  515,   71,  220, 
     753  292,  753,  298,  894,  752,  432,  312,  922,  593,  343, 
     754  108,  593,  319,  851,  850,  915,  916,  917,  918,  865, 
     755  578,  484,  202,  183,  342,  191,  236,    8,  578,  327, 
     756  343,  343,  343,  343,  343,  577,  693,  880,  874,  132, 
     757  715,  770,  716,  577,  769,  342,  342,  342,  342,  342, 
     758  205,  775,  726,  328,  599,  776,  802,  804,  599,  758, 
     759  392,  827,  807,  130,  708,  791,  829,  383,  599,  383, 
     760  383,  712,  438,  590,  253,  254,  792,  438,  721,  599, 
     761  331,  586,  588,  589,  240,  241,  590,  590,  590,  590, 
     762  590,  330,  541,  793,  541,  351,  599,  565,  541,  562, 
     763  333,  357,  334,  717,  717,  717,  717,  717,  397,  794, 
     764  717,  884,  599,   30,  587,  333,  900,  334,  795,  750, 
     765  358,  599,  437,  856,  854,  853,  855,  437,  857,  755, 
     766  806,  436,  446,  599,  398,  681,  848,   28,  909,  847, 
     767   30,   30,  165,  165,  133,  133,  133,  133,  337,  359, 
     768  363,  773,  337,  206,  774,  337,  921,   30,   30,  883, 
     769  364,  365,  882,  336,  337,  338,  579,  902,  339,  931, 
     770  897,  337,  904,  337,  366,  689,  391,  852,  936,  278, 
     771  236,  769,  278,  236,  360,  801,  362,  803,  805,  548, 
     772  389,  367,  548,  368,  814,  106,  343,  816,  106,  401, 
     773  211,  369,  590,  211,  899,  578,  247,  247,  370,  247, 
     774  371,  342,  817,  818,  756,  587,  333,  819,  334,  820, 
     775  577,  802,  804,  807,  247,  247,  247,  933,  837,  838, 
     776  839,  824,  814,  383,  383,  383,  448,  241,  372,  448, 
     777  241,  879,  587,  333,  833,  334,  480,  246,  483,   30, 
     778  246,  483,  279,  373,  821,  279,  178,  179,  336,  846, 
     779  328,  336,  446,  328,  427,  107,  374,  446,  107,  831, 
     780  375,  377,  181,  182,  472,  378,  183,  184,  185,  186, 
     781  379,  380,   30,  340,  472,  541,  243,  579,  242,  243, 
     782  187,  242,  381,  415,  413,  480,  414,  873,  480,  334, 
     783  335,  558,  334,  335,  877,   89,  484,  390,  486,  484, 
     784  862,  418,  333,  419,  472,  333,  472,  472,  472,  472, 
     785  330,  332,  331,  330,  332,  331,  578,  398,  394,  402, 
     786  563,  429,  391,  472,  472,  472,  472,  430,  478,  482, 
     787  483,  577,  485,  586,  588,  589,  500,  504,  499,  509, 
     788  284,  801,  803,  805,  336,  337,  338,  518,  516,  339, 
     789  253,  254,  487,  212,  295,  896,  532,  302,  535,  545, 
     790  546,  337,  337,  337,  133,  337,  337,  337,  337,  337, 
     791  337,  547,  548,  337,  337,  556,  601,  602,  584,  488, 
     792  906,  489,  490,  491,  574,  630,  492,  493,  631,  494, 
     793  495,  597,  708,  632,  912,  633,  621,  622,  623,  624, 
     794  625,  635,  674,  677,  678,  324,  680,  682,  683,  634, 
     795  691,  687,  541,  692,  247,  247,  247,  688,  247,  247, 
     796  247,  247,  247,  247,  696,  732,  247,  247,  701,  703, 
     797  722,  734,  723,  742,  586,  588,  589,  178,  179,  745, 
     798  942,  223,  814,  945,  746,  761,  589,  771,  796,  797, 
     799  392,  808,  317,  181,  182,  798,  809,  183,  184,  185, 
     800  186,  586,  588,  589,  564,  815,  822,  823,  828,  830, 
     801    8,  187,  835,  178,  179,  955,  842,  947,  843,  845, 
     802    8,  523,  957,  858,  860,  861,  864,  868,  958,  181, 
     803  182,  960,  867,  183,  184,  185,  186,  869,  870,  893, 
     804  897,  903,  908,  926,  968,  737,  928,  187,  969,  929, 
     805  932,  970,  971,  416,  417,  938,  937,  973,  939,  940, 
     806  472,  941,  857,  946,  472,  472,  472,  953,  472,  472, 
     807  472,  472,  472,  472,  533,  497,  472,  472,  952,  954, 
     808  472,  956,  961,  472,  472,  472,  472,  472,  472,  472, 
    798809  472,  472,  472,  472,  472,  472,  472,  472,  472,  472, 
    799   472,  472,  472,  472,  472,  924,  740,  926,  472,  472, 
    800   927,  472,  472,  472,  472,  472,  472,  472,  472,  472, 
     810  472,  127,  209,  963,  472,  472,  442,  472,  472,  472, 
    801811  472,  472,  472,  472,  472,  472,  472,  472,  472,  472, 
    802   472,  472,  472,  472,  472,  472,  472,  472,  930,  935, 
    803   472,  936,  472,  472,  472,  472,  472,  937,  472,  472, 
    804812  472,  472,  472,  472,  472,  472,  472,  472,  472,  472, 
    805   472,  472,  472,  472,  938,  939,  944,  855,  472,  472, 
    806   472,  950,  472,  472,  472,  952,  472,  472,  472,  954, 
    807   951,  472,  959,  472,  127,  209,  472,  472,  472,  472, 
    808   961,  962,  472,  472,  472,  920,  108,  472,  472,  472, 
    809   472,  472,  472,  472,  472,  472,  472,  472,  442,  472, 
    810   472,  472,  472,  472,  472,  472,  472,  350,  472,  472, 
    811   472,  472,  526,  472,  472,  472,  563,  350,  414,  412, 
    812   353,  413,  472,  472,  215,  525,  558,  213,  164,  443, 
    813   324,  480,  336,  337,  338,  316,  417,  339,  418,  118, 
    814   336,  337,  338,  353,  350,  339,  325,  540,  350,  350, 
    815   350,  350,  350,  541,  350,  887,  517,  909,  148,  963, 
    816   925,  885,  717,  627,  641,  350,  350,  350,  350,  350, 
    817   942,  828,  875,  911,   15,  511,  143,  256,  835,  837, 
    818   727,  151,  152,  672,  508,  702,  153,  154,  155,  156, 
    819   840,  731,  960,  318,  744,  743,  746,  732,  157,  158, 
    820   159,  160,  161,  162,  163,  164,  874,  165,  166,  167, 
    821   344,  880,  168,  169,  170,  348,  171,  172,  173,  174, 
    822   175,    0,  176,    0,    0,  178,  179,  747,    0,    0, 
    823     0,    0,    0,  178,  179,    0,    0,    0,    0,    0, 
    824     0,  181,  182,    0,    0,  183,  184,  185,  186,  181, 
    825   182,    0,  340,  183,  184,  185,  186,    0,    0,  187, 
    826   564,    0,    0,    0,    0,    0,    0,  187,    0,    0, 
    827     0,    0,    0,  317,    0,    0,    0,  177,    0,    0, 
    828     0,    0,    0,  317,    0,  178,  179,    0,    0,    0, 
    829     0,  180,    0,    0,    0,    0,    0,    0,    0,    0, 
     813  472,  472,  472,  472,  964,  472,  922,  472,  472,  472, 
     814  472,  472,  526,  472,  472,  472,  472,  472,  472,  472, 
     815  472,  472,  472,  472,  472,  472,  472,  472,  472,  108, 
     816  525,  472,  472,  472,  353,  472,  472,  472,  558,  472, 
     817  472,  472,  215,  213,  472,  164,  472,  443,  480,  472, 
     818  472,  472,  472,  324,  316,  472,  472,  472,  118,  353, 
     819  325,  540,  541,  472,  472,  472,  472,  472,  472,  472, 
     820  472,  472,  472,  472,  517,  472,  472,  472,  472,  472, 
     821  472,  472,  472,  350,  472,  472,  472,  472,  888,  472, 
     822  472,  472,  965,  350,  415,  413,  927,  414,  472,  472, 
     823  911,  886,  714,  627,  944,  641,  876,  825,  913,   15, 
     824  511,  143,  418,  403,  419,  256,  724,  135,  135,  834, 
     825  350,  832,  729,  728,  350,  350,  350,  350,  350,  699, 
     826  350,  672,  962,  135,  135,  841,    8,  135,  135,  135, 
     827  135,  350,  350,  350,  350,  350,  740,  508,  743,  741, 
     828  318,  135,    0,  875,  744,  344,    8,  881,    0,    8, 
     829    8,    8,    8,    8,    8,    8,  348,    0,    8,    8, 
     830    8,    0,    0,    0,    0,    8,    8,    0,    0,    0, 
     831    8,    8,    0,    0,    0,    0,    0,    0,    0,    0, 
     832    0,    8,    0,    0,    0,    8,    8,    0,    0,    0, 
     833    8,    0,    0,    0,    0,    0,    8,    0,    8,    8, 
     834    0,    8,    0,    8,    8,    8,    8,    8,    0,    8, 
     835    8,    8,    8,    8,    8,    8,    8,    8,    8,    8, 
     836    8,    8,    8,    8,    8,    0,    0,    8,    8,    8, 
     837    0,    8,    8,    8,    0,    8,    8,    8,    0,  313, 
     838    8,    0,    8,    0,    0,    8,    8,    8,    8,  313, 
     839    0,    8,    8,    8,    0,    0,    0,    0,    0,    8, 
     840    0,    0,    8,    8,    8,    8,    8,    8,    8,    8, 
     841    0,    8,    8,    8,    8,    8,  313,    0,    8,    0, 
     842  313,  313,  313,  313,  313,    8,    8,    8,    0,    0, 
     843    0,    0,    0,    0,    8,    8,    0,  313,  313,  313, 
     844  313,  313,  404,  405,  406,    0,  407,  408,  409,  410, 
     845  411,  412,    0,    0,  416,  417,    0,    0,    0,    0, 
     846    0,    0,    0,    0,    0,    0,    0,    0,    0,  350, 
     847    0,    0,    0,  350,  350,  350,    0,  350,  350,  350, 
     848  350,  350,  350,    0,  350,  350,  350,    0,    0,  350, 
     849    0,    0,  350,  350,  350,  350,  350,  350,  350,    0, 
     850    0,  350,  350,  350,    0,    0,    0,    0,  350,  350, 
     851    0,    0,    0,  350,  350,    0,    0,    0,    0,    0, 
     852    0,    0,    0,    0,  350,    0,    0,    0,  350,  350, 
     853    0,    0,    0,  350,    0,    0,    0,    0,    0,  350, 
     854    0,  350,  350,    0,  350,   22,  350,  350,  350,  350, 
     855  350,    0,  350,  350,  350,  350,  350,  350,  350,  350, 
     856  350,  350,  350,  350,  350,  350,  350,  350,    0,    0, 
     857  350,  350,  350,    0,  350,  350,  350,    0,  350,  350, 
     858  350,    0,    0,  350,    0,  350,    0,    0,  350,  350, 
     859  350,  350,    0,  350,  350,  350,  350,    0,    0,  397, 
     860    0,    0,  350,    0,   22,  350,  350,  350,  350,  350, 
     861  350,  350,  350,    0,  350,  350,  350,  350,  350,    0, 
     862    0,  350,    0,    0,    0,    0,    0,    0,  350,  350, 
     863  350,    0,    0,    0,    0,  313,    0,  350,  350,  313, 
     864  313,  313,    0,  313,  313,  313,  313,  313,  313,    0, 
     865  313,  313,  313,    0,    0,  313,    0,    0,  313,  313, 
     866  313,  313,  313,  313,  313,    0,    0,  313,  313,  313, 
     867    0,    0,    0,    0,  313,  313,    0,    0,    0,  313, 
     868  313,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     869  313,    0,    0,    0,  313,  313,    0,    0,    0,  313, 
     870    0,    0,    0,    0,    0,  313,    0,  313,  313,    0, 
     871  313,    0,  313,  313,  313,  313,  313,    0,  313,  313, 
     872  313,  313,  313,  313,  313,  313,  313,  313,  313,  313, 
     873  313,  313,  313,  313,    0,    0,  313,  313,  313,    0, 
     874  313,  313,  313,    0,  313,  313,  313,    0,  317,  313, 
     875    0,  313,    0,    0,  313,  313,  313,  313,  317,  313, 
     876  313,  313,  313,    0,    0,    0,    0,    0,  313,    0, 
     877    0,  313,  313,  313,  313,  313,  313,  313,  313,    0, 
     878  313,  313,  313,  313,  313,  317,    0,  313,    0,  317, 
     879  317,  317,  317,  317,  313,  313,  313,    0,    0,    0, 
     880    0,    0,    0,  313,  313,    0,  317,  317,  317,  317, 
     881  317,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     882    0,   22,    0,    0,   22,   22,   22,   22,    0,    0, 
     883   22,    0,    0,   22,   22,   22,    0,    0,    0,    0, 
     884   22,   22,    0,    0,    0,    0,    0,    0,    0,    0, 
     885    0,    0,    0,    0,    0,    0,   22,    0,    0,    0, 
     886   22,   22,    0,    0,    0,   22,    0,    0,    0,    0, 
     887    0,   22,    0,   22,   22,    0,   22,    0,   22,   22, 
     888   22,   22,   22,    0,   22,   22,   22,   22,   22,   22, 
     889   22,   22,   22,   22,   22,   22,   22,   22,   22,   22, 
     890    0,    0,   22,   22,   22,    0,   22,   22,   22,    0, 
     891   22,   22,   22,    0,  314,   22,    0,   22,    0,    0, 
     892   22,   22,   22,   22,  314,    0,   22,   22,   22,    0, 
     893    0,    0,    0,    0,   22,    0,    0,    0,   22,   22, 
     894   22,   22,   22,   22,   22,    0,   22,   22,   22,   22, 
     895   22,  314,    0,   22,    0,  314,  314,  314,  314,  314, 
     896   22,   22,   22,    0,    0,    0,    0,    0,    0,   22, 
     897    0,    0,  314,  314,  314,  314,  314,    0,    0,    0, 
     898    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     899    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     900    0,    0,    0,    0,  317,    0,    0,    0,  317,  317, 
     901  317,    0,  317,  317,  317,  317,  317,  317,    0,  317, 
     902  317,  317,    0,    0,  317,    0,    0,  317,  317,  317, 
     903  317,  317,  317,  317,    0,    0,  317,  317,  317,    0, 
     904    0,    0,    0,  317,  317,    0,    0,    0,  317,  317, 
     905    0,    0,    0,    0,    0,    0,    0,    0,    0,  317, 
     906    0,    0,    0,  317,  317,    0,    0,    0,  317,    0, 
     907    0,    0,    0,    0,  317,    0,  317,  317,    0,  317, 
     908    0,  317,  317,  317,  317,  317,    0,  317,  317,  317, 
     909  317,  317,  317,  317,  317,  317,  317,  317,  317,  317, 
     910  317,  317,  317,    0,  576,  317,  317,  317,    0,  317, 
     911  317,  317,    0,  317,  317,  317,    0,    0,  317,    0, 
     912  317,    0,    0,  317,  317,  317,  317,    0,  317,  317, 
     913  317,  317,    0,    0,    0,    0,    0,  317,    0,    0, 
     914  317,  317,  317,  317,  317,  317,  317,  317,  576,  317, 
     915  317,  317,  317,  317,    0,    0,  317,    0,    0,    0, 
     916    0,    0,    0,  317,  317,  317,    0,    0,    0,    0, 
     917  314,    0,  317,  317,  314,  314,  314,    0,  314,  314, 
     918  314,  314,  314,  314,    0,  314,  314,  314,    0,    0, 
     919  314,    0,    0,  314,  314,  314,  314,  314,  314,  314, 
     920    0,    0,  314,  314,  314,    0,    0,    0,    0,  314, 
     921  314,    0,    0,    0,  314,  314,  337,    0,    0,  337, 
     922  337,  337,  337,  337,  337,  314,    0,    0,    0,  314, 
     923  314,    0,    0,    0,  314,    0,    0,    0,    0,  337, 
     924  314,  337,  314,  314,    0,  314,    0,  314,  314,  314, 
     925  314,  314,    0,  314,  314,  314,  314,  314,  314,  314, 
     926  314,  314,  314,  314,  314,  314,  314,  314,  314,    0, 
     927    0,  314,  314,  314,    0,  314,  314,  314,    0,  314, 
     928  314,  314,    0,  322,  314,    0,  314,    0,    0,  314, 
     929  314,  314,  314,  322,  314,  314,  314,  314,    0,    0, 
     930    0,    0,    0,  314,    0,    0,  314,  314,  314,  314, 
     931  314,  314,  314,  314,    0,  314,  314,  314,  314,  314, 
     932    0,    0,  314,  322,  322,  322,  322,  322,  322,  314, 
     933  314,  314,    0,    0,    0,    0,    0,    0,  314,  314, 
     934    0,  322,  322,  322,  322,  322,    0,    0,    0,    0, 
     935  151,  152,    0,    0,    0,  153,  154,  155,  156,    0, 
     936    0,    0,    0,    0,    0,    0,    0,  157,  158,  159, 
     937  160,  161,  162,  163,  164,    0,  165,  166,  167,    0, 
     938    0,  168,  169,  170,    0,  171,  172,  173,  174,  175, 
     939    0,  176,    0,    0,  151,  152,    0,    0,    0,  153, 
     940  154,  155,  156,    0,    0,    0,    0,    0,    0,    0, 
     941    0,  157,  158,  159,  160,  161,  162,  163,  164,    0, 
     942  165,  166,  167,    0,    0,  168,  169,  170,    0,  171, 
     943  172,  173,  174,  175,    0,  176,    0,    0,    0,  337, 
     944  337,  337,    0,  337,  337,  337,  337,  337,  337,  319, 
     945    0,  337,  337,    0,  178,  179,    0,    0,    0,  319, 
     946  180,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     947  181,  182,    0,    0,  183,  184,  185,  186,    0,    0, 
     948    0,   89,    0,    0,    0,    0,  319,    0,  187,    0, 
     949  319,  319,  319,  319,  319,    0,    0,    0,  178,  179, 
     950    0,    0,    0,    0,  180,    0,    0,  319,  319,  319, 
     951  319,  319,    0,    0,  181,  182,    0,    0,  183,  184, 
     952  185,  186,    0,    0,    0,  889,    0,    0,    0,    0, 
     953    0,    0,  187,    0,    0,    0,    0,    0,    0,  322, 
     954    0,    0,    0,  322,  322,  322,    0,  322,  322,  322, 
     955  322,  322,  322,    0,  322,  322,  322,    0,    0,  322, 
     956    0,    0,  322,  322,  322,  322,  322,  322,  322,    0, 
     957    0,  322,  322,  322,    0,    0,    0,    0,  322,  322, 
     958    0,    0,    0,  322,  322,    0,    0,    0,    0,    0, 
     959    0,    0,    0,    0,  322,    0,    0,    0,  322,  322, 
     960    0,    0,    0,  322,    0,    0,    0,    0,    0,  322, 
     961    0,  322,  322,    0,  322,    0,  322,  322,  322,  322, 
     962  322,    0,  322,  322,  322,  322,  322,  322,  322,  322, 
     963  322,  322,  322,  322,  322,  322,  322,  322,    0,    0, 
     964  322,  322,  322,    0,  322,  322,  322,    0,  322,  322, 
     965  322,    0,    0,  322,    0,  322,    0,    0,  322,  322, 
     966  322,  322,    0,  322,  322,  322,  322,    0,    0,    0, 
     967    0,    0,  322,    0,    0,  322,  322,  322,  322,  322, 
     968  322,  322,  322,    0,  322,  322,  322,  322,  322,    0, 
     969    0,  322,    0,    0,    0,    0,    0,    0,  322,  322, 
     970  322,    0,    0,    0,    0,  319,    0,  322,  322,  319, 
     971  319,  319,    0,  319,  319,  319,  319,  319,  319,    0, 
     972  319,  319,  319,  415,  413,  319,  414,    0,  319,  319, 
     973  319,  319,  319,  319,  319,    0,    0,  319,  319,  319, 
     974    0,  418,  403,  419,  319,  319,    0,    0,    0,  319, 
     975  319,    0,  340,  340,    0,  340,    0,    0,    0,    0, 
     976  319,    0,    0,    0,  319,  319,    0,    0,    0,  319, 
     977  340,  340,  340,    0,    0,  319,    0,  319,  319,    0, 
     978  319,    0,  319,  319,  319,  319,  319,    0,  319,  319, 
     979  319,  319,  319,  319,  319,  319,  319,  319,  319,  319, 
     980  319,  319,  319,  319,    0,    0,  319,  319,  319,    0, 
     981  319,  319,  319,    0,  319,  319,  319,    0,  281,  319, 
     982    0,  319,    0,    0,  319,  319,  319,  319,  281,  319, 
     983  319,  319,  319,    0,    0,    0,    0,    0,  319,    0, 
     984    0,  319,  319,  319,  319,  319,  319,  319,  319,    0, 
     985  319,  319,  319,  319,  319,  281,    0,  319,    0,  281, 
     986  281,  281,  281,  281,  319,  319,  319,    0,    0,    0, 
     987   20,    0,    0,  319,  319,    0,  281,  281,  281,  281, 
     988  281,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     989    0,    0,    0,    0,    0,    0,   26,    0,    0,    0, 
     990    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     991    0,   30,    0,    0,    0,    0,   33,  314,    0,    0, 
     992    0,   37,   38,    0,    0,    0,    0,    0,    0,    0, 
     993    0,  315,   47,   48,   49,   50,   51,   52,  316,    0, 
     994    0,  404,  405,  406,    0,  407,  408,  409,  410,  411, 
     995  412,   62,    0,  416,  417,    0,    0,   65,    0,    0, 
     996    0,    0,    0,    0,    0,    0,   70,    0,   72,    0, 
     997  340,  340,  340,    0,  340,  340,  340,  340,  340,  340, 
     998    0,    0,  340,  340,  280,    0,    0,    0,    0,    0, 
     999    0,    0,    0,    0,  280,    0,    0,    0,    0,    0, 
     1000    0,    0,   89,    0,    0,    0,    0,    0,    0,   90, 
     1001    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     1002    0,    0,    0,    0,    0,  280,  280,  280,  280,  280, 
     1003    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     1004    0,    0,  280,  280,  280,  280,  280,    0,    0,    0, 
     1005    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     1006    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     1007    0,    0,    0,    0,  281,    0,    0,    0,  281,  281, 
     1008  281,    0,  281,  281,  281,  281,  281,  281,    0,  281, 
     1009  281,  281,    0,    0,  281,    0,    0,  281,  281,  281, 
     1010  281,  281,