Define a 4D variable (x, y, z, time) with working precision type
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | ncid | |||
| character(len=*), | intent(in) | :: | name | |||
| integer, | intent(in) | :: | dimids(4) | |||
| integer, | intent(out) | :: | varid | |||
| integer, | intent(in), | optional | :: | deflate_level |
Compression level (0=none, 1-9=deflate). Enables shuffle when > 0. |
|
| integer, | intent(in), | optional | :: | xtype |
NetCDF element type. Absent => |
|
| integer, | intent(out), | optional | :: | ierr |
Non-zero on failure when present; absent behaves as today
( |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private | :: | xt |
subroutine nc_def_var_4d(ncid, name, dimids, varid, deflate_level, xtype, ierr) !! Define a 4D variable (x, y, z, time) with working precision type integer, intent(in) :: ncid character(len=*), intent(in) :: name integer, intent(in) :: dimids(4) integer, intent(out) :: varid integer, intent(in), optional :: deflate_level !! Compression level (0=none, 1-9=deflate). Enables shuffle when > 0. integer, intent(in), optional :: xtype !! NetCDF element type. Absent => `NC_WP` (working precision). !! See `nc_def_var_3d` — same contract, 4D shape. integer, intent(out), optional :: ierr !! Non-zero on failure when present; absent behaves as today !! (`error stop`). integer :: xt xt = NC_WP if (present(xtype)) xt = xtype call nc_check(nf90_def_var(ncid, name, xt, dimids, varid), & "defining variable "//trim(name), ierr) if (present(ierr)) then if (ierr /= nf90_noerr) return end if if (present(deflate_level)) then if (deflate_level > 0) then call nc_check(nf90_def_var_deflate(ncid, varid, & shuffle=1, deflate=1, deflate_level=deflate_level), & "enabling compression for "//trim(name), ierr) end if end if end subroutine nc_def_var_4d