More filenames in the Fortran source need to updated to length of 512
I noticed this in other work, on error reporting of filenames. There are some filenames where the namelist_definition is updated to 512 -- but the Fortran source only has 256. We want these two to agree as otherwise preview_namelist will allow longer lengths than the source can actually handle.
I got the following from "git grep 256", under the src directory. And then removing the ones that don't apply to filenames.
All of these should be changes to use the fname_len parameter in clm_varctl.
biogeochem/CNCIsoAtmTimeSeriesReadMod.F90: character(len=256) , public :: atm_c14_filename = ' ' ! file name of C14 input data
biogeochem/CNCIsoAtmTimeSeriesReadMod.F90: character(len=256) , public :: atm_c13_filename = ' ' ! file name of C13 input data
biogeochem/CNCIsoAtmTimeSeriesReadMod.F90: character(len=256) :: locfn ! local file name
biogeochem/CNCIsoAtmTimeSeriesReadMod.F90: character(len=256) :: locfn ! local file name
biogeochem/CNDVDriverMod.F90: character(len=256) :: dgvm_fn ! dgvm history filename
biogeochem/CNDVDriverMod.F90: character(len=256) function set_dgvm_filename ()
biogeochem/CNVegCarbonFluxType.F90: character(len=256) :: varname
biogeochem/CNVegCarbonStateType.F90: character(len=256) :: varname ! temporary
biogeochem/CNVegNitrogenFluxType.F90: character(len=256) :: varname
biogeochem/CNVegNitrogenStateType.F90: character(len=256) :: varname ! temporary
biogeochem/FireEmisFactorsMod.F90: character(len=256) :: locfn ! local file name
biogeochem/MEGANFactorsMod.F90: character(len=256) :: locfn ! local file name
biogeochem/SatellitePhenologyMod.F90: character(len=256) :: locfn ! local file name
biogeochem/SatellitePhenologyMod.F90: character(len=256) :: locfn ! local file name
biogeochem/VOCEmissionMod.F90: character(len=256) :: locfn ! local filename
biogeochem/ch4Mod.F90: character(len=256) :: locfn ! local file name
biogeophys/HillslopeHydrologyMod.F90: character(len=256) :: locfn ! local filename
biogeophys/HillslopeHydrologyMod.F90: character(len=256) :: locfn ! local filename
biogeophys/LakeStateType.F90: character(len=256) :: locfn ! local filename
biogeophys/SnowSnicarMod.F90: character(len=256) :: locfn ! local filename
biogeophys/SnowSnicarMod.F90: character(len=256) :: locfn ! local filename
biogeophys/SoilHydrologyInitTimeConstMod.F90: character(len=256) :: locfn
biogeophys/SoilStateInitTimeConstMod.F90: character(len=256) :: locfn ! local filename
biogeophys/SurfaceAlbedoMod.F90: character(len=256) :: locfn ! local filename
biogeophys/UrbanParamsType.F90: character(len=256) :: locfn ! local file name
cpl/share_esmf/FireDataBaseType.F90: character(len=256) :: locfn ! local filename
cpl/share_esmf/lnd_set_decomp_and_domain.F90: character(len=256) :: locfn ! local file name
main/clm_driver.F90: character(len=256) :: filer ! restart file name
main/clm_initializeMod.F90: character(len=256) :: fnamer ! name of netcdf restart file
main/clm_initializeMod.F90: character(len=256) :: pnamer ! full pathname of netcdf restart file
main/clm_initializeMod.F90: character(len=256) :: locfn ! local file name
main/clm_varctl.F90: character(len=256), public :: rpntdir = '.'
main/clm_varctl.F90: character(len=256), public :: rpntfil = 'rpointer.lnd'
main/glcBehaviorMod.F90: character(len=256) :: locfn ! local filename
main/initVerticalMod.F90: character(len=256) :: locfn ! local filename
main/organicFileMod.F90: character(len=256) :: locfn ! local file name
main/pftconMod.F90: character(len=256) :: locfn ! local file name
main/readParamsMod.F90: character(len=256) :: locfn ! local file name
main/restFileMod.F90: character(len=256) :: locfn ! Restart pointer file name
main/restFileMod.F90: read (nio,'(a256)') pnamer
main/restFileMod.F90: character(len=256) :: filename ! local file name
main/restFileMod.F90: character(len=256) function restFile_filename( rdate )
utils/clmfates_interfaceMod.F90: character(len=256) :: locfn ! local file name
utils/clmfates_paraminterfaceMod.F90: character(len=256) :: locfn ! local file name
utils/clmfates_paraminterfaceMod.F90: character(len=256) :: locfn ! local file name
utils/fileutils.F90: character(len=256) function get_filename (fulpath)
And history files have a max filename of 199:
main/histFileMod.F90: integer, parameter :: max_length_filename = 199 ! max length of a filename. on most linux systems this
There are these in ncdio_pio.F90 that may need attention:
main/ncdio_pio.F90.in: integer , parameter , public :: max_string_len = 256 ! length of strings
main/ncdio_pio.F90.in: character(len=256) :: str ! temporary
main/ncdio_pio.F90.in: character(len=256) :: str ! temporary
@ekluzek can we take advantage of SHR_KIND_CX?
@ekluzek can we take advantage of
SHR_KIND_CX?
We should use fname_len in clm_varctl that @samsrabin added for this purpose, because it's specific about filenames. And we likely want all filenames to be consistent because there are various OS issues and limitations that are outside of our control. Also it just so happens that right now fname_len is set to SHR_KIND_CX, so it's the same.
Chatted with @samsrabin about this. He will work on this for the release starting in January. It's not critical to solve now. It's also not something that only he can work on, but he will have time available then.