Ignore:
Timestamp:
09/17/09 10:02:37 (15 years ago)
Author:
ymipsl
Message:
  • Les attributs XML peuvent désormais être passer dynamiquement à travers l'interface du server IO.
  • ajout d'un attribut name_suffix pour les fichiers

YM

File:
1 edited

Legend:

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

    r26 r40  
    1010    CHARACTER(len=str_len)           :: name 
    1111    LOGICAL                          :: has_name 
     12    CHARACTER(len=str_len)           :: name_suffix 
     13    LOGICAL                          :: has_name_suffix 
    1214    CHARACTER(len=str_len)           :: description 
    1315    LOGICAL                          :: has_description 
     
    7981   pt_file%has_id           = .FALSE. 
    8082   pt_file%has_name         = .FALSE. 
     83   pt_file%has_name_suffix  = .FALSE. 
    8184   pt_file%has_description  = .FALSE. 
    8285   pt_file%has_output_freq  = .FALSE. 
     
    9396  END SUBROUTINE file__new 
    9497 
    95   SUBROUTINE file__set(pt_file, name, description, output_freq, output_level,enabled) 
     98  SUBROUTINE file__set(pt_file, name, name_suffix, description, output_freq, output_level,enabled) 
    9699  IMPLICIT NONE 
    97100    TYPE(file), POINTER         :: pt_file 
    98101    CHARACTER(len=*)  ,OPTIONAL :: name 
     102    CHARACTER(len=*)  ,OPTIONAL :: name_suffix 
    99103    CHARACTER(len=*)  ,OPTIONAL :: description 
    100104    INTEGER           ,OPTIONAL :: output_freq 
     
    107111    ENDIF 
    108112 
     113    IF (PRESENT(name_suffix)) THEN 
     114        pt_file%name_suffix=TRIM(ADJUSTL(name_suffix)) 
     115        pt_file%has_name_suffix = .TRUE. 
     116    ENDIF 
     117 
    109118    IF (PRESENT(description)) THEN 
    110119        pt_file%description=TRIM(ADJUSTL(description)) 
     
    129138  END SUBROUTINE file__set 
    130139 
     140  SUBROUTINE file__set_attribut(id,attrib) 
     141  USE mod_attribut 
     142  USE mod_file_attribut 
     143  USE error_msg 
     144  IMPLICIT NONE 
     145    CHARACTER(LEN=*),INTENT(IN) :: id 
     146    TYPE(attribut),INTENT(IN) :: attrib 
     147 
     148    TYPE(file),POINTER              :: Pt_file 
     149    INTEGER                         :: Pos 
     150    LOGICAL                         :: success 
     151     
     152    CALL sorted_list__find(Ids,hash(Id),Pos,success) 
     153    IF (success) THEN 
     154      Pt_file=>file_ids%at(Pos)%Pt 
     155    ELSE 
     156      WRITE(message,*) 'File id :',id,'is undefined' 
     157      CALL error('mod_file::file__set_attribut') 
     158    ENDIF   
     159     
     160    SELECT CASE(attrib%name) 
     161      CASE (file__name) 
     162        IF (attrib%type==string0) CALL  file__set(pt_file,name=attrib%string0_ptr) ; RETURN 
     163      CASE (file__name_suffix) 
     164        IF (attrib%type==string0) CALL  file__set(pt_file,name_suffix=attrib%string0_ptr) ; RETURN 
     165      CASE (file__description) 
     166        IF (attrib%type==string0) CALL  file__set(pt_file,description=attrib%string0_ptr) ; RETURN 
     167      CASE (file__output_freq) 
     168        IF (attrib%type==integer0) CALL  file__set(pt_file,output_freq=attrib%integer0_ptr) ; RETURN 
     169      CASE (file__output_level) 
     170        IF (attrib%type==integer0) CALL  file__set(pt_file,output_level=attrib%integer0_ptr) ; RETURN 
     171      CASE (file__enabled) 
     172        IF (attrib%type==logical0) CALL  file__set(pt_file,enabled=attrib%logical0_ptr) ; RETURN 
     173     END SELECT 
     174 
     175     WRITE(message,*) 'file id ',id,' : Attribute type is incompatible with the provided value' 
     176     CALL error('mod_file::file__set_attribut') 
     177     
     178  END SUBROUTINE file__set_attribut 
     179   
     180      
    131181  SUBROUTINE file__get_field_list(pt_file,pt_field_list) 
    132182  IMPLICIT NONE 
     
    153203    ELSE 
    154204      PRINT *,"name undefined" 
     205    ENDIF 
     206 
     207    IF (pt_file%has_name_suffix) THEN 
     208      PRINT *,"name_suffix = ",TRIM(pt_file%name_suffix) 
     209    ELSE 
     210      PRINT *,"name_suffix undefined" 
    155211    ENDIF 
    156212     
     
    199255    ELSE 
    200256        pt_file_out%has_name=.FALSE. 
     257    ENDIF 
     258 
     259    IF (pt_file_in%has_name_suffix) THEN 
     260        pt_file_out%name_suffix=pt_file_in%name_suffix 
     261        pt_file_out%has_name_suffix=.TRUE. 
     262    ELSE IF ( pt_file_default%has_name_suffix) THEN 
     263        pt_file_out%name_suffix=pt_file_default%name_suffix 
     264        pt_file_out%has_name_suffix=.TRUE. 
     265    ELSE 
     266        pt_file_out%has_name_suffix=.FALSE. 
    201267    ENDIF 
    202268         
Note: See TracChangeset for help on using the changeset viewer.