使用 Fortran 创建的 Netcdf 文件
Netcdf files created with fortran
我使用 Fortran 创建 netcdf 文件。我有这个问题:我别无选择,只能使用循环来定义我的一些变量(并分配属性值)。然后,当我想提供变量的值时(即 nf90_put_var),它只会调用已定义的最后一个变量......我尝试了很多方法来解决问题但我没有成功.有人可以帮助我吗?
这是我的脚本的一小部分:
DO IP=1,N(PTS)
Param_name='var1'
params(I,IPTS)=INT(I,IPTS,IP)
! Define Netcdf Variable
IERREU = nf90_def_var(ncid, Param_name, nf90_real, dimid, ParVarID)
IF (IERREU.NE.0) THEN
CALL check_err (IERREU)
STOP
ENDIF
ENDDO
! End define mode
IERREU = nf90_enddef(ncid)
IF (IERREU.NE.0) THEN
CALL check_err (IERREU)
STOP
ENDIF
! Write the data in netcdf
IERREU = nf90_put_var(ncid,parvarID, params)
IF (IERREU.NE.0) THEN
CALL check_err (IERREU)
STOP
ENDIF
您必须为每个变量单独存储 parVarId
。也许将它存储在一个数组中。您现在每次调用 nf90_def_var
.
都会覆盖它
integer ParVarIds(N(PTS))
DO IP=1,N(PTS)
...
IERREU = nf90_def_var(ncid, Param_name, nf90_real, dimid, ParVarIds(IP))
...
ENDDO
DO IP=1,N(PTS)
...
IERREU = nf90_put_var(ncid,parVarIds(IP), something)
...
ENDDO
我使用 Fortran 创建 netcdf 文件。我有这个问题:我别无选择,只能使用循环来定义我的一些变量(并分配属性值)。然后,当我想提供变量的值时(即 nf90_put_var),它只会调用已定义的最后一个变量......我尝试了很多方法来解决问题但我没有成功.有人可以帮助我吗?
这是我的脚本的一小部分:
DO IP=1,N(PTS)
Param_name='var1'
params(I,IPTS)=INT(I,IPTS,IP)
! Define Netcdf Variable
IERREU = nf90_def_var(ncid, Param_name, nf90_real, dimid, ParVarID)
IF (IERREU.NE.0) THEN
CALL check_err (IERREU)
STOP
ENDIF
ENDDO
! End define mode
IERREU = nf90_enddef(ncid)
IF (IERREU.NE.0) THEN
CALL check_err (IERREU)
STOP
ENDIF
! Write the data in netcdf
IERREU = nf90_put_var(ncid,parvarID, params)
IF (IERREU.NE.0) THEN
CALL check_err (IERREU)
STOP
ENDIF
您必须为每个变量单独存储 parVarId
。也许将它存储在一个数组中。您现在每次调用 nf90_def_var
.
integer ParVarIds(N(PTS))
DO IP=1,N(PTS)
...
IERREU = nf90_def_var(ncid, Param_name, nf90_real, dimid, ParVarIds(IP))
...
ENDDO
DO IP=1,N(PTS)
...
IERREU = nf90_put_var(ncid,parVarIds(IP), something)
...
ENDDO