Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
character(len=*), | intent(in), | optional | :: | grid_name | ||
integer, | intent(in), | optional | :: | grid_type | ||
integer, | intent(in), | optional | :: | im_world | ||
integer, | intent(in), | optional | :: | lm | ||
integer, | intent(in), | optional | :: | nx | ||
integer, | intent(in), | optional | :: | ny | ||
integer, | intent(in), | optional | :: | ims(:) | ||
integer, | intent(in), | optional | :: | jms(:) | ||
real(kind=REAL32), | intent(in), | optional | :: | stretch_factor | ||
real(kind=REAL32), | intent(in), | optional | :: | target_lon | ||
real(kind=REAL32), | intent(in), | optional | :: | target_lat | ||
integer, | intent(out), | optional | :: | rc |
! At present pfio does not seem to work with string variables ! allocate(cvar(4,6)) ! cvar =reshape([” Y:-X”, ” X:-Y”, ” Y:Y “, ” X:X “, & ! ” Y:Y “, ” X:X “, ” Y:-X”, ” X:-Y”, & ! ” Y:-X”, ” X:-Y”, ” Y:Y “, ” X:X “, & ! ” Y:Y “, ” X:X “, ” Y:-X”, ” X:-Y”, & ! ” Y:-X”, ” X:-Y”, ” Y:Y “, ” X:X “, & ! ” Y:Y “, ” X:X “, ” Y:-X”, ” X:-Y” ], [ncontact,nf]) ! v = Variable(type=PFIO_STRING, dimensions=’orientationStrLen,ncontact,nf’) ! call v%add_attribute(‘long_name’, ‘orientation of boundary’) ! call v%add_const_value(UnlimitedEntity(cvar)) ! call metadata%add_variable(‘orientation’, v)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
type(FileMetadata), | intent(inout) | :: | metadata |
$ class (KeywordEnforcer), optional, intent(in) :: unusable $ integer, optional, intent(out) :: rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
type(Variable), | intent(inout) | :: | var |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL32), | intent(in) | :: | xyz(:,:,:,:) | |||
real(kind=REAL32), | intent(out) | :: | u(:,:) | |||
real(kind=REAL32), | intent(out) | :: | v(:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL64), | intent(in) | :: | xyz(:,:,:,:) | |||
real(kind=REAL64), | intent(out) | :: | u(:,:) | |||
real(kind=REAL64), | intent(out) | :: | v(:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL32), | intent(in) | :: | xyz(:,:,:,:) | |||
real(kind=REAL32), | intent(out) | :: | u(:,:,:) | |||
real(kind=REAL32), | intent(out) | :: | v(:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL64), | intent(in) | :: | xyz(:,:,:,:) | |||
real(kind=REAL64), | intent(out) | :: | u(:,:,:) | |||
real(kind=REAL64), | intent(out) | :: | v(:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL32), | intent(in) | :: | xyz(:,:,:,:) | |||
real(kind=REAL32), | intent(out) | :: | u(:,:) | |||
real(kind=REAL32), | intent(out) | :: | v(:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL64), | intent(in) | :: | xyz(:,:,:,:) | |||
real(kind=REAL64), | intent(out) | :: | u(:,:) | |||
real(kind=REAL64), | intent(out) | :: | v(:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL32), | intent(in) | :: | xyz(:,:,:,:) | |||
real(kind=REAL32), | intent(out) | :: | u(:,:,:) | |||
real(kind=REAL32), | intent(out) | :: | v(:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL64), | intent(in) | :: | xyz(:,:,:,:) | |||
real(kind=REAL64), | intent(out) | :: | u(:,:,:) | |||
real(kind=REAL64), | intent(out) | :: | v(:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(in) | :: | this | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(in) | :: | this | |||
class(AbstractGridFactory), | intent(in) | :: | a |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout) | :: | this | |||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(in) | :: | a | |||
class(AbstractGridFactory), | intent(in) | :: | b |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
type(ESMF_Grid), | intent(inout) | :: | grid | |||
integer, | intent(out), | allocatable | :: | local_start(:) | ||
integer, | intent(out), | allocatable | :: | global_start(:) | ||
integer, | intent(out), | allocatable | :: | global_count(:) | ||
type(FileMetadata), | intent(in), | optional | :: | metaData | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
type(ESMF_Grid), | intent(inout) | :: | grid | |||
integer, | intent(out), | allocatable | :: | local_start(:) | ||
integer, | intent(out), | allocatable | :: | global_start(:) | ||
integer, | intent(out), | allocatable | :: | global_count(:) | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
real, | intent(in), | pointer | :: | fpointer(:,:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
real, | intent(in), | pointer | :: | fpointer(:,:,:) | ||
type(FileMetadata), | intent(in), | optional | :: | metaData |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | target | :: | this | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout) | :: | this | |||
type(ESMF_Grid), | intent(in) | :: | grid | |||
real(kind=ESMF_KIND_R4), | intent(out) | :: | obs_time(:,:) | |||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout) | :: | this | |||
type(ESMF_Time), | intent(in) | :: | interval(2) | |||
integer, | intent(out), | allocatable | :: | xy_mask(:,:) | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(in) | :: | this | |||
type(ESMF_Time), | intent(in) | :: | interval(2) | |||
integer, | intent(out) | :: | xy_subset(2,2) | |||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
real(kind=REAL32), | intent(inout) | :: | array(:,:) | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(in), | optional | :: | halo_width | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
integer, | intent(in), | optional | :: | halo_width | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout) | :: | this | |||
type(ESMF_Config), | intent(inout) | :: | config | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(XYGridFactory), | intent(inout) | :: | this | |||
type(FileMetadata), | intent(in), | target | :: | file_metadata | ||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
logical, | intent(in), | optional | :: | force_file_coordinates | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(XYGridFactory), | intent(inout) | :: | this | |||
type(ESMF_Config), | intent(inout) | :: | config | |||
character(len=*), | intent(in) | :: | prefix | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(XYGridFactory), | intent(inout) | :: | this | |||
type(ESMF_DistGrid), | intent(in) | :: | dist_grid | |||
type(ESMF_LocalArray), | intent(in) | :: | lon_array | |||
type(ESMF_LocalArray), | intent(in) | :: | lat_array | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout) | :: | this | |||
type(ESMF_Config), | intent(inout) | :: | config | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
type(ESMF_Config), | intent(inout) | :: | config | |||
character(len=*), | intent(in) | :: | prefix | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
type(ESMF_DistGrid), | intent(in) | :: | dist_grid | |||
type(ESMF_LocalArray), | intent(in) | :: | lon_array | |||
type(ESMF_LocalArray), | intent(in) | :: | lat_array | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(inout) | :: | this | |||
type(FileMetadata), | intent(in), | target | :: | file_metadata | ||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
logical, | intent(in), | optional | :: | force_file_coordinates | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(out) | :: | nx | |||
integer, | intent(out) | :: | ny | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(in), | optional | :: | reduceFactor | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout) | :: | this | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(in) | :: | this | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(XYGridFactory), | intent(in) | :: | a | |||
class(AbstractGridFactory), | intent(in) | :: | b |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(in) | :: | this | |||
class(AbstractGridFactory), | intent(in) | :: | a |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL32), | intent(in) | :: | u(:,:) | |||
real(kind=REAL32), | intent(in) | :: | v(:,:) | |||
real(kind=REAL32), | intent(out) | :: | xyz(:,:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL64), | intent(in) | :: | u(:,:) | |||
real(kind=REAL64), | intent(in) | :: | v(:,:) | |||
real(kind=REAL64), | intent(out) | :: | xyz(:,:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL32), | intent(in) | :: | u(:,:,:) | |||
real(kind=REAL32), | intent(in) | :: | v(:,:,:) | |||
real(kind=REAL32), | intent(out) | :: | xyz(:,:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL64), | intent(in) | :: | u(:,:,:) | |||
real(kind=REAL64), | intent(in) | :: | v(:,:,:) | |||
real(kind=REAL64), | intent(out) | :: | xyz(:,:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL32), | intent(in) | :: | u(:,:) | |||
real(kind=REAL32), | intent(in) | :: | v(:,:) | |||
real(kind=REAL32), | intent(out) | :: | xyz(:,:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL64), | intent(in) | :: | u(:,:) | |||
real(kind=REAL64), | intent(in) | :: | v(:,:) | |||
real(kind=REAL64), | intent(out) | :: | xyz(:,:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL32), | intent(in) | :: | u(:,:,:) | |||
real(kind=REAL32), | intent(in) | :: | v(:,:,:) | |||
real(kind=REAL32), | intent(out) | :: | xyz(:,:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(AbstractGridFactory), | intent(inout), | target | :: | this | ||
real(kind=REAL64), | intent(in) | :: | u(:,:,:) | |||
real(kind=REAL64), | intent(in) | :: | v(:,:,:) | |||
real(kind=REAL64), | intent(out) | :: | xyz(:,:,:,:) | |||
character(len=*), | intent(in) | :: | basis | |||
class(KeywordEnforcer), | intent(in), | optional | :: | unusable | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CubedSphereGridFactory), | intent(in) | :: | this |
type, extends(AbstractGridFactory) :: CubedSphereGridFactory private character(len=:), allocatable :: grid_name integer :: grid_type = MAPL_UNDEFINED_INTEGER ! Grid dimensions - Note that we only support "square" grids integer :: im_world = MAPL_UNDEFINED_INTEGER integer :: lm = MAPL_UNDEFINED_INTEGER integer :: ntiles = NUM_CUBE_FACES ! Domain decomposition: - note that we only support "square" dec integer :: nx = MAPL_UNDEFINED_INTEGER integer :: ny = MAPL_UNDEFINED_INTEGER integer, allocatable :: ims(:) integer, allocatable :: jms(:) ! rectangle decomposition integer, allocatable :: jms_2d(:,:) ! stretching parameters real :: stretch_factor = MAPL_UNDEFINED_REAL real :: target_lon = MAPL_UNDEFINED_REAL real :: target_lat = MAPL_UNDEFINED_REAL real :: target_lon_degrees = MAPL_UNDEFINED_REAL real :: target_lat_degrees = MAPL_UNDEFINED_REAL logical :: stretched_cube = .false. ! For halo type(ESMF_RouteHandle) :: rh logical :: halo_initialized = .false. contains procedure :: make_new_grid procedure :: create_basic_grid procedure :: initialize_from_file_metadata procedure :: initialize_from_config_with_prefix procedure :: initialize_from_esmf_distGrid procedure :: halo_init procedure :: halo procedure :: check_and_fill_consistency procedure :: equals procedure :: generate_grid_name procedure :: to_string procedure :: append_metadata procedure :: get_grid_vars procedure :: get_file_format_vars procedure :: append_variable_metadata procedure :: generate_file_bounds procedure :: generate_file_corner_bounds procedure :: generate_file_reference2D procedure :: generate_file_reference3D procedure :: get_fake_longitudes procedure :: get_fake_latitudes procedure :: decomps_are_equal procedure :: physical_params_are_equal end type CubedSphereGridFactory