libsim  Versione6.3.0

◆ 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 551 del file volgrid6d_class.F90.

551 
555 SUBROUTINE volgrid6d_delete(this)
556 TYPE(volgrid6d),INTENT(inout) :: this
557 
558 INTEGER :: i, ii, iii, iiii
559 
560 #ifdef DEBUG
561 call l4f_category_log(this%category,l4f_debug,"delete")
562 #endif
563 
564 if (associated(this%gaid))then
565 
566  DO i=1 ,SIZE(this%gaid,1)
567  DO ii=1 ,SIZE(this%gaid,2)
568  DO iii=1 ,SIZE(this%gaid,3)
569  DO iiii=1 ,SIZE(this%gaid,4)
570  CALL delete(this%gaid(i,ii,iii,iiii))
571  ENDDO
572  ENDDO
573  ENDDO
574  ENDDO
575  DEALLOCATE(this%gaid)
576 
577 end if
578 
579 call delete(this%griddim)
580 
581 ! call delete(this%time)
582 ! call delete(this%timerange)
583 ! call delete(this%level)
584 ! call delete(this%var)
585 
586 if (associated( this%time )) deallocate(this%time)
587 if (associated( this%timerange )) deallocate(this%timerange)
588 if (associated( this%level )) deallocate(this%level)
589 if (associated( this%var )) deallocate(this%var)
590 
591 if (associated(this%voldati))deallocate(this%voldati)
592 
593 
594  !chiudo il logger
595 call l4f_category_delete(this%category)
596 
597 END SUBROUTINE volgrid6d_delete
598 
599 
609 subroutine volgrid6d_write_on_file (this,unit,description,filename,filename_auto)
610 
611 TYPE(volgrid6d),INTENT(IN) :: this
612 integer,optional,intent(inout) :: unit
613 character(len=*),intent(in),optional :: filename
614 character(len=*),intent(out),optional :: filename_auto
615 character(len=*),INTENT(IN),optional :: description
616 
617 integer :: lunit
618 character(len=254) :: ldescription,arg,lfilename
619 integer :: ntime, ntimerange, nlevel, nvar
620 integer :: tarray(8)
621 logical :: opened,exist
622 
623 #ifdef DEBUG
624 call l4f_category_log(this%category,l4f_debug,"write on file")
625 #endif
626 
627 ntime=0
628 ntimerange=0
629 nlevel=0
Distruttori per le 2 classi.

Generated with Doxygen.