Я пытаюсь скомпилировать прогон модели, используя модель CESM 2.1.0, и я столкнулся с ошибкой компилятора, связанной с настройками netcdf, но я не знаю, какие настройки мне следует изменить.Ошибка:Ошибка: функция 'nf90_def_var_deflate' не имеет неявного типа.Функция определенно определена, и код должен работать, так как это модель научного исследования, используемая большим сообществом.
Я читал другой вопрос, где у человека такая же проблема, но пока нет решения.
Ошибка 'nf90_def_var_deflate не имеет типа IMPLICIT' только на одном компьютере
Я проверил конфигурацию netcdf, как рекомендовано в приведенном выше вопросе, и это вывод:
$ nc-config --all
This netCDF 4.6.3 has been built with the following features:
--cc -> mpicc
--cflags -> -I/apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel/include
--libs -> -L/apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel/lib -lnetcdf
--has-c++ -> no
--cxx ->
--has-c++4 -> no
--cxx4 ->
--has-fortran -> yes
--fc -> mpifort
--fflags -> -I/apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel/include
--flibs -> -L/apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel/lib -lnetcdff -L/apps/hdf5/1.10.5/parallel/lib -lnetcdf -lcurl -lm -lnetcdf -lhdf5_hl -lhdf5 -lz -ldl
--has-f90 -> no
--has-f03 -> yes
--has-dap -> yes
--has-dap2 -> yes
--has-dap4 -> yes
--has-nc2 -> yes
--has-nc4 -> yes
--has-hdf5 -> yes
--has-hdf4 -> no
--has-logging -> no
--has-pnetcdf -> no
--has-szlib -> no
--has-cdf5 -> yes
--has-parallel4 -> yes
--has-parallel -> yes
--prefix -> /apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel
--includedir -> /apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel/include
--libdir -> /apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel/lib
--version -> netCDF 4.6.3
Редактировать:Вот конфигурация netcdf-fortran:
nf-config --all
This netCDF-Fortran 4.4.5 has been built with the following features:
--cc -> gcc
--cflags -> -I/apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel/include
--fc -> mpifort
--fflags -> -I/apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel/include
--flibs -> -L/apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel/lib -lnetcdff -L/apps/hdf5/1.10.5/parallel/lib -lnetcdf -lcurl -lm -lnetcdf -lhdf5_hl -lhdf5 -lz -ldl
--has-f90 -> no
--has-f03 -> yes
--has-nc2 -> yes
--has-nc4 -> no
--prefix -> /apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel
--includedir-> /apps/netcdf/netcdf-4.6.0_gcc-4.8.5/parallel/include
--version -> netCDF-Fortran 4.4.5
Edit # 2: Вот фрагмент кода, где вызывается функция:
if(iotype==pio_iotype_netcdf4c) then
if(vardesc%ndims>0 .and. ierr==PIO_NOERR) then
ierr = nf90_def_var_deflate(File%fh,vardesc%varid,0,1,1)
end if
endif
Причина, по которой я считаю, что CESMмодель использует правильную версию netcdf, потому что в выводе журнала говорится: Checking NetCDF version - 4.6.3./*!<