diff --git a/field_manager/field_manager.F90 b/field_manager/field_manager.F90 index 8ce6f1e8a9..1cb346350d 100644 --- a/field_manager/field_manager.F90 +++ b/field_manager/field_manager.F90 @@ -274,7 +274,7 @@ module field_manager_mod !> The length of a character string representing the field path. integer, parameter, public :: fm_path_name_len = 512 !> The length of a character string representing character values for the field. -integer, parameter, public :: fm_string_len = 128 +integer, parameter, public :: fm_string_len = 1024 !> The length of a character string representing the various types that the values of the field can take. integer, parameter, public :: fm_type_name_len = 8 !> Number of models (ATMOS, OCEAN, LAND, ICE, COUPLER). diff --git a/fms/fms_io.F90 b/fms/fms_io.F90 index bfa16a4949..f135e53730 100644 --- a/fms/fms_io.F90 +++ b/fms/fms_io.F90 @@ -137,7 +137,7 @@ module fms_io_mod integer, parameter, private :: max_fields=400 integer, parameter, private :: max_axes=40 integer, parameter, private :: max_atts=20 -integer, parameter, private :: max_domains = 10 +integer, parameter, private :: max_domains = 100 integer, parameter, private :: MAX_TIME_LEVEL_REGISTER = 2 integer, parameter, private :: MAX_TIME_LEVEL_WRITE = 20 integer, parameter :: max_axis_size=10000 @@ -712,8 +712,9 @@ subroutine fms_io_init() end select ! Initially allocate files_write and files_read - allocate(files_write(max_files_w),files_read(max_files_r)) - allocate(registered_file(max_files_w)) + if (.not. allocated(files_write) ) allocate(files_write(max_files_w)) + if (.not. allocated(files_read) ) allocate(files_read(max_files_r)) + if (.not. allocated(registered_file)) allocate(registered_file(max_files_w)) do i = 1, max_domains array_domain(i) = NULL_DOMAIN2D @@ -7895,11 +7896,12 @@ end subroutine get_mosaic_tile_file_ug !############################################################################# - subroutine get_mosaic_tile_grid(grid_file, mosaic_file, domain, tile_count) + subroutine get_mosaic_tile_grid(grid_file, mosaic_file, domain, tile_count, custom_path) character(len=*), intent(out) :: grid_file character(len=*), intent(in) :: mosaic_file type(domain2D), intent(in) :: domain integer, intent(in), optional :: tile_count + character(len=*), intent(in), optional :: custom_path integer :: tile, ntileMe integer, dimension(:), allocatable :: tile_id @@ -7909,7 +7911,11 @@ subroutine get_mosaic_tile_grid(grid_file, mosaic_file, domain, tile_count) allocate(tile_id(ntileMe)) tile_id = mpp_get_tile_id(domain) call read_data(mosaic_file, "gridfiles", grid_file, level=tile_id(tile) ) - grid_file = 'INPUT/'//trim(grid_file) + if (.not. present(custom_path)) then + grid_file = 'INPUT/'//trim(grid_file) + else + grid_file = trim(custom_path)//'/'//trim(grid_file) + endif deallocate(tile_id) end subroutine get_mosaic_tile_grid diff --git a/tracer_manager/tracer_manager.F90 b/tracer_manager/tracer_manager.F90 index 7534f5d6a5..79ea8ac623 100644 --- a/tracer_manager/tracer_manager.F90 +++ b/tracer_manager/tracer_manager.F90 @@ -159,7 +159,7 @@ module tracer_manager_mod !> @{ integer :: num_tracer_fields = 0 -integer, parameter :: MAX_TRACER_FIELDS = 150 +integer, parameter :: MAX_TRACER_FIELDS = 250 integer, parameter :: MAX_TRACER_METHOD = 20 integer, parameter :: NO_TRACER = 1-HUGE(1) integer, parameter :: NOTRACER = -HUGE(1)