ESCOMP / ESCOMP/CTSM

More filenames in the Fortran source need to updated to length of 512

Open
#3,590 3 comments 0 reactions 1 assignee Claimed by @samsrabin View on GitHub
b4b code health modernization priority: low size: small usability
Dominant language
Fortran
Stars
352
Forks
361
Avg merge
2d 21h
Merged PRs (30d)
7

Description

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.

``` fortran
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:

``` fortran
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:
``` fortran
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
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.