29 real(kind=kind_real),
allocatable :: lon(:)
30 real(kind=kind_real),
allocatable :: lat(:)
31 real(kind=kind_real),
allocatable :: area(:)
32 real(kind=kind_real),
allocatable :: vunit(:,:)
33 logical,
allocatable :: lmask(:,:)
34 real(kind=kind_real),
allocatable :: fld(:,:,:,:)
45 #define LISTED_TYPE unstructured_grid 48 #include "oops/util/linkedList_i.f" 58 #include "oops/util/linkedList_c.f" 64 subroutine create_ug_c(key) bind(c, name='create_ug_f90')
66 integer(c_int),
intent(inout) :: key
75 subroutine delete_ug_c(key) bind(c, name='delete_ug_f90')
77 integer(c_int),
intent(inout) :: key
79 type(unstructured_grid),
pointer :: self
96 if (.not.
allocated(self%grid(igrid)%lon))
allocate(self%grid(igrid)%lon(self%grid(igrid)%nmga))
97 if (.not.
allocated(self%grid(igrid)%lat))
allocate(self%grid(igrid)%lat(self%grid(igrid)%nmga))
98 if (.not.
allocated(self%grid(igrid)%area))
allocate(self%grid(igrid)%area(self%grid(igrid)%nmga))
99 if (.not.
allocated(self%grid(igrid)%vunit))
allocate(self%grid(igrid)%vunit(self%grid(igrid)%nmga,self%grid(igrid)%nl0))
100 if (.not.
allocated(self%grid(igrid)%lmask))
allocate(self%grid(igrid)%lmask(self%grid(igrid)%nmga,self%grid(igrid)%nl0))
113 do igrid=1,self%ngrid
114 if (.not.
allocated(self%grid(igrid)%fld))
allocate(self%grid(igrid)%fld(self%grid(igrid)%nmga,self%grid(igrid)%nl0, &
115 & self%grid(igrid)%nv,self%grid(igrid)%nts))
128 if (
allocated(self%grid))
then 129 do igrid=1,self%ngrid
130 if (
allocated(self%grid(igrid)%lon))
deallocate(self%grid(igrid)%lon)
131 if (
allocated(self%grid(igrid)%lat))
deallocate(self%grid(igrid)%lat)
132 if (
allocated(self%grid(igrid)%area))
deallocate(self%grid(igrid)%area)
133 if (
allocated(self%grid(igrid)%vunit))
deallocate(self%grid(igrid)%vunit)
134 if (
allocated(self%grid(igrid)%lmask))
deallocate(self%grid(igrid)%lmask)
135 if (
allocated(self%grid(igrid)%fld))
deallocate(self%grid(igrid)%fld)
137 deallocate(self%grid)
subroutine, public allocate_unstructured_grid_coord(self)
subroutine create_ug_c(key)
Linked list implementation.
subroutine delete_ug_c(key)
subroutine, public allocate_unstructured_grid_field(self)
type(registry_t), public unstructured_grid_registry
Linked list interface - defines registry_t type.
Fortran module for handling generic unstructured grid.
subroutine, public delete_unstructured_grid(self)
Derived type containing the data.