Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_SERVER/trunk/src/XMLIO/mod_dependency.f90

    r17 r29  
    55USE mod_axis 
    66USE mod_sorted_list 
     7USE mod_zoom 
    78 
    89TYPE file_dep 
     
    1112  TYPE(vector_field),POINTER   :: fields 
    1213  TYPE(vector_grid),POINTER    :: grids 
     14  TYPE(vector_zoom),POINTER    :: zooms 
    1315  TYPE(vector_axis),POINTER    :: axis 
    1416END TYPE file_dep 
     
    2628  TYPE(axis),  POINTER  :: axis 
    2729  TYPE(grid),  POINTER  :: grid 
     30  TYPE(zoom),  POINTER  :: zoom 
    2831END TYPE field_out 
    2932 
     
    3235INCLUDE 'vector_field_out_def.inc' 
    3336 
    34 TYPE(vector_file_dep),POINTER      :: file_enabled 
    35 TYPE(vector_field_out),POINTER     :: field_enabled  
    36 TYPE(vector_field_dep),POINTER     :: field_id 
     37TYPE(vector_file_dep),POINTER,SAVE      :: file_enabled 
     38TYPE(vector_field_out),POINTER,SAVE     :: field_enabled  
     39TYPE(vector_field_dep),POINTER,SAVE     :: field_id 
    3740 
    3841  
    39 TYPE(sorted_list),POINTER :: sorted_id 
     42TYPE(sorted_list),POINTER,SAVE :: sorted_id 
    4043 
    4144CONTAINS 
     
    4548INCLUDE 'vector_field_out_contains.inc' 
    4649 
     50   
     51  SUBROUTINE dependency__swap_context(saved_file_enabled,saved_field_enabled,save_field_id,saved_sorted_id)   
     52  IMPLICIT NONE 
     53    TYPE(vector_file_dep),POINTER      :: saved_file_enabled 
     54    TYPE(vector_field_out),POINTER     :: saved_field_enabled  
     55    TYPE(vector_field_dep),POINTER     :: save_field_id 
     56    TYPE(sorted_list),POINTER          :: saved_sorted_id   
     57     
     58    file_enabled=>saved_file_enabled    
     59    field_enabled=>saved_field_enabled 
     60    field_id=>save_field_id 
     61    sorted_id=>saved_sorted_id 
     62       
     63  END SUBROUTINE dependency__swap_context 
     64   
    4765  SUBROUTINE set_dependency 
    4866  IMPLICIT NONE 
     
    6785    TYPE (sorted_list),POINTER         :: sorted_axis 
    6886    TYPE (sorted_list),POINTER         :: sorted_grid 
     87    TYPE (sorted_list),POINTER         :: sorted_zoom 
    6988    INTEGER                            :: i 
    7089    INTEGER                            :: j 
     
    7291    ALLOCATE(sorted_axis) 
    7392    ALLOCATE(sorted_grid) 
     93    ALLOCATE(sorted_zoom) 
    7494     
    7595    IF (PRESENT(Pt_file_group)) THEN 
    7696      Pt_fg=>Pt_file_group 
    7797    ELSE 
    78       ALLOCATE(file_enabled) 
    7998      CALL vector_file_dep__new(file_enabled) 
    8099      Pt_fg=>file_definition 
     
    92111        ALLOCATE(Pt_file_dep%fields) 
    93112        ALLOCATE(Pt_file_dep%grids) 
     113        ALLOCATE(Pt_file_dep%zooms) 
    94114        ALLOCATE(Pt_file_dep%axis) 
    95115        pt_file_dep%file=>pt_file 
     
    97117        CALL vector_field__new(Pt_file_dep%fields) 
    98118        CALL vector_grid__new(Pt_file_dep%grids) 
     119        CALL vector_zoom__new(Pt_file_dep%zooms) 
    99120        CALL vector_axis__new(Pt_file_dep%axis) 
    100121        CALL sorted_list__new(sorted_axis) 
    101122        CALL sorted_list__new(sorted_grid) 
     123        CALL sorted_list__new(sorted_zoom) 
    102124         
    103125        CALL Treat_field_group(pt_file%field_list) 
     
    105127        CALL sorted_list__delete(sorted_axis) 
    106128        CALL sorted_list__delete(sorted_grid) 
     129        CALL sorted_list__delete(sorted_zoom) 
    107130      ENDIF 
    108131    ENDDO 
     
    138161              CALL vector_grid__set_new(pt_file_dep%grids,Pt_field%grid,pos) 
    139162              CALL sorted_list__add(sorted_grid,hash(Pt_field%grid%id),pos) 
     163            ENDIF 
     164          ENDIF 
     165 
     166          IF (Pt_field%has_zoom) THEN 
     167            CALL sorted_list__find(sorted_zoom,hash(Pt_field%zoom%id),pos,found) 
     168            IF (.NOT. found) THEN  
     169              CALL vector_zoom__set_new(pt_file_dep%zooms,Pt_field%zoom,pos) 
     170              CALL sorted_list__add(sorted_zoom,hash(Pt_field%zoom%id),pos) 
    140171            ENDIF 
    141172          ENDIF 
     
    161192  INTEGER                  :: j 
    162193   
    163     ALLOCATE(field_enabled) 
    164194    CALL vector_field_out__new(field_enabled) 
    165195     
     
    172202        pt_field_out%axis=>pt_field_out%field%axis 
    173203        pt_field_out%grid=>pt_field_out%field%grid 
     204        pt_field_out%zoom=>pt_field_out%field%zoom 
    174205      ENDDO 
    175206    ENDDO 
     
    189220  INTEGER :: i 
    190221   
    191     ALLOCATE(field_id) 
    192222    CALL vector_field_dep__new(field_id) 
    193  
    194     ALLOCATE(sorted_id) 
    195223    CALL sorted_list__new(sorted_id) 
    196224     
Note: See TracChangeset for help on using the changeset viewer.