Opened 3 weeks ago

Last modified 2 weeks ago

#2287 accepted help

Problems with postproc app

Reported by: jmo210 Owned by: ros
Priority: normal Component: UM Model
Keywords: post processing app Cc:
Platform: ARCHER UM Version: 10.5



I am currently trying to run a set of AMIP experiments with different SST patterns. I have written SST and SIC ancils and successfully run for 6 months. The suite is u-am819 and is adapted from u-ae523, the development GA7.0 N96 UM10.5 suite.

I am having problem with some postprocessing at the moment. My aims are twofold:

1) to archive data to the RDF

2) cut down on the amount of written data by deleting superseded dumps

I have made an attempt at this by going through the ARCHER post processing app documentation (, although running again for 6 months I seem to have failed on both of the above objectives. Following the steps in the documentation has led to a number of errors being flagged in the postproc app, which might be the problem. Alternatively I might be misunderstanding some of the switches on the "postproc → Atmosphere" panel.

A few pointers would be much appreciated.

Many thanks,

Change History (7)

comment:1 Changed 3 weeks ago by ros

  • Owner changed from um_support to ros
  • Status changed from new to accepted
  • UM Version changed from <select version> to 10.5

Hi Joe,

Did you run the rose app-upgrade commands, from what I can see these haven't been run properly as the command is telling me the apps are still at revision HEAD. If it had run successfully the warning triangles wouldn't be there.

You can probably fix things by going into each panel with a red triangle and click on the blue plus signs and "add to configuration".

In panel suite conf → Build and Run you haven't switched on post-processing…

You are running from the beginning again aren't you or were you just hoping to do the post-processing from where you restart?


comment:2 Changed 3 weeks ago by jmo210

Hi Ros,

Yes, I ran the commands as detailed in the documentation. I followed the instruction to change the postproc meta to /home/ros/meta/postproc_2.0_pp_with_rose_bunch/r1859/rose-meta/archive_and_meaning/postproc/HEAD. Setting HEAD to postproc_2.0 doesn't give me an archer value on the archive_command option on the "Post Processing - common settings" panel.

I have got rid of the warnings.

Apologies for not switching on post-processing in the Build and Run! I'm assuming this was the main culprit?!

I ran from the beginning again.


comment:3 Changed 2 weeks ago by jmo210

Hi Ros,

I'm still having some difficulty getting the postproc app to work. I get the warning:

/usr/bin/env: python2.7: No such file or directory

So the script then fails to run. I'm not entirely sure where to point to the PYTHONPATH. Following instructions ( to set a pre-script under postproc? in suite.rc also didn't work.

Any pointers would be much appreciated.


comment:4 Changed 2 weeks ago by ros

Hi Joe,

In your ~roses/u-am819/suite.rc you need to add the line pre-script line in the position below:

        inherit = POSTPROC_RESOURCE
        pre-script = "module load nco/4.6.8; module load anaconda; export PYTHONPATH=$PYTHONPATH:$UMDIR/lib/python2.7; module list; ulimit -s unlimited"
            CYCLEPERIOD = $(rose date $CYLC_TASK_CYCLE_POINT $CYLC_TASK_CYCLE_POINT --calendar={{CALENDAR}} --offset2 -{{RESUB}} --print-format='y,m,d,h,M,s')
            ROSE_APP_OPT_CONF_KEYS = $(if [[ $CYLC_TASK_CYCLE_POINT == $CYLC_SUITE_FINAL_CYCLE_POINT ]]; then echo "finalcycle"; else echo ""; fi )

Please try this again. Then if it fails again, I can look at the output with this line in.

Last edited 2 weeks ago by ros (previous) (diff)

comment:5 Changed 2 weeks ago by jmo210

It fails, being unable to find the PPTRANSFER key in the os.environ dictionary:

Traceback (most recent call last):
  File "/work/n02/n02/jmo210/cylc-run/u-am819/share/fcm_make_pp/build/bin/", line 89, in <module>
  File "/work/n02/n02/jmo210/cylc-run/u-am819/share/fcm_make_pp/build/bin/", line 72, in main
    model = mclass(nlfile)
  File "/fs2/n02/n02/jmo210/cylc-run/u-am819/share/fcm_make_pp/build/bin/", line 64, in __init__
    self.suite = suite.SuiteEnvironment(self.share, input_nl)
  File "/fs2/n02/n02/jmo210/cylc-run/u-am819/share/fcm_make_pp/build/bin/", line 81, in __init__
    self.manifest = archer.rdf_setup(self.nl_arch, model, self.envars)
  File "/fs2/n02/n02/jmo210/cylc-run/u-am819/share/fcm_make_pp/build/bin/", line 43, in rdf_setup
    if os.environ['PPTRANSFER'] == 'True':
  File "/home/y07/y07/cse/anaconda/python2/lib/python2.7/", line 40, in __getitem__
    raise KeyError(key)
[FAIL] atmos # return-code=1
Received signal ERR
cylc (scheduler - 2017-10-03T15:55:38Z): CRITICAL Task job script received signal ERR at 2017-10-03T15:55:38Z
cylc (scheduler - 2017-10-03T15:55:38Z): CRITICAL failed at 2017-10-03T15:55:38Z

I am not attempting to transfer data to JASMIN at present. I'm assuming I need to define this key and set the value to 'False'? How and where do I do that?


comment:6 Changed 2 weeks ago by ros

Hi Joe,

In the suite.rc file under [[postproc]] add PPTRANSFER to the environment section:

        inherit = ...
            PPTRANSFER = false


comment:7 Changed 2 weeks ago by jmo210

Hi Ros,

This seems to be working in terms of archiving to data to the RDF.

I hope you don't mind if I ask a couple of other questions. First some back on the experimental design. I am attempting to run experiments with annually repeating monthly SSTs and sea ice. I have attempted to replicate the ancils as they appear in the development suite, with the exception that I have written them at monthly resolution (rather than the daily resolution of the Reynolds SST dataset) but kept the interval between ancillary updates at 1 day. Presumably some kind of interpolation is performed on the monthly data? I have written ancils with a time dimension size of 376 to conform the (376*12) size of the default ancils.

1) Given that there are only 12 unique time values at any given grid point do I actually need to write such a large ancillary file and can I just replicate the other updating ancils like ozone?

2) If I wanted to extend the run to a length of, say, 50 years, rather than the current ~20 years do I just change the model basis time and the total run length? Presumably the SST and sea ice ancils would need to reflect this and be of suitable length? If I did change to a 12 month long ancils as in 1) what would I want to set the data (days) to in the ancil files?

My main focus is on producing longer runs and the easiest way to tweak the suite to achieve this.

Finally and slightly unrelated:

3) I noticed that the 'SURFACE TEMPERATURE AFTER TIMESTEP' that I output is slightly different to the 'SURFACE TEMPERATURE AFTER TIMESTEP' provided by the SST ancil for the same timestep. Is this a consequence of some sort of interpolation happening to update the ancil daily or just a precision thing, or maybe a combination of both.

Apologies for the barrage of questions. I just want to ensure that I have everything in order before submitting long runs.


Note: See TracTickets for help on using tickets.