#2346 closed help (answered)

Global Ancillary Issue in UM 10.6

Reported by: pliojop Owned by: jeff
Component: UM Model Keywords: reconfiguration
Cc: Platform: Monsoon2
UM Version: 10.6


I am running a nested version of the UM 10.6, u-as675, however I am having difficulty in setting my own Sea Ice and SST ancillaries. The suite is run with ECMWF Grib data (see ticket cms.ncas.ac.uk/ticket/2295 for set up around that). The suite works if I run with the standard global SST and sea ice ancils.

However, as part of my set up, I need to apply my own global ancil files for SST and sea ice. I took a copy of the default ancil_versions_ga6 as linked in /cylc-run/u-as675/share/data/etc

ancil_versions_ga6 →/projects/um1/ancil/data/ancil_versions/n320e/GA6.0/latest/ancils

and then changed the symbolic links so that it pointed to my new location.

ancil_versions_ga6 → /projects/polar/jpope/ancils

The new ancil_versions_ga6 file is unchanged apart from to point at a new directory for sea ice and SSTs (/projects/polar/jpope/OSTIA/monthly) and to a new version of the filenames file, which points at the actual SST and sea ice ancil files I want to use from my OSTIA directory.

According to the model output, when I run this new set up, there is an error during the glm_um_recon1 stage, the model finds the sea ice file as it should:

Ancillary File 7 : /projects/polar/jpope/OSTIA/monthly/ostia_seaice_1991_11.anc
OPEN: File /projects/polar/jpope/OSTIA/monthly/ostia_seaice_1991_11.anc to be Opened on Unit 13 Exists
IO: Open: /projects/polar/jpope/OSTIA/monthly/ostia_seaice_1991_11.anc on unit 13
CLOSE: File /projects/polar/jpope/OSTIA/monthly/ostia_seaice_1991_11.anc Closed on Unit 13

However, the job then fails, with the error message:

lib-4212 : UNRECOVERABLE library error

An internal WRITE tried to write beyond the end of an internal file.

Encountered during a sequential formatted WRITE to
Encountered during a sequential formatted WRITE to an internal file (character variable)

Encountered during a sequential formatted WRITE to
Encountered during a sequential formatted WRITE to
Encountered during a sequential formatted WRITE to an internal file (character variable)

an internal file (character variable)
an internal file (character variable)
an internal file (character variable)

lib-4212 : UNRECOVERABLE library error

An internal WRITE tried to write beyond the end of an internal file.

Encountered during a sequential formatted WRITE to an internal file (character variable)

ATP Stack walkback for Rank 3 starting:


ATP Stack walkback for Rank 3 done
Process died with signal 6: 'Aborted'
Forcing core dump of rank 3
View application merged backtrace tree with: stat-view atpMergedBT.dot
You may need to: module load stat

_pmiu_daemon(SIGCHLD): [NID 00210] [c1-0c0s4n2] [Tue Dec 19 13:10:42 2017] PE RANK 9 exit signal Killed
[NID 00210] 2017-12-19 13:10:42 Apid 11712089: initiated application termination
[FAIL] um-recon # return-code=137
2017-12-19T13:10:44Z CRITICAL - Task job script received signal EXIT

I built my ancillary files in xancil from OSTIA data for sea ice and SSTs. Each file contains 30 daily dates for the input options requested by the model.

I'm a bit stumped as to why the model fails. I had a search around previous tickets and changed the time step onto generate the same errors. This however had no effect.

Attachments (1)

xconv_screen_interpolation.png (104.0 KB) - added by pliojop 18 months ago.
Interpolation options in xconv.

Download all attachments as: .zip

Change History (13)

comment:1 Changed 18 months ago by jeff

The resolution of your ancillary files is 7200x3600 which doesn't match the resolution of your run. You will need to interpolate your input files to your model grid before you convert them to ancillary files. When you do this make sure all sea points have data values not missing data values.

The error you see is because there is a bug in the Fortran code which was going to give you a, probably not very helpful, error message. From this line in the output


which is this line in file /home/d02/jpope/cylc-run/u-as675/share/fcm_make/preprocess-recon/src/um/src/utility/qxreconf/inancila-rcf_inancila.F90

WRITE(umMessage,'(A,I5)') ' INTHD(6) : ',inthd(6,i),' ?'

which should be

WRITE(umMessage,'(A,I5,A)') ' INTHD(6) : ',inthd(6,i),' ?'

I guess this has been fixed in later model versions.


comment:2 Changed 18 months ago by pliojop

Thanks Jeff.

A rookie error. Apologies.


comment:3 Changed 18 months ago by pliojop

  • Resolution set to fixed
  • Status changed from new to closed

comment:4 Changed 18 months ago by pliojop

  • Resolution fixed deleted
  • Status changed from closed to reopened

Afternoon Jeff,

I have re-opened this ticket as it is relating to the same job and set up, and I was looking for some advice.

I have been struggling to avoid having erroneous values close to land when I regrid my input SST and sea ice data for creating Ancils for the nested suite, which has an ~ 8km resolution. I loaded my full sized OSTIA file, with 7200 x 3600 grid points into xconv, selected bilienar interpolation. I then completed the remaining trans options so that the output would be identical in distribution to the target land-sea mask file.

