SUBROUTINE get_field_npp_dyn(filename) !-------------------------------------------------------------- ! get the emissions and interpolate on the final grid !-------------------------------------------------------------- USE final_grid_lmdz USE grid USE sflx IMPLICIT NONE INCLUDE 'netcdf.inc' !-------------------------------------------------------------- ! ... Dummy arguments !-------------------------------------------------------------- CHARACTER(LEN=*), INTENT(in) :: filename !-------------------------------------------------------------- ! ... Local variables !-------------------------------------------------------------- INTEGER :: iret INTEGER :: error INTEGER :: ncid INTEGER :: varid ! REAL :: workin (klon_init,nlev_len, nrecs) !! filename="npp_dyn_1x1.nc" PRINT *,'Read field from file' , filename(:LEN_TRIM(filename)) ! ... Open the file iret = nf_open(filename, 0, ncid) CALL check_err(iret) iret = nf_inq_dimid(ncid, 'time', varid) CALL check_err(iret) iret = nf_inq_dimlen(ncid, varid, nrecs) CALL check_err(iret) print*,'nrecs',nrecs iret = nf_inq_dimid(ncid, 'lat', varid) CALL check_err(iret) iret = nf_inq_dimlen(ncid, varid, nlat_len) CALL check_err(iret) print*,'nlat_len',nlat_len iret = nf_inq_dimid(ncid, 'lon', varid) CALL check_err(iret) iret = nf_inq_dimlen(ncid, varid, nlon_len) CALL check_err(iret) print*,'nlon_len',nlon_len ALLOCATE(npp_dyn(nlon_len, nlat_len, nrecs), STAT=error) iret = nf_inq_varid(ncid, 'NPP', varid) CALL check_err(iret) iret = nf_get_var_real(ncid, varid, npp_dyn) CALL check_err(iret) print*,npp_dyn(1,1,1) ! ... Close the file iret = nf_close(ncid) CALL check_err(iret) END SUBROUTINE get_field_npp_dyn