libsim  Versione 7.2.6

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

3498 nlevel=count_distinct(roundlevel,back=.true.)
3499 ntime=size(vg6din%time)
3500 ntimerange=count_distinct(roundtimerange,back=.true.)
3501 nvar=size(vg6din%var)
3502 
3503 call init(vg6dout, vg6din%griddim, vg6din%time_definition, categoryappend="generated by vg6d_reduce")
3504 call volgrid6d_alloc(vg6dout, vg6din%griddim%dim, ntime, nlevel, ntimerange, nvar)
3505 
3506 if ( ASSOCIATED(vg6din%voldati) .or. optio_log(merge)) then
3507  call volgrid6d_alloc_vol(vg6dout,inivol=.true.,decode=.true.)
3508  allocate(vol2d(nx,ny))
3509 else
3510  call volgrid6d_alloc_vol(vg6dout,inivol=.true.,decode=.false.)
3511 end if
3512 
3513 vg6dout%time=vg6din%time
3514 vg6dout%var=vg6din%var
3515 vg6dout%timerange=pack_distinct(roundtimerange,ntimerange,back=.true.)
3516 vg6dout%level=pack_distinct(roundlevel,nlevel,back=.true.)
3517 ! sort modified dimensions
3518 CALL sort(vg6dout%timerange)
3519 CALL sort(vg6dout%level)
3520 
3521 do ilevel=1,size(vg6din%level)
3522  indl=index(vg6dout%level,roundlevel(ilevel))
3523  do itimerange=1,size(vg6din%timerange)
3524  indt=index(vg6dout%timerange,roundtimerange(itimerange))
3525  do ivar=1, nvar
3526  do itime=1,ntime
3527 
3528  if ( ASSOCIATED(vg6din%voldati)) then
3529  vol2d=vg6din%voldati(:,:,ilevel,itime,itimerange,ivar)
3530  end if
3531 
3532  if (optio_log(merge)) then
3533 
3534  if ( .not. ASSOCIATED(vg6din%voldati)) then
3535  CALL grid_id_decode_data(vg6din%gaid(ilevel,itime,itimerange,ivar), vol2d)
3536  end if
3537 
3538  !! merge present data point by point
3539  where (.not. c_e(vg6dout%voldati(:,:,indl,itime,indt,ivar)))
3540 
3541  vg6dout%voldati(:,:,indl,itime,indt,ivar)=vol2d
3542 
3543  end where
3544  else if ( ASSOCIATED(vg6din%voldati)) then
3545  if (.not. any(c_e(vg6dout%voldati(:,:,indl,itime,indt,ivar))))then
3546  vg6dout%voldati(:,:,indl,itime,indt,ivar)=vol2d
3547  end if
3548  end if
3549 
Index method.

Generated with Doxygen.