I loaded the new file into xancil, and built the new ancillary files (with the land-sea mask created by the model generated LSM), however I ended up with erroneous data near the edge of Iceland and some sections of Greenland.

I've battered a few options around within xconv, choosing both linear and quadratic options for bilinear interpolation, ticking the box for "field contains missing data", and I have tried using CDO (remapcon command) to change the global sized file into the 8 km resolution and then using xconv to select the area and rotated poles, to avoid xconv doing the interpolation.

However, no matter the combinations I still end up with the erroneous data points when I generate my file in xancil.

If I first perform an "Extrapolate over missing date" (as suggested on a similar ticket: http://cms.ncas.ac.uk/ticket/2038), I produce Ancil files that the model can read and run. However on closer inspection there are still issues with the data points closest to the land. In the sea ice files, these are negative numbers, and in the SST field, they have been set as the minimum value, 271.40, which means that the model run would have issues with sudden changes in SST value to being below freezing in an area that doesn't have sea ice

I tried as an alternative building the files using the CAP program within my UM suite, however I was unable to generate daily data (despite the long climatology being set to true) and therefore created files that were filled with errors based around the timestep. There doesn't appear to be a setting within that to ask for daily data to be created, either within the GUI or the relevant rose-app.conf section.

Given the CAP issue, I was hoping to resolve the erroneous data issue as that feels like it should be easier. I am aware that it could be done manually, but as I have 264 files to work through, I was hoping for a more top level resolution within xconv and therefore I wanted to check that I hadn't missed an obvious option.



comment:5 Changed 18 months ago by jeff

  • Owner changed from um_support to jeff
  • Status changed from reopened to accepted

Hi James

Using "Extrapolate over missing data" is the method usually used to avoid contaminating data values with missing data values.

Do you have a xancil .job file I can look at, so I can see what options you have used? Also can you give me an example point you think is incorrect?


comment:6 Changed 18 months ago by pliojop

Hi Jeff,

I have created a folder on archer at: /work/n02/n02/japope/for_jeff (I have also followed chmod instructions on another ticket so I hope you can see it).

In there are the input netcdf's (including an LSM file taken from the model run on Monsoon), the output .anc files and the xancil job as it was run to create those files.

An example locality is 355.82, -5.9040, in the SST file, where SST's are 271.4, but the next grid point due south: 355.82, -5.9760 the SST value 280.37. The same locality is also an issue in the sea ice file. An xconv plot of eitehr .anc file highlights the issues.



Last edited 18 months ago by pliojop (previous) (diff)

comment:7 Changed 18 months ago by jeff

Hi James

SST file ostia_sst_1991_11_regrid_then_extrapolate_nedted.nc has unphysical SST values, so missing data values must be being used as data somewhere in your conversion process. Can you tell me each step in the conversion process, including file names.


comment:8 Changed 18 months ago by pliojop

Hi Jeff,

The folder /work/n02/n02/japope/for_jeff/step_by_step contains all the files for walking through this.

ostia_seaice_1991_11.nc and ostia_sst_1991_11.nc are the original resolution files 7200 x 3600.

I regrid using bilinear interpolation that file to the dimensions shown in xconv when I open the model LSM file. The selections made in xconv can be seen in the image xconv_screen_interpolation.png in the folder.

I then saved that file as ostia_sst_1991_11_bilinear_interpolation.nc and ostia_seaice_1991_11_bilinear_interpolation.nc

I then used the "extrapolate over missing data option" and saved these as ostia_sst_1991_11_bilinear_interpolation_extrapolate.nc and ostia_seaice_1991_11_bilinear_interpolation_extrapolate.nc

I loaded these files into xancil (as per the xancil job: step_by_step_xancil_setup_sst_sice.job.

The two new ancil files, sst_step_by_step.anc and ice_step_by_step.anc, now appear to be more sensible without the strange values. Having run a job with these new ancils, they have worked fine. I think that it worked this time because I ticked the option for field contains missing data, which I didn't in the original file creation.

comment:9 Changed 18 months ago by jeff

Hi James

By selecting the "Field contains missing data" option, when you do the bilinear interpolation if any point on the source grid contains missing data then the corresponding point on the target grid will be set to missing data value. Then the extrapolation step will fix up any sea points set as missing data values. Without selecting the "Field contains missing data" option the missing data value would be used in the interpolation.

I usually recommend doing the extrapolation step before the interpolation, but how much difference that would make I don't know. Doing it my way the anomalous sea points will have a mixture of real data values and extrapolated data values, doing it your way they are all extrapolated.


Changed 18 months ago by pliojop

Interpolation options in xconv.

comment:10 Changed 18 months ago by pliojop

Hi Jeff,

Thanks for your help, I have added the screenshot of my xconv options for the interpolation, in case anyone comes across this thread in the future.

I did look at using the extrapolation prior to the re-gridding and recieved the error message in xconv of:

"Extrapolate data over missing data values
Exceeding maximum number of iterations (100) for extrapolation "

When I ran it on my 7200 x 3600 size file.

Thanks again,


comment:11 Changed 18 months ago by jeff

Hi James

The extrapolation message means some missing data values won't get data values, but the important coastal points will so you can still use this method even with the warning message.


comment:12 Changed 18 months ago by jeff

  • Resolution set to answered
  • Status changed from accepted to closed
Note: See TracTickets for help on using tickets.