# Issues with configuring the UM I/O server

**URL:** <https://forum.access-hive.org.au/t/issues-with-configuring-the-um-i-o-server/4653>\
**Category:** Unified Model\
**Tags:** io-server\
**Created:** [27 June 2025 08:19 UTC](https://forum.access-hive.org.au/t/issues-with-configuring-the-um-i-o-server/4653 "2025-06-27T08:19:06Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![Paul.Gregory](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/paul.gregory/32/2566_2.png) [@Paul.Gregory](https://forum.access-hive.org.au/u/Paul.Gregory)\
**Post date:** [1 July 2025 11:57 UTC](https://forum.access-hive.org.au/t/issues-with-configuring-the-um-i-o-server/4653/6 "2025-07-01T11:57:40Z")

</div>

Thanks to @cbengel for creating a branch of this suite without netCDF outputs, I got the IO server running.

The relevant parts of the `umnsa.fort6.pe0` are

```auto
FILE_MANAGER: Assigned : pseudo-file for UNIX operations
FILE_MANAGER: : id : io_reserved_unit
FILE_MANAGER: : Unit : 10 (portio)
....
792 Processors initialised.
I am PE 0 on gadi-cpu-clx-1621.gadi.nci.org.au
[0] I am running with 2 thread(s).
[0] OpenMP Specification: 201611
FILE_MANAGER: Assigned : ATMOSCNTL
FILE_MANAGER: : id : atmoscntl
FILE_MANAGER: : Unit : 11 (fortran)
FILE_MANAGER: Assigned : SHARED
FILE_MANAGER: : id : shared
FILE_MANAGER: : Unit : 12 (fortran)
...
MPPIO_File_Utils: Initialised file utils using unit 10
...
FILE_MANAGER: Assigned : Reserved unit for re-initialised stream (/home/548/pag548/cylc-run/u-dq126/share/cycle/20220226T0000Z/Flags
hip_ERA5to1km/12km/GAL9/um//umnsaa_pb%N)
FILE_MANAGER: : id : pp1
FILE_MANAGER: : Unit : 11 (portio)
FILE_MANAGER: Assigned : Reserved unit for re-initialised stream (/home/548/pag548/cylc-run/u-dq126/share/cycle/20220226T0000Z/Flags
hip_ERA5to1km/12km/GAL9/um//umnsaa_pa%N)
FILE_MANAGER: : id : pp0
FILE_MANAGER: : Unit : 12 (portio)
FILE_MANAGER: Assigned : Reserved unit for re-initialised stream (/home/548/pag548/cylc-run/u-dq126/share/cycle/20220226T0000Z/Flags
hip_ERA5to1km/12km/GAL9/um//umnsaa_cb%N)
FILE_MANAGER: : id : ppmbc
FILE_MANAGER: : Unit : 13 (portio)
FILE_MANAGER: Assigned : Reserved unit for re-initialised stream (/home/548/pag548/cylc-run/u-dq126/share/cycle/20220226T0000Z/Flags
hip_ERA5to1km/12km/GAL9/um//umnsaa_pvera%N)
FILE_MANAGER: : id : verpp1
FILE_MANAGER: : Unit : 14 (portio)
FILE_MANAGER: Assigned : Reserved unit for re-initialised stream (/home/548/pag548/cylc-run/u-dq126/share/cycle/20220226T0000Z/Flags
hip_ERA5to1km/12km/GAL9/um//umnsaa_pverb%N)
FILE_MANAGER: : id : verpp2
FILE_MANAGER: : Unit : 15 (portio)
FILE_MANAGER: Assigned : Reserved unit for re-initialised stream (/home/548/pag548/cylc-run/u-dq126/share/cycle/20220226T0000Z/Flags
hip_ERA5to1km/12km/GAL9/um//umnsaa_pverc%N)
FILE_MANAGER: : id : verpp3
FILE_MANAGER: : Unit : 16 (portio)
FILE_MANAGER: Assigned : Reserved unit for re-initialised stream (/home/548/pag548/cylc-run/u-dq126/share/cycle/20220226T0000Z/Flags
hip_ERA5to1km/12km/GAL9/um//umnsaa_pverd%N)
FILE_MANAGER: : id : verpp4
FILE_MANAGER: : Unit : 17 (portio)

```

So when using field fields, Unit numbers 11 to 17 are used for outputs.

I’ll now proceed to test a larger I/O server on the larger domains to see what the speed-up is.

RE : Unit number allocations for netCDF outputs.

The `file_manager` module ([https://code.metoffice.gov.uk/trac/um/browser/main/trunk/src/io\_services/model\_api/file\_manager.F90](https://code.metoffice.gov.uk/trac/um/browser/main/trunk/src/io_services/model_api/file_manager.F90)) suggests the units number for file I/O is read from the Fortran derived types

```auto
um_file_list % file_unit_min
um_file_list % file_unit_max

```

There are three types used for `fortran`, `portio` and `netcdf` filetypes:

```auto
147	! The instances of the type used as the master list objects by this module,
148	! there are two distinct file lists depending on the type of file
149	!-------------------------------------------------------------------------------
150	TYPE(um_file_list_type), SAVE, TARGET :: um_file_list_fortran
151	TYPE(um_file_list_type), SAVE, TARGET :: um_file_list_portio
152	TYPE(um_file_list_type), SAVE, TARGET :: um_file_list_netcdf

```

And they are apparently defined here:

```auto
160	INTEGER, PARAMETER :: start_unit_fortran = 10
161	INTEGER, PARAMETER :: end_unit_fortran = 300
162	
163	! Portio
164	INTEGER, PARAMETER :: start_unit_portio = 10
165	INTEGER, PARAMETER :: end_unit_portio = 300
166	
167	! NetCDF
168	INTEGER, PARAMETER :: start_unit_netcdf = 10
169	INTEGER, PARAMETER :: end_unit_netcdf = 300

```

This suggests you can’t, by default, use the I/O server with netCDF outputs as both will want to use Unit number 10.

I can’t see from the source code anyway to override these values via a namelist input.

One fix is to set

```auto
168	INTEGER, PARAMETER :: start_unit_netcdf = 11

```

or to set

```auto
! A flag which forces the portio list to use unique unit numbers
155	LOGICAL, PUBLIC :: portio_unique_units = .FALSE.

```

to `.TRUE.` (why would this be set to `.FALSE.` by default? 🤔 ), which suggests you have to recompile the code to use the I/O with netCDF outputs?

I’m very surprised this is the case, but happy to proceed with this if required.

What’s the best way to ask the UKMO about this?  
A Trac ticket?  
A post to [https://cms-helpdesk.ncas.ac.uk](https://cms-helpdesk.ncas.ac.uk) ?

---

_[View the full topic](https://forum.access-hive.org.au/t/issues-with-configuring-the-um-i-o-server/4653)._
