Changeset 8139 for branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/UtilListe.c
- Timestamp:
- 2017-06-05T12:05:17+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/LIB/UtilListe.c
r5656 r8139 52 52 strcpy(var->v_subroutinename , ""); 53 53 strcpy(var->v_precision , ""); 54 strcpy(var->v_initialvalue , ""); 54 var->v_initialvalue = (listname *)NULL; 55 var->v_initialvalue_array = (listname *)NULL; 56 var->v_do_loop = NULL; 55 57 strcpy(var->v_IntentSpec , ""); 56 58 strcpy(var->v_readedlistdimension, ""); … … 103 105 newvar->suiv = l; 104 106 } 107 newvar=glob; 108 while (newvar) 109 { 110 newvar=newvar->suiv; 111 } 105 112 } 106 113 return glob; … … 117 124 void CreateAndFillin_Curvar(const char *type, variable *curvar) 118 125 { 126 listname *newvar; 127 119 128 if ( !strcasecmp(type, "character") && strcasecmp(CharacterSize, "") ) 120 129 { … … 150 159 if (InitialValueGiven == 1 ) 151 160 { 152 strcpy(curvar->v_initialvalue,InitValue); 161 curvar->v_initialvalue=Insertname(curvar->v_initialvalue,InitValue,0); 162 163 // strcpy(curvar->v_initialvalue,InitValue); 164 153 165 Save_Length(InitValue,14); 154 166 } … … 481 493 v = newvar->var; 482 494 strcpy(v->v_typevar,nom); 495 483 496 v->v_catvar = get_cat_var(v); 497 484 498 newvar = newvar->suiv; 485 499 } … … 502 516 { 503 517 v=newvar->var; 504 printf("nom = %s, allocatable = %d dim = %s\n",v->v_nomvar,v->v_allocatable,(v->v_dimension)->dim.last);505 518 newvar=newvar->suiv; 506 519 } … … 564 577 } 565 578 579 int testandextractfromlist(listname **lin, char*nom) 580 { 581 listname *newvar; 582 int val_1, val_2; 583 int return_stmt; 584 585 printname(*lin); 586 if (!(*lin)) 587 { 588 return 0; 589 } 590 else 591 { 592 sscanf(nom,"%d",&val_1); 593 sscanf((*lin)->n_name,"%d",&val_2); 594 if (val_1==val_2) 595 { 596 /* newvar = *lin; 597 *lin = (*lin)->suiv; 598 free(newvar);*/ 599 /* continue to remove while the label stays the same */ 600 /* return_stmt=testandextractfromlist(lin,nom);*/ 601 return 1; 602 } 603 else 604 { 605 return 0; 606 } 607 } 608 } 609 610 void removefromlist(listname **lin, char*nom) 611 { 612 listname *newvar,*prev; 613 int val_1, val_2; 614 int return_stmt; 615 int out; 616 617 printname(*lin); 618 if (*lin) 619 { 620 sscanf(nom,"%d",&val_1); 621 prev=(listname *) calloc(1,sizeof(listname)); 622 prev->suiv=*lin; 623 *lin=prev; 624 newvar=(*lin)->suiv; 625 out = 0; 626 while (newvar && out == 0) 627 { 628 sscanf((newvar)->n_name,"%d",&val_2); 629 if (val_1==val_2) 630 { 631 prev->suiv=newvar->suiv; 632 free(newvar); 633 } 634 if (prev->suiv) 635 { 636 prev=prev->suiv; 637 newvar=prev->suiv; 638 } 639 else 640 { 641 out = 1; 642 } 643 } 644 prev=*lin; 645 *lin=(*lin)->suiv; 646 free(prev); 647 } 648 } 649 566 650 listname *concat_listname(listname *l1, listname *l2) 567 651 { … … 606 690 while (newvar) 607 691 { 608 printf("nom = %s \n",newvar->n_name);609 692 newvar=newvar->suiv; 610 693 } … … 694 777 int get_cat_var(variable *var) 695 778 { 779 696 780 if (!strcasecmp(var->v_typevar, "CHARACTER")) 697 781 return 1; … … 705 789 return 0; 706 790 } 791 792 void Insertdoloop(variable *var,char *do_var,char *do_begin, char *do_end, char *do_step) 793 { 794 listdoloop *new_do_loop; 795 listdoloop *tmploop; 796 new_do_loop = (listdoloop *) calloc(1,sizeof(listdoloop)); 797 798 new_do_loop->cur_do_loop = (do_loop *) calloc(1,sizeof(do_loop)); 799 800 strcpy(new_do_loop->cur_do_loop->do_variable,do_var); 801 strcpy(new_do_loop->cur_do_loop->do_begin,do_begin); 802 strcpy(new_do_loop->cur_do_loop->do_end,do_end); 803 strcpy(new_do_loop->cur_do_loop->do_step,do_step); 804 new_do_loop->suiv = NULL; 805 806 if (!var->v_do_loop) 807 { 808 var->v_do_loop = new_do_loop; 809 } 810 else 811 { 812 new_do_loop->suiv = var->v_do_loop; 813 var->v_do_loop = new_do_loop; 814 815 // tmploop = var->v_do_loop; 816 // while (tmploop->suiv) 817 // { 818 // tmploop=tmploop->suiv; 819 // } 820 // tmploop->suiv = new_do_loop ; 821 // } 822 } 823 }
Note: See TracChangeset
for help on using the changeset viewer.