libsim Versione 7.1.11
|
◆ volgrid6d_alloc()
Allocate the dimension descriptors of the volgrid6d object. This method allocates the horizontal grid descriptor and the one dimensional arrays of the dimensions
This method should be explicitly used only in rare cases, it is usually called implicitly through the import interface.
Definizione alla linea 416 del file volgrid6d_class.F90. 417
430SUBROUTINE volgrid_get_vol_2d(this, ilevel, itime, itimerange, ivar, voldati)
431TYPE(volgrid6d),INTENT(in) :: this
432INTEGER,INTENT(in) :: ilevel
433INTEGER,INTENT(in) :: itime
434INTEGER,INTENT(in) :: itimerange
435INTEGER,INTENT(in) :: ivar
436REAL,POINTER :: voldati(:,:)
437
438IF (ASSOCIATED(this%voldati)) THEN
439 voldati => this%voldati(:,:,ilevel,itime,itimerange,ivar)
440 RETURN
441ELSE
442 IF (.NOT.ASSOCIATED(voldati)) THEN
443 ALLOCATE(voldati(this%griddim%dim%nx,this%griddim%dim%ny))
444 ENDIF
445 CALL grid_id_decode_data(this%gaid(ilevel,itime,itimerange,ivar), voldati)
446ENDIF
447
448END SUBROUTINE volgrid_get_vol_2d
449
450
464SUBROUTINE volgrid_get_vol_3d(this, itime, itimerange, ivar, voldati)
465TYPE(volgrid6d),INTENT(in) :: this
466INTEGER,INTENT(in) :: itime
467INTEGER,INTENT(in) :: itimerange
468INTEGER,INTENT(in) :: ivar
469REAL,POINTER :: voldati(:,:,:)
470
471INTEGER :: ilevel
472
473IF (ASSOCIATED(this%voldati)) THEN
474 voldati => this%voldati(:,:,:,itime,itimerange,ivar)
475 RETURN
476ELSE
477 IF (.NOT.ASSOCIATED(voldati)) THEN
478 ALLOCATE(voldati(this%griddim%dim%nx,this%griddim%dim%ny,SIZE(this%level)))
479 ENDIF
480 DO ilevel = 1, SIZE(this%level)
481 CALL grid_id_decode_data(this%gaid(ilevel,itime,itimerange,ivar), &
482 voldati(:,:,ilevel))
483 ENDDO
484ENDIF
485
486END SUBROUTINE volgrid_get_vol_3d
487
488
500SUBROUTINE volgrid_set_vol_2d(this, ilevel, itime, itimerange, ivar, voldati)
501TYPE(volgrid6d),INTENT(inout) :: this
502INTEGER,INTENT(in) :: ilevel
503INTEGER,INTENT(in) :: itime
504INTEGER,INTENT(in) :: itimerange
505INTEGER,INTENT(in) :: ivar
506REAL,INTENT(in) :: voldati(:,:)
507
508IF (ASSOCIATED(this%voldati)) THEN
509 RETURN
510ELSE
511 CALL grid_id_encode_data(this%gaid(ilevel,itime,itimerange,ivar), voldati)
512ENDIF
513
514END SUBROUTINE volgrid_set_vol_2d
515
516
|