|
|
◆ 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 419 del file volgrid6d_class.F90.
428 SUBROUTINE volgrid_get_vol_2d(this, ilevel, itime, itimerange, ivar, voldati) 429 TYPE(volgrid6d), INTENT(in) :: this 430 INTEGER, INTENT(in) :: ilevel 431 INTEGER, INTENT(in) :: itime 432 INTEGER, INTENT(in) :: itimerange 433 INTEGER, INTENT(in) :: ivar 434 REAL, POINTER :: voldati(:,:) 436 IF ( ASSOCIATED(this%voldati)) THEN 437 voldati => this%voldati(:,:,ilevel,itime,itimerange,ivar) 440 IF (.NOT. ASSOCIATED(voldati)) THEN 441 ALLOCATE(voldati(this%griddim%dim%nx,this%griddim%dim%ny)) 443 CALL grid_id_decode_data(this%gaid(ilevel,itime,itimerange,ivar), voldati) 446 END SUBROUTINE volgrid_get_vol_2d 462 SUBROUTINE volgrid_get_vol_3d(this, itime, itimerange, ivar, voldati, zlist) 463 TYPE(volgrid6d), INTENT(in) :: this 464 INTEGER, INTENT(in) :: itime 465 INTEGER, INTENT(in) :: itimerange 466 INTEGER, INTENT(in) :: ivar 467 REAL, POINTER :: voldati(:,:,:) 468 LOGICAL, OPTIONAL, INTENT(out), ALLOCATABLE :: zlist(:) 473 IF ( ASSOCIATED(this%voldati)) THEN 474 voldati => this%voldati(:,:,:,itime,itimerange,ivar) 475 IF ( PRESENT(zlist)) zlist(:) = c_e(this%gaid(:,itime,itimerange,ivar)) 478 IF (.NOT. ASSOCIATED(voldati)) THEN 479 ALLOCATE(voldati(this%griddim%dim%nx,this%griddim%dim%ny, SIZE(this%level))) 481 IF ( PRESENT(zlist)) THEN 482 ALLOCATE(zlist( SIZE(this%level))) 486 DO ilevel = 1, SIZE(this%level) 488 CALL grid_id_decode_data(this%gaid(ilevel,itime,itimerange,ivar), & 489 voldati(:,:,ilevel),done) 490 IF ( PRESENT(zlist)) zlist(ilevel) = done 497 END SUBROUTINE volgrid_get_vol_3d 511 SUBROUTINE volgrid_set_vol_2d(this, ilevel, itime, itimerange, ivar, voldati) 512 TYPE(volgrid6d), INTENT(inout) :: this 513 INTEGER, INTENT(in) :: ilevel 514 INTEGER, INTENT(in) :: itime 515 INTEGER, INTENT(in) :: itimerange 516 INTEGER, INTENT(in) :: ivar 517 REAL, INTENT(in) :: voldati(:,:)
|