DimSpec.F90 Source File


This file depends on

sourcefile~~dimspec.f90~~EfferentGraph sourcefile~dimspec.f90 DimSpec.F90 sourcefile~horizontalstaggerloc.f90 HorizontalStaggerLoc.F90 sourcefile~dimspec.f90->sourcefile~horizontalstaggerloc.f90 sourcefile~ungriddeddimspec.f90 UngriddedDimSpec.F90 sourcefile~dimspec.f90->sourcefile~ungriddeddimspec.f90 sourcefile~verticalstaggerloc.f90 VerticalStaggerLoc.F90 sourcefile~dimspec.f90->sourcefile~verticalstaggerloc.f90

Files dependent on this one

sourcefile~~dimspec.f90~~AfferentGraph sourcefile~dimspec.f90 DimSpec.F90 sourcefile~fieldspec.f90 FieldSpec.F90 sourcefile~fieldspec.f90->sourcefile~dimspec.f90 sourcefile~oomph.f90 oomph.F90 sourcefile~oomph.f90->sourcefile~dimspec.f90 sourcefile~oomph.f90->sourcefile~fieldspec.f90 sourcefile~varconnpoint.f90 VarConnPoint.F90 sourcefile~varconnpoint.f90->sourcefile~oomph.f90 sourcefile~varspectype.f90 VarSpecType.F90 sourcefile~varspectype.f90->sourcefile~oomph.f90 sourcefile~mapl_generic.f90 MAPL_Generic.F90 sourcefile~mapl_generic.f90->sourcefile~varspectype.f90 sourcefile~varspec.f90 VarSpec.F90 sourcefile~mapl_generic.f90->sourcefile~varspec.f90 sourcefile~statespecification.f90 StateSpecification.F90 sourcefile~statespecification.f90->sourcefile~varspectype.f90 sourcefile~varspecmiscmod.f90 VarSpecMiscMod.F90 sourcefile~statespecification.f90->sourcefile~varspecmiscmod.f90 sourcefile~varconn.f90 VarConn.F90 sourcefile~varconn.f90->sourcefile~varconnpoint.f90 sourcefile~varconntype.f90 VarConnType.F90 sourcefile~varconn.f90->sourcefile~varconntype.f90 sourcefile~varconn.f90->sourcefile~varspec.f90 sourcefile~varconntype.f90->sourcefile~varconnpoint.f90 sourcefile~varspec.f90->sourcefile~varspectype.f90 sourcefile~varspecmiscmod.f90->sourcefile~varconnpoint.f90 sourcefile~varspecmiscmod.f90->sourcefile~varspectype.f90 sourcefile~varspecmiscmod.f90->sourcefile~varconn.f90 sourcefile~varspecmiscmod.f90->sourcefile~varconntype.f90 sourcefile~varspecmiscmod.f90->sourcefile~varspec.f90 sourcefile~comp_testing_driver.f90 Comp_Testing_Driver.F90 sourcefile~comp_testing_driver.f90->sourcefile~mapl_generic.f90 sourcefile~componentspecification.f90 ComponentSpecification.F90 sourcefile~componentspecification.f90->sourcefile~statespecification.f90 sourcefile~extdatagridcompmod.f90 ExtDataGridCompMod.F90 sourcefile~extdatagridcompmod.f90->sourcefile~mapl_generic.f90 sourcefile~extdatagridcompmod.f90->sourcefile~varspec.f90 sourcefile~extdatagridcompng.f90 ExtDataGridCompNG.F90 sourcefile~extdatagridcompng.f90->sourcefile~mapl_generic.f90 sourcefile~extdatagridcompng.f90->sourcefile~varspec.f90 sourcefile~genericcplcomp.f90 GenericCplComp.F90 sourcefile~genericcplcomp.f90->sourcefile~varspecmiscmod.f90 sourcefile~mapl.f90 MAPL.F90 sourcefile~mapl.f90->sourcefile~mapl_generic.f90 sourcefile~mapl.f90->sourcefile~varspecmiscmod.f90 sourcefile~mapl_capgridcomp.f90 MAPL_CapGridComp.F90 sourcefile~mapl_capgridcomp.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_geosatmaskmod.f90 MAPL_GeosatMaskMod.F90 sourcefile~mapl_geosatmaskmod.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_historycollection.f90 MAPL_HistoryCollection.F90 sourcefile~mapl_historycollection.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_historygridcomp.f90 MAPL_HistoryGridComp.F90 sourcefile~mapl_historygridcomp.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_historygridcomp.f90->sourcefile~varspecmiscmod.f90 sourcefile~mapl_orbgridcompmod.f90 MAPL_OrbGridCompMod.F90 sourcefile~mapl_orbgridcompmod.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_stationsamplermod.f90 MAPL_StationSamplerMod.F90 sourcefile~mapl_stationsamplermod.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_trajectorymod.f90 MAPL_TrajectoryMod.F90 sourcefile~mapl_trajectorymod.f90->sourcefile~mapl_generic.f90 sourcefile~maplgeneric.f90 MaplGeneric.F90 sourcefile~maplgeneric.f90->sourcefile~statespecification.f90 sourcefile~maplgeneric.f90->sourcefile~varconn.f90 sourcefile~maplgeneric.f90->sourcefile~varconntype.f90 sourcefile~maplgeneric.f90->sourcefile~varspecmiscmod.f90 sourcefile~test_varspec.pf Test_VarSpec.pf sourcefile~test_varspec.pf->sourcefile~varspec.f90 sourcefile~varconnvector.f90 VarConnVector.F90 sourcefile~varconnvector.f90->sourcefile~varconntype.f90 sourcefile~varspecptr.f90 VarSpecPtr.F90 sourcefile~varspecptr.f90->sourcefile~varspec.f90 sourcefile~varspecvector.f90 VarSpecVector.F90 sourcefile~varspecvector.f90->sourcefile~varspec.f90

