This site is migrating to a new forum software on Tuesday, September 24th 2019, you may experience a short downtime during this transition

Main menu


Variable not on iop initial file

6 posts / 0 new
Last post
Variable not on iop initial file

Hi All,

I am attempting to run CAM in single column mode on yellowstone and stumbled into an error that I am struggling to troubleshoot:


CHECK_VAR INFO: variable CLAT1 is not on file
(shr_sys_abort) ERROR: CLAT not on iop initial file
(shr_sys_abort) WARNING: calling shr_mpi_abort() and stopping


In this case the iopfile was generated locally, I am not using one of the provided cases.  Here the -iopfile is specified in the namelist (please see attached run-yellostone.csh) and the variable which is producing an error (CLAT) is verified to be in the file (please see ncdump of iop file attached).  Indeed CLAT is the first variable in the iop-netcd!  This makes me think there is a disconnect between CAM and IOP file, or the IOP file was generated incorrectly.  I am hoping someone can suggest a method to troubleshoot this error.


Thanks very much in advance for any suggestions.




If you look at where the error message comes from (dynamics/eul/inidat.F90) you'll see that even though the message to endrun contains the string 'CLAT not on iop initial file', the variable being looked for is 'CLAT1'.  Note that the same discrepency is present for CLON/CLON1.

I don't know anything about setting up iop files.  Seems like perhaps you're missing a step that takes the output from a cam run and converts it to a valid iop file.



CAM can be configured to produce a pseudo IOP file that can be used with SCAM.  This mode was predominately used to validate SCAM and required a suite of additional IOP variables.  The global attribute CAM_GENERATED_FORCING is added by CAM when producing a CAM IOP.  If your IOP was not generated by CAM you should not add the CAM_GENERATED_FORCING attribute to your file. Its this attribute that is causing SCAM to expect additional variables on the IOP file.



I solved this problem by simply rewriting the IOP file without the 'CLAT' variable and the resulting nc file then worked as forcing for the SCAM.


Hi Morgan P,

I attempted to remove CLAT by means of nco.  The modified version, without CLAT also triggered errors.  There appears to be some trigger, a way the IOP is structured OR a list of variables included in the IOP file that makes SCAM expect the variable CLAT.  How did you produce an IOP file without CLAT?  I am curious if the -makeiop tag needs to be redesigned to produce functional IOP files in the future.




I went about removing CLAT by creating a new .nc file and then copying over only the fields necessary to run SCAM.  I am unfamiliar with the nco utility, and am not sure why this didn't work for you.  I re-wrote the new file using a python script, which I am happy to give you should you be interested.

As far as producing an IOP file without CLAT, you will have to hack the code to stop it from getting written.  The write portion of the CLAT variable in the IOP option can be found in history_defaults.F90.  I really feel like this is a bug with the part of SCAM that reads in data though, as it confuses me why the model thinks CLAT is not there when it is but has no problem running when its not.

Below are the output of ncdump -h for the 'raw' IOP file generated by CAM (clat.txt), and the new file without the CLAT variable (noclat.txt).  Note that I only moved the variables essential for running SCAM in this example.

Log in or register to post comments

Who's new

  • jwolff
  • tinna.gunnarsdo...
  • sarthak2235@...
  • eolivares@...
  • shubham.gandhi@...