Changeset 415 for XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90
- Timestamp:
- 01/20/13 23:14:35 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90
r326 r415 12 12 13 13 SUBROUTINE xios(set_grid_attr) & 14 ( grid_id, axis_ref, description, domain_ref, name )14 ( grid_id, axis_ref, description, domain_ref, mask, name ) 15 15 16 16 IMPLICIT NONE … … 20 20 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 21 21 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 22 LOGICAL , OPTIONAL, INTENT(IN) :: mask(:,:,:) 23 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:,:) 22 24 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 23 25 24 26 CALL xios(get_grid_handle)(grid_id,grid_hdl) 25 27 CALL xios(set_grid_attr_hdl_) & 26 ( grid_hdl, axis_ref, description, domain_ref, name )28 ( grid_hdl, axis_ref, description, domain_ref, mask, name ) 27 29 28 30 END SUBROUTINE xios(set_grid_attr) 29 31 30 32 SUBROUTINE xios(set_grid_attr_hdl) & 31 ( grid_hdl, axis_ref, description, domain_ref, name )33 ( grid_hdl, axis_ref, description, domain_ref, mask, name ) 32 34 33 35 IMPLICIT NONE … … 36 38 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 37 39 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 40 LOGICAL , OPTIONAL, INTENT(IN) :: mask(:,:,:) 41 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:,:) 38 42 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 39 43 40 44 CALL xios(set_grid_attr_hdl_) & 41 ( grid_hdl, axis_ref, description, domain_ref, name )45 ( grid_hdl, axis_ref, description, domain_ref, mask, name ) 42 46 43 47 END SUBROUTINE xios(set_grid_attr_hdl) 44 48 45 49 SUBROUTINE xios(set_grid_attr_hdl_) & 46 ( grid_hdl, axis_ref_, description_, domain_ref_, name_ )50 ( grid_hdl, axis_ref_, description_, domain_ref_, mask_, name_ ) 47 51 48 52 IMPLICIT NONE … … 51 55 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_ 52 56 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_ 57 LOGICAL , OPTIONAL, INTENT(IN) :: mask_(:,:,:) 58 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:,:,:) 53 59 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 54 60 … … 65 71 ENDIF 66 72 73 IF (PRESENT(mask_)) THEN 74 ALLOCATE(mask__tmp(size(mask_,1),size(mask_,2),size(mask_,3))) 75 mask__tmp=mask_ 76 CALL cxios_set_grid_mask(grid_hdl%daddr, mask__tmp,size(mask_,1),size(mask_,2),size(mask_,3)) 77 ENDIF 78 67 79 IF (PRESENT(name_)) THEN 68 80 CALL cxios_set_grid_name(grid_hdl%daddr, name_, len(name_)) … … 74 86 75 87 SUBROUTINE xios(get_grid_attr) & 76 ( grid_id, axis_ref, description, domain_ref, name )88 ( grid_id, axis_ref, description, domain_ref, mask, name ) 77 89 78 90 IMPLICIT NONE … … 82 94 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 83 95 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 96 LOGICAL , OPTIONAL, INTENT(OUT) :: mask(:,:,:) 97 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:,:) 84 98 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 85 99 86 100 CALL xios(get_grid_handle)(grid_id,grid_hdl) 87 101 CALL xios(get_grid_attr_hdl_) & 88 ( grid_hdl, axis_ref, description, domain_ref, name )102 ( grid_hdl, axis_ref, description, domain_ref, mask, name ) 89 103 90 104 END SUBROUTINE xios(get_grid_attr) 91 105 92 106 SUBROUTINE xios(get_grid_attr_hdl) & 93 ( grid_hdl, axis_ref, description, domain_ref, name )107 ( grid_hdl, axis_ref, description, domain_ref, mask, name ) 94 108 95 109 IMPLICIT NONE … … 98 112 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 99 113 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 114 LOGICAL , OPTIONAL, INTENT(OUT) :: mask(:,:,:) 115 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:,:) 100 116 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 101 117 102 118 CALL xios(get_grid_attr_hdl_) & 103 ( grid_hdl, axis_ref, description, domain_ref, name )119 ( grid_hdl, axis_ref, description, domain_ref, mask, name ) 104 120 105 121 END SUBROUTINE xios(get_grid_attr_hdl) 106 122 107 123 SUBROUTINE xios(get_grid_attr_hdl_) & 108 ( grid_hdl, axis_ref_, description_, domain_ref_, name_ )124 ( grid_hdl, axis_ref_, description_, domain_ref_, mask_, name_ ) 109 125 110 126 IMPLICIT NONE … … 113 129 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_ 114 130 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_ 131 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_(:,:,:) 132 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:,:,:) 115 133 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 116 134 … … 127 145 ENDIF 128 146 147 IF (PRESENT(mask_)) THEN 148 ALLOCATE(mask__tmp(size(mask_,1),size(mask_,2),size(mask_,3))) 149 CALL cxios_get_grid_mask(grid_hdl%daddr, mask__tmp,size(mask_,1),size(mask_,2),size(mask_,3)) 150 mask_=mask__tmp 151 ENDIF 152 129 153 IF (PRESENT(name_)) THEN 130 154 CALL cxios_get_grid_name(grid_hdl%daddr, name_, len(name_))
Note: See TracChangeset
for help on using the changeset viewer.