|
◆ 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 421 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
|