Opened 11 years ago

Closed 11 years ago

#294 closed help (fixed)

Multi-level user ancillaries

Reported by: swr01hfd Owned by: willie
Component: UM Model Keywords:
Cc: j.cole@… Platform:
UM Version: 6.1

Description

Hi

I'm trying to reconfigure a job (xeamt) to include a multi-level user ancillary but am having problems. The job will perform the reconfiguration but the ancillary file included in the reconfigured .astart file only has 1 level (xeamt.astart). The steps I've followed to create this job are:

  1. Create a User STASHmaster file and insert in User-STASHmaster files, Diags, Progs & Ancills
  2. Setup user Ancillaries in initialisation of User Prognostics. The ancillary field is not to be updated so I've selected option 7 and attached the user ancillary in the the right hand column.

Any ideas why I don't get a 38 level field in my reconfigured start dump?

Cheers
Helen

Change History (12)

comment:1 Changed 11 years ago by willie

  • Owner changed from um_support to willie
  • Status changed from new to assigned

Hi Helen,

You may also have to make an entry under user "multi-level ancillary file and fields" under Atmos > Ancillary > Climatology and set it to update.

Regards,

Willie

comment:2 Changed 11 years ago by swr01hfd

Hi Willie

I've made some progress with this problem. The user stashmaster file I was using specified that the ancillary file should only have 1 level. I've changed this now and am producing a reconfigured start dump that includes a 38 level tracer field. However, the tracer data is still zero in the .astart file. I think the problem is that the levels are set as surface (levels), ranging from 1-38, and not hybrid_ht (levels). I've tried changing a few more variables in the stashmaster file but with no success. Any ideas?

Regards,
Helen

comment:3 Changed 11 years ago by jeff

Hi Helen

Looking at your file /work/n02/n02/hdacre/WORK/EUROPE_ANCIL/vert1_big.pp1 this has stashcodes 33011 etc in it, but the umui and your stashmaster file expect stashcodes 321 etc. You need to have the correct stashcodes in your vert1_big.pp1 file.

Jeff.

comment:4 Changed 11 years ago by swr01hfd

Hi Jeff

Yes, you are right (again!). I had forgotten to change the stashcodes in the ancillary files when I switched from using single level ancillary to multi-level ancillary.

Thanks
Helen

comment:5 Changed 11 years ago by swr01hfd

Hi Jeff

Good news, the reconfiguration is correctly producing a start dump that contains four 38 level tracer ancillaries which is great (xeamu.astart). However, I'm having problems getting the model to read in the tracers and use them as a tracer source. Previously, I've done this using a top and bottom script for a single level ancillary (/work/n02/n02/hdacre/mktracer_scr_6.1) so I'm trying to modify the script for a multi level ancillary (/work/n02/n02/hdacre/mktracer_scr_6.1_vert). At the moment, the model is failing in the run with the error (xeamu000.xeamu.d09166.t082925.leave)

Fortran unit 5 is connected to a sequential formatted text file:

"/work/n02/n02/hdacre/tmp/tmp.nid00004.5735/xeamu.namelists"

lib-4324 : UNRECOVERABLE library error

Unable to find error message (check NLSPATH, file lib.cat)

Encountered during a namelist READ from unit 5

I assume this is because I'm not putting the correct line into the top and bottom script. Any ideas what I'm doing wrong?

Thanks
Helen

comment:6 Changed 11 years ago by jeff

  • Cc j.cole@… added

Hi Helen

Sorry I haven't replied sooner, this query is owned by willie and I didn't realise you had further problems. I've cc myself into the query now. On hector if you do explain lib-4324 you get this

nid00015:jwc$ explain lib-4324
The variable name 'name' is unrecognized in namelist input.

A namelist READ statement encountered a variable name in the current namelist
record that is not a member of the current namelist group.

Check the namelist input file to ensure that input is in the proper format.

See the description of the NAMELIST statement in your Fortran reference
manual.

So it looks like some of the namelist items you have added in mktracer_scr_6.1_vert, haven't been added to the namelist declaration in your code.

Jeff.

comment:7 Changed 11 years ago by swr01hfd

Hi Jeff

Thanks for the reply. Could you tell me where the namelist declaration is in the code please so I can add some items to it.

Thanks
Helen

comment:8 Changed 11 years ago by willie

Hi Helen,

I think it might be in

include/cruntimc.h 88

COMMON /RUN_BL/l_z0_orog,l_use_bl_diag_term, AAL6H505.6

include/cruntimc.h 90

NAMELIST/RUN_BL/l_z0_orog,l_use_bl_diag_term, AAL6H505.8

as this is what is being edited in CNTLATM

Regards,

Willie

comment:9 Changed 11 years ago by swr01hfd

Hi

I've managed to change the namelist declaration to cope with multi level user ancillaries and now I want to use these ancillaries as a source of tracer. I have a modset that reads in single level user ancillaries as tracer source files and I've tried to modify this to cope with multi level user ancillaries but I can't get it to work. (/work/n02/n02/hdacre/WORK/TRACER_MODS/tr_advection_6.1_9grid_vert2.mf77). When I try to compile the job (xeamu) I get the following error which relates to the fact that I have changed a line in the modset from if (ntr.eq.1) jtrsource(ntr) = juser_anc1 to if (ntr.eq.1) jtrsource(ntr) = juser_multi1.

if (ntr.eq.1) jtrsource(ntr) = juser_mult1


pathf95-324 pathf90-3.0: ERROR ATM_STEP, File = atmstep2.f, Line = 7249, Column = 32

Assignment of a rank 1 expression to a rank 0 variable is not allowed.

Any ideas welcome.
Thanks
Helen

comment:10 Changed 11 years ago by willie

Hi Helen,

juser_anci is an integer, whereas juser_multi is a whole array; jtrsource is an array of integers. You can't set an integer to a whole array. Perhaps an array decalaration has been missed?

It would seem profitable to make things like juser_anc1, juser_anc2 etc an array in their own right: juser_anc(). This would simplify the coding in various places.

Hope that helps,

Willie

comment:11 Changed 11 years ago by swr01hfd

Hi Willie

You are right, the variable jtrsource was declared to be an integer. I've changed it to be an array of integers now so hopefully it will work.

Cheers
Helen

comment:12 Changed 11 years ago by willie

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