Changeset 29 for XMLIO_SERVER/trunk/src/XMLIO/mod_field.f90
- Timestamp:
- 04/15/09 17:34:38 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_SERVER/trunk/src/XMLIO/mod_field.f90
r26 r29 5 5 USE mod_axis 6 6 USE mod_grid 7 7 USE mod_zoom 8 8 9 IMPLICIT NONE 9 10 … … 25 26 CHARACTER(len=str_len) :: grid_ref 26 27 LOGICAL :: has_grid_ref 28 CHARACTER(len=str_len) :: zoom_ref 29 LOGICAL :: has_zoom_ref 27 30 INTEGER :: level 28 31 LOGICAL :: has_level … … 40 43 TYPE(grid),POINTER :: grid 41 44 LOGICAL :: has_grid 45 TYPE(zoom),POINTER :: zoom 46 LOGICAL :: has_zoom 42 47 INTEGER :: internal(internal_field) 43 48 … … 107 112 pt_field%has_axis_ref = .FALSE. 108 113 pt_field%has_grid_ref = .FALSE. 114 pt_field%has_zoom_ref = .FALSE. 109 115 pt_field%has_prec = .FALSE. 110 116 pt_field%has_level = .FALSE. … … 115 121 Pt_field%has_axis=.FALSE. 116 122 Pt_field%has_grid=.FALSE. 123 Pt_field%has_zoom=.FALSE. 117 124 118 125 IF (PRESENT(Id)) THEN … … 126 133 127 134 128 SUBROUTINE field__set(p_field, name, ref, description, unit, operation, freq_op, axis_ref, grid_ref, prec, level, enabled)135 SUBROUTINE field__set(p_field, name, ref, description, unit, operation, freq_op, axis_ref, grid_ref, zoom_ref, prec, level, enabled) 129 136 130 137 TYPE(field), pointer :: p_field … … 137 144 CHARACTER(len=*),OPTIONAL :: axis_ref 138 145 CHARACTER(len=*),OPTIONAL :: grid_ref 146 CHARACTER(len=*),OPTIONAL :: zoom_ref 139 147 INTEGER, OPTIONAL :: prec 140 148 INTEGER, OPTIONAL :: level … … 174 182 p_field%has_grid_ref = .TRUE. 175 183 ENDIF 184 185 IF (PRESENT(zoom_ref)) THEN 186 p_field%zoom_ref=TRIM(ADJUSTL(zoom_ref)) 187 p_field%has_zoom_ref = .TRUE. 188 ENDIF 189 176 190 IF (PRESENT(prec)) then 177 191 p_field%prec=prec … … 240 254 ELSE 241 255 PRINT *, 'grid_ref undefined ' 256 ENDIF 257 258 IF (pt_field%has_zoom_ref) THEN 259 PRINT *, 'zoom_ref : ',TRIM(pt_field%zoom_ref) 260 ELSE 261 PRINT *, 'zoom_ref undefined ' 242 262 ENDIF 243 263 … … 378 398 ELSE 379 399 pt_field_out%has_grid_ref=.FALSE. 400 ENDIF 401 402 IF (pt_field_in%has_zoom_ref) THEN 403 pt_field_out%zoom_ref=pt_field_in%zoom_ref 404 pt_field_out%has_zoom_ref=.TRUE. 405 ELSE IF ( pt_field_default%has_zoom_ref ) THEN 406 pt_field_out%zoom_ref=pt_field_default%zoom_ref 407 pt_field_out%has_zoom_ref=.TRUE. 408 ELSE 409 pt_field_out%has_zoom_ref=.FALSE. 380 410 ENDIF 381 411 … … 526 556 END SUBROUTINE field__solve_grid_ref 527 557 558 SUBROUTINE field__solve_zoom_ref(pt_field) 559 USE error_msg 560 IMPLICIT NONE 561 TYPE(field), POINTER :: pt_field 562 563 IF (.NOT. pt_field%has_zoom_ref) THEN 564 IF (pt_field%has_grid_ref) THEN 565 pt_field%has_zoom_ref=.TRUE. 566 pt_field%zoom_ref=pt_field%grid_ref 567 ENDIF 568 ENDIF 569 570 IF (pt_field%has_zoom_ref) THEN 571 CALL zoom__get(pt_field%zoom_ref,pt_field%zoom) 572 IF (ASSOCIATED(pt_field%zoom)) THEN 573 pt_field%has_zoom=.TRUE. 574 ELSE 575 WRITE (message,*) "The field : id = ",pt_field%id," name = ",Pt_field%name, & 576 " has a unknown reference to zoom : id =",pt_field%zoom_ref 577 CALL error("mod_field::field__solve_zoom_ref") 578 ENDIF 579 ENDIF 580 581 END SUBROUTINE field__solve_zoom_ref 528 582 529 583
Note: See TracChangeset
for help on using the changeset viewer.