|
◆ volgrid6d_alloc()
subroutine, public volgrid6d_class::volgrid6d_alloc |
( |
type(volgrid6d), intent(inout) |
this, |
|
|
type(grid_dim), intent(in), optional |
dim, |
|
|
integer, intent(in), optional |
ntime, |
|
|
integer, intent(in), optional |
nlevel, |
|
|
integer, intent(in), optional |
ntimerange, |
|
|
integer, intent(in), optional |
nvar, |
|
|
logical, intent(in), optional |
ini |
|
) |
| |
Allocate the dimension descriptors of the volgrid6d object.
This method allocates the horizontal grid descriptor and the one dimensional arrays of the dimensions
- time
- vertical level
- timerange
- physical variable
This method should be explicitly used only in rare cases, it is usually called implicitly through the import interface. - Parametri
-
[in,out] | this | object whose decriptors should be allocated |
[in] | dim | horizontal grid size X, Y |
[in] | ntime | number of time levels |
[in] | nlevel | number of vertical levels |
[in] | ntimerange | number of different timeranges |
[in] | nvar | number of physical variables |
[in] | ini | if provided and .TRUE., for each allocated dimension descriptor the constructor is called without extra parameters, thus initializing everything as missing value |
Definizione alla linea 420 del file volgrid6d_class.F90.
430 SUBROUTINE volgrid_get_vol_2d(this, ilevel, itime, itimerange, ivar, voldati)
431 TYPE(volgrid6d), INTENT(in) :: this
432 INTEGER, INTENT(in) :: ilevel
433 INTEGER, INTENT(in) :: itime
434 INTEGER, INTENT(in) :: itimerange
435 INTEGER, INTENT(in) :: ivar
436 REAL, POINTER :: voldati(:,:)
438 IF ( ASSOCIATED(this%voldati)) THEN
439 voldati => this%voldati(:,:,ilevel,itime,itimerange,ivar)
442 IF (.NOT. ASSOCIATED(voldati)) THEN
443 ALLOCATE(voldati(this%griddim%dim%nx,this%griddim%dim%ny))
445 CALL grid_id_decode_data(this%gaid(ilevel,itime,itimerange,ivar), voldati)
448 END SUBROUTINE volgrid_get_vol_2d
464 SUBROUTINE volgrid_get_vol_3d(this, itime, itimerange, ivar, voldati)
465 TYPE(volgrid6d), INTENT(in) :: this
466 INTEGER, INTENT(in) :: itime
467 INTEGER, INTENT(in) :: itimerange
468 INTEGER, INTENT(in) :: ivar
469 REAL, POINTER :: voldati(:,:,:)
473 IF ( ASSOCIATED(this%voldati)) THEN
474 voldati => this%voldati(:,:,:,itime,itimerange,ivar)
477 IF (.NOT. ASSOCIATED(voldati)) THEN
478 ALLOCATE(voldati(this%griddim%dim%nx,this%griddim%dim%ny, SIZE(this%level)))
482 DO ilevel = 1, SIZE(this%level)
484 CALL grid_id_decode_data(this%gaid(ilevel,itime,itimerange,ivar), &
492 END SUBROUTINE volgrid_get_vol_3d
506 SUBROUTINE volgrid_set_vol_2d(this, ilevel, itime, itimerange, ivar, voldati)
507 TYPE(volgrid6d), INTENT(inout) :: this
508 INTEGER, INTENT(in) :: ilevel
509 INTEGER, INTENT(in) :: itime
510 INTEGER, INTENT(in) :: itimerange
511 INTEGER, INTENT(in) :: ivar
512 REAL, INTENT(in) :: voldati(:,:)
514 IF ( ASSOCIATED(this%voldati)) THEN
517 CALL grid_id_encode_data(this%gaid(ilevel,itime,itimerange,ivar), voldati)
520 END SUBROUTINE volgrid_set_vol_2d
|