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_field.f90

    r35 r40  
    206206  END SUBROUTINE field__set 
    207207 
     208  SUBROUTINE field__set_attribut(id,attrib) 
     209  USE mod_attribut 
     210  USE mod_field_attribut 
     211  USE error_msg 
     212  IMPLICIT NONE 
     213    CHARACTER(LEN=*),INTENT(IN) :: id 
     214    TYPE(attribut),INTENT(IN) :: attrib 
     215 
     216    TYPE(field),POINTER             :: Pt_field 
     217    INTEGER                         :: Pos 
     218    LOGICAL                         :: success 
     219     
     220    CALL sorted_list__find(Ids,hash(Id),Pos,success) 
     221    IF (success) THEN 
     222      Pt_field=>field_ids%at(Pos)%Pt 
     223    ELSE 
     224      WRITE(message,*) 'Field id :',id,'is undefined' 
     225      CALL error('mod_field::field__set_attribut') 
     226    ENDIF   
     227     
     228    SELECT CASE(attrib%name) 
     229      CASE (field__name) 
     230        IF (attrib%type==string0) CALL  field__set(pt_field,name=attrib%string0_ptr) ; RETURN 
     231      CASE (field__field_ref) 
     232        IF (attrib%type==string0) CALL  field__set(pt_field,ref=attrib%string0_ptr) ; RETURN 
     233      CASE (field__description) 
     234        IF (attrib%type==string0) CALL  field__set(pt_field,description=attrib%string0_ptr) ; RETURN 
     235      CASE (field__unit) 
     236        IF (attrib%type==string0) CALL  field__set(pt_field,unit=attrib%string0_ptr) ; RETURN 
     237      CASE (field__operation) 
     238        IF (attrib%type==string0) CALL  field__set(pt_field,operation=attrib%string0_ptr) ; RETURN 
     239      CASE (field__freq_op) 
     240        IF (attrib%type==integer0) CALL  field__set(pt_field,freq_op=attrib%integer0_ptr) ; RETURN 
     241      CASE (field__axis_ref) 
     242        IF (attrib%type==string0) CALL  field__set(pt_field,axis_ref=attrib%string0_ptr) ; RETURN 
     243      CASE (field__grid_ref) 
     244        IF (attrib%type==string0) CALL  field__set(pt_field,grid_ref=attrib%string0_ptr) ; RETURN 
     245      CASE (field__zoom_ref) 
     246        IF (attrib%type==string0) CALL  field__set(pt_field,zoom_ref=attrib%string0_ptr) ; RETURN 
     247      CASE (field__prec) 
     248        IF (attrib%type==integer0) CALL  field__set(pt_field,prec=attrib%integer0_ptr) ; RETURN 
     249      CASE (field__level) 
     250        IF (attrib%type==integer0) CALL  field__set(pt_field,level=attrib%integer0_ptr) ; RETURN 
     251      CASE (field__enabled) 
     252        IF (attrib%type==logical0) CALL  field__set(pt_field,enabled=attrib%logical0_ptr) ; RETURN 
     253     END SELECT 
     254 
     255     WRITE(message,*) 'field id ',id,' : Attribute type is incompatible with the provided value' 
     256     CALL error('mod_field::field__set_attribut') 
     257     
     258  END SUBROUTINE field__set_attribut     
    208259 
    209260  SUBROUTINE field__print(pt_field) 
Note: See TracChangeset for help on using the changeset viewer.