libsim  Versione 7.1.7

◆ volgrid6d_alloc_vol()

subroutine, public volgrid6d_class::volgrid6d_alloc_vol ( type(volgrid6d), intent(inout)  this,
logical, intent(in), optional  ini,
logical, intent(in), optional  inivol,
logical, intent(in), optional  decode 
)

Allocate the data array of the volgrid6d object.

This method allocates the main 6-dimensional data array thisvoldati and the 4-dimensional grid_id array thisgaid with a shape dictated by the previous call(s) to vol7d_alloc(). if any descriptor (except horizontal grid) has not been allocated yet, it is allocated here with a size of 1. This method should be explicitly used only in rare cases, it is usually called implicitly through the import interface.

Parametri
[in,out]thisobject whose decriptors should be allocated
[in]iniif provided and .TRUE., for each dimension descriptor not yet allocated and allocated here the constructor is called without extra parameters, thus initializing the element as missing value
[in]inivolif provided and .FALSE., the allocated volumes will not be initialized to missing values
[in]decodeif provided and .TRUE., the thisvoldati volume is allocated, otherwise only thisgaid will be allocated

Definizione alla linea 528 del file volgrid6d_class.F90.

529 TYPE(volgrid6d),INTENT(inout) :: this
530 INTEGER,INTENT(in) :: itime
531 INTEGER,INTENT(in) :: itimerange
532 INTEGER,INTENT(in) :: ivar
533 REAL,INTENT(in) :: voldati(:,:,:)
534 
535 INTEGER :: ilevel
536 
537 IF (ASSOCIATED(this%voldati)) THEN
538  RETURN
539 ELSE
540  DO ilevel = 1, SIZE(this%level)
541  CALL grid_id_encode_data(this%gaid(ilevel,itime,itimerange,ivar), &
542  voldati(:,:,ilevel))
543  ENDDO
544 ENDIF
545 
546 END SUBROUTINE volgrid_set_vol_3d
547 
548 
552 SUBROUTINE volgrid6d_delete(this)
553 TYPE(volgrid6d),INTENT(inout) :: this
554 
555 INTEGER :: i, ii, iii, iiii
556 
557 #ifdef DEBUG
558 call l4f_category_log(this%category,l4f_debug,"delete")
559 #endif
560 
561 if (associated(this%gaid))then
562 
563  DO i=1 ,SIZE(this%gaid,1)
564  DO ii=1 ,SIZE(this%gaid,2)
565  DO iii=1 ,SIZE(this%gaid,3)
566  DO iiii=1 ,SIZE(this%gaid,4)
567  CALL delete(this%gaid(i,ii,iii,iiii))
568  ENDDO
569  ENDDO
570  ENDDO
571  ENDDO
572  DEALLOCATE(this%gaid)
573 
574 end if
575 
576 call delete(this%griddim)
577 
578 ! call delete(this%time)
579 ! call delete(this%timerange)
580 ! call delete(this%level)
581 ! call delete(this%var)
582 
583 if (associated( this%time )) deallocate(this%time)
584 if (associated( this%timerange )) deallocate(this%timerange)
585 if (associated( this%level )) deallocate(this%level)
586 if (associated( this%var )) deallocate(this%var)
587 
588 if (associated(this%voldati))deallocate(this%voldati)
589 
590 
591  !chiudo il logger
592 call l4f_category_delete(this%category)
593 
594 END SUBROUTINE volgrid6d_delete
595 
596 
606 subroutine volgrid6d_write_on_file (this,unit,description,filename,filename_auto)
607 

Generated with Doxygen.