libsim  Versione7.2.1

◆ display_volgrid6d()

subroutine display_volgrid6d ( type(volgrid6d), intent(in)  this)

Display object on screen.

Show brief content on screen.

Parametri
[in]thisobject to display

Definizione alla linea 3450 del file volgrid6d_class.F90.

3450 nlevel=count_distinct(roundlevel,back=.true.)
3451 ntime=size(vg6din%time)
3452 ntimerange=count_distinct(roundtimerange,back=.true.)
3453 nvar=size(vg6din%var)
3454 
3455 call init(vg6dout, vg6din%griddim, vg6din%time_definition, categoryappend="generated by vg6d_reduce")
3456 call volgrid6d_alloc(vg6dout, vg6din%griddim%dim, ntime, nlevel, ntimerange, nvar)
3457 
3458 if ( ASSOCIATED(vg6din%voldati) .or. optio_log(merge)) then
3459  call volgrid6d_alloc_vol(vg6dout,inivol=.true.,decode=.true.)
3460  allocate(vol2d(nx,ny))
3461 else
3462  call volgrid6d_alloc_vol(vg6dout,inivol=.true.,decode=.false.)
3463 end if
3464 
3465 vg6dout%time=vg6din%time
3466 vg6dout%var=vg6din%var
3467 vg6dout%timerange=pack_distinct(roundtimerange,ntimerange,back=.true.)
3468 vg6dout%level=pack_distinct(roundlevel,nlevel,back=.true.)
3469 ! sort modified dimensions
3470 CALL sort(vg6dout%timerange)
3471 CALL sort(vg6dout%level)
3472 
3473 do ilevel=1,size(vg6din%level)
3474  indl=index(vg6dout%level,roundlevel(ilevel))
3475  do itimerange=1,size(vg6din%timerange)
3476  indt=index(vg6dout%timerange,roundtimerange(itimerange))
3477  do ivar=1, nvar
3478  do itime=1,ntime
3479 
3480  if ( ASSOCIATED(vg6din%voldati)) then
3481  vol2d=vg6din%voldati(:,:,ilevel,itime,itimerange,ivar)
3482  end if
3483 
3484  if (optio_log(merge)) then
3485 
3486  if ( .not. ASSOCIATED(vg6din%voldati)) then
3487  CALL grid_id_decode_data(vg6din%gaid(ilevel,itime,itimerange,ivar), vol2d)
3488  end if
3489 
3490  !! merge present data point by point
3491  where (.not. c_e(vg6dout%voldati(:,:,indl,itime,indt,ivar)))
3492 
3493  vg6dout%voldati(:,:,indl,itime,indt,ivar)=vol2d
3494 
3495  end where
3496  else if ( ASSOCIATED(vg6din%voldati)) then
3497  if (.not. any(c_e(vg6dout%voldati(:,:,indl,itime,indt,ivar))))then
3498  vg6dout%voldati(:,:,indl,itime,indt,ivar)=vol2d
3499  end if
3500  end if
3501 
Index method.

Generated with Doxygen.