使用 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