Changes in XMLIO_SERVER/trunk/src/XMLIO/mod_grid.f90 [17:29]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_SERVER/trunk/src/XMLIO/mod_grid.f90
r17 r29 3 3 USE mod_sorted_list 4 4 USE mod_domain 5 USE mod_zoom 6 5 7 IMPLICIT NONE 6 8 … … 19 21 INTEGER :: nj 20 22 LOGICAL :: has_dimension 23 TYPE(vector_zoom),POINTER :: associated_zoom 24 TYPE(zoom),POINTER :: global_zoom 21 25 END TYPE grid 22 26 … … 29 33 INCLUDE 'vector_grid_contains.inc' 30 34 35 SUBROUTINE grid__swap_context(saved_grid_Ids,saved_Ids) 36 IMPLICIT NONE 37 TYPE(vector_grid),POINTER :: saved_grid_Ids 38 TYPE(sorted_list),POINTER :: saved_Ids 39 40 grid_ids=>saved_grid_ids 41 ids=>saved_ids 42 END SUBROUTINE grid__swap_context 43 44 31 45 SUBROUTINE grid__init 32 46 IMPLICIT NONE 33 34 ALLOCATE(grid_Ids)35 ALLOCATE(Ids)36 47 37 48 CALL vector_grid__new(grid_Ids) … … 68 79 ALLOCATE(pt_grid%subdomain) 69 80 ALLOCATE(pt_grid%rank_ids) 81 ALLOCATE(pt_grid%associated_zoom) 82 70 83 CALL domain__new(pt_grid%domain) 71 84 CALL vector_domain__new(pt_grid%subdomain) 72 85 CALL sorted_list__new(pt_grid%rank_ids) 86 CALL vector_zoom__new(pt_grid%associated_zoom) 73 87 74 88 pt_grid%has_id = .FALSE. … … 83 97 CALL sorted_list__Add(Ids,hash(id),Pos) 84 98 ENDIF 99 100 CALL grid__get_new_zoom(pt_grid,pt_grid%global_zoom,id) 85 101 86 102 END SUBROUTINE grid__new … … 153 169 TYPE(grid), POINTER :: pt_grid 154 170 TYPE(domain),POINTER :: subdomain 171 TYPE(zoom),POINTER :: pt_zoom 155 172 156 173 REAL,ALLOCATABLE :: lon(:,:) 157 174 REAL,ALLOCATABLE :: lat(:,:) 158 INTEGER :: ib,ie,jb,je,ni,nj,ibegin,jbegin 175 INTEGER :: ib,ie,jb,je,ni,nj,ibegin,jbegin,iend,jend 159 176 INTEGER :: i 160 177 … … 196 213 197 214 CALL domain__set(pt_grid%domain,0,ni,nj,ibegin,jbegin,lon,lat) 198 199 215 iend=ibegin+ni-1 216 jend=jbegin+nj-1 217 218 219 pt_grid%global_zoom%ni_glo=pt_grid%ni 220 pt_grid%global_zoom%nj_glo=pt_grid%nj 221 pt_grid%global_zoom%ibegin_glo=1 222 pt_grid%global_zoom%jbegin_glo=1 223 224 DO i=1,pt_grid%associated_zoom%size 225 pt_zoom=>pt_grid%associated_zoom%at(i)%pt 226 227 ib=MAX(pt_zoom%ibegin_glo-ibegin+1,1) 228 ie=MIN(pt_zoom%ibegin_glo+pt_zoom%ni_glo-ibegin,ni) 229 pt_zoom%ni_loc=MAX(ie-ib+1,0) 230 pt_zoom%ibegin_loc=ib 231 232 jb=MAX(pt_zoom%jbegin_glo-jbegin+1,1) 233 je=MIN(pt_zoom%jbegin_glo+pt_zoom%nj_glo-jbegin,nj) 234 pt_zoom%nj_loc=MAX(je-jb+1,0) 235 pt_zoom%jbegin_loc=jb 236 ENDDO 237 238 200 239 DEALLOCATE(lon) 201 240 DEALLOCATE(lat) … … 204 243 205 244 206 245 SUBROUTINE grid__get_new_zoom(pt_grid,pt_zoom,zoom_id) 246 USE string_function 247 IMPLICIT NONE 248 TYPE(grid), POINTER :: pt_grid 249 TYPE(zoom),POINTER :: pt_zoom 250 CHARACTER(LEN=*),INTENT(IN),OPTIONAL :: zoom_id 251 LOGICAL :: success 252 253 CALL vector_zoom__get_new(pt_grid%associated_zoom,Pt_zoom) 254 CALL zoom__new(Pt_zoom,zoom_id) 255 256 END SUBROUTINE grid__get_new_zoom 257 207 258 SUBROUTINE grid__print(pt_grid) 208 259 IMPLICIT NONE
Note: See TracChangeset
for help on using the changeset viewer.