CESM seg fault

Our small Linux cluster recently had the PG Fortran compilers updated to v19.10, and now the CESM code which had previously worked with the older compiler version now crashes in the land model (CLM) initialization.

The totalview debugger indicates a seg fault at this function:

function create_cnfire_method( NLFilename ) result(cnfire_method)

select case (trim(fire_method))

case (“nofire”)
allocate(cnfire_method, source=cnfire_nofire_type())
case (“li2014qianfrc”)
allocate(cnfire_method, source=cnfire_li2014_type())
case (“li2016crufrc”)
allocate(cnfire_method, source=cnfire_li2016_type())

case default
write(iulog,*) subname//’ ERROR: unknown method: ', fire_method
call endrun(msg=errMsg(sourcefile, LINE))

end select
call cnfire_method%CNFireReadNML( NLFilename )

This function is triggered by this allocate statment:

allocate(this%cnfire_method, &

The cnfire_method_type is defined this way:

type, abstract :: cnfire_method_type
logical, public :: need_lightning_and_popdens = .true. ! If need lightning and population density

! Initialize the fire datasets
procedure(CNFireInit_interface) , public, deferred :: CNFireInit

! Read namelist for the fire datasets
procedure(CNFireReadNML_interface), public, deferred :: CNFireReadNML

! Interpolate the fire datasets
procedure(CNFireInterp_interface) , public, deferred :: CNFireInterp

! Figure out the fire area
procedure(CNFireArea_interface) , public, deferred :: CNFireArea

! Figure out the fire fluxes
procedure(CNFireFluxes_interface) , public, deferred :: CNFireFluxes

end type cnfire_method_type

Mark Branson

Hi Mark,

Unfortunately, there’s not much to go on here. Possibly there’s an issue with the source allocation, but without a reproducing example it’s very difficult to tell.

Tried building CESM myself but not sure what components or grid to use. Randomly selected one and configured for a “homebrew” machine. Was able to get a binary but the run fails when downloading the input data set.

Any suggestions on who to configure CESM so I can reproduce this error?


Hi Mat.

This is how I created my case on our Linux cluster:

create_newcase --case /Users/mark/cases/cam6_2deg --res f19_f19_mg17 -
-compset F2000climo --machine saddleback.atmos.colostate.edu --run-unsupported

However, you still may have troubles with getting all of the input data sets.

I’ll see if I can design an offline program that only calls the problematic CLM components and I’ll post those here if I can get it to reproduce the error.


Thanks Mark.

One of my colleagues has more experience in building CESM so is trying to recreate the issue. I’ll pass this along.