Source Code

module oomph_DimsSpec
   use oomph_UngriddedDimSpec
   use oomph_HorizontalStaggerLoc
   use oomph_VerticalStaggerLoc
   implicit none

   private

   public :: DimsSpec
   type :: DimsSpec
      type(HorizontalStaggerLoc) :: horz_stagger_loc  !  NONE, CENTER, TILE
      type(VerticalStaggerLoc) :: vert_stagger_loc
      type(UngriddedDimSpec), allocatable :: ungridded_dim_specs(:)
      integer :: halo_width
   end type DimsSpec

   interface DimsSpec
      module procedure new_DimsSpec_simple
      module procedure new_DimsSpec_w_ungridded
      module procedure new_DimsSpec_w_halo
   end interface DimsSpec

contains

   pure function new_DimsSpec_simple(horz_stagger_loc, vert_stagger_loc) result(spec)
      type(DimsSpec) :: spec
      type(HorizontalStaggerLoc), intent(in) :: horz_stagger_loc
      type(VerticalStaggerLoc) , intent(in) :: vert_stagger_loc
      type(UngriddedDimSpec) :: no_ungridded(0)
      spec = DimsSpec(horz_stagger_loc, vert_stagger_loc, ungridded_dim_specs=no_ungridded, halo_width=0)
   end function new_DimsSpec_simple


   pure function new_DimsSpec_w_ungridded(horz_stagger_loc, vert_stagger_loc, ungridded_dim_specs) result(spec)
      type(DimsSpec) :: spec
      type(HorizontalStaggerLoc), intent(in) :: horz_stagger_loc
      type(VerticalStaggerLoc) , intent(in) :: vert_stagger_loc
      type(UngriddedDimSpec), intent(in) :: ungridded_dim_specs(:)
      spec = DimsSpec(horz_stagger_loc, vert_stagger_loc, ungridded_dim_specs, halo_width=0)
   end function new_DimsSpec_w_ungridded


   pure function new_DimsSpec_w_halo(horz_stagger_loc, vert_stagger_loc, ungridded_dim_specs, halo_width) result(spec)
      type(DimsSpec) :: spec
      type(HorizontalStaggerLoc), intent(in) :: horz_stagger_loc
      type(VerticalStaggerLoc) , intent(in) :: vert_stagger_loc
      type(UngriddedDimSpec), intent(in) :: ungridded_dim_specs(:)
      integer, intent(in) :: halo_width
      spec%horz_stagger_loc = horz_stagger_loc
      spec%vert_stagger_loc = vert_stagger_loc
      spec%ungridded_dim_specs = ungridded_dim_specs
      spec%halo_width = halo_width
   end function new_DimsSpec_w_halo

end module oomph_DimsSpec