libsim Versione 8.0.0

◆ volgrid_set_vol_3d()

subroutine, public volgrid_set_vol_3d ( type(volgrid6d), intent(inout) this,
integer, intent(in) itime,
integer, intent(in) itimerange,
integer, intent(in) ivar,
real, dimension(:,:,:), intent(in) voldati )

Reset a 3-d x-y-z slice of a volume after the data have been modified.

This method works both with volumes having allocated and non-allocated thisvoldati array, and it updates the requested slice. In case thisvoldati is already allocated, this is a no-operation while in the other case this method encodes the field provided into the grid_id object on file or in memory. Since this method may be called many times by a program, it is optimized for speed and it does not make any check about the matching size of the field and the array or about the allocation status of this, so it should be called only when everything has been checked to be in good shape.

Parametri
[in,out]thisobject in which slice has to be updated
[in]itimeindex of time level of the slice
[in]itimerangeindex of timerange of the slice
[in]ivarindex of physical variable of the slice
[in]voldatiupdated values of the slice

Definizione alla linea 727 del file volgrid6d_class.F90.

728integer,intent(out),optional :: tarray(8) !< vettore come definito da "date_and_time" della data di scrittura del volume
729
730integer :: ntime, ntimerange, nlevel, nvar
731
732character(len=254) :: ldescription,lfilename,arg
733integer :: ltarray(8),lunit
734logical :: opened,exist
735
736#ifdef DEBUG
737call l4f_category_log(this%category,l4f_debug,"read from file")
738#endif
739
740call getarg(0,arg)
741
742if (.not. present(unit))then
743 lunit=getunit()
744else
745 if (unit==0)then
746 lunit=getunit()
747 unit=lunit
748 else
749 lunit=unit
750 end if

Generated with Doxygen.