Asfc. Example of use
Type | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|
integer(kind=I4) | :: | i_g | ||||
real(kind=R8), | dimension(1:3) | :: | ind_frac |
result: indice fractal |
||
character(len=512), | allocatable, dimension(:) | :: | list_sur | |||
character(len=512), | allocatable, dimension(:) | :: | list_sur1 | |||
character(len=512), | allocatable, dimension(:) | :: | list_sur2 | |||
integer(kind=I4) | :: | n1_g | ||||
integer(kind=I4) | :: | n2_g | ||||
integer(kind=I4) | :: | n_g | ||||
integer(kind=I4) | :: | nx | ||||
integer(kind=I4) | :: | ny | ||||
real(kind=R8), | dimension(1:2) | :: | res_asfc |
result: asfc, adjustment factor |
||
type(SCALE_SURF) | :: | scal_surf |
object SCALE_SURF |
|||
real(kind=R8), | dimension(:,:), allocatable | :: | tab_surf |
height array |
program test_asfc use data_arch, only : I4, R8 use miscellaneous, only : get_unit use surfile, only : read_surf, SCALE_SURF use asfc, only : calcul_asfc_hermite, indice_fractal use files, only : list_files, clean_scratch implicit none type(SCALE_SURF) :: scal_surf !! *object [[SCALE_SURF]]* real(kind=R8), dimension(:,:), allocatable :: tab_surf !! *height array* real(kind=R8), dimension(1:2) :: res_asfc !! *result: asfc, adjustment factor* real(kind=R8), dimension(1:3) :: ind_frac !! *result: indice fractal* character(len = 512), allocatable, dimension(:) :: list_sur character(len = 512), allocatable, dimension(:) :: list_sur1 character(len = 512), allocatable, dimension(:) :: list_sur2 integer(kind = I4) :: i_g, n_g, n1_g, n2_g, nx, ny call clean_scratch() call list_files(dir = "sur", list = list_sur1, ext = "sur") call list_files(dir = "sur", list = list_sur2, ext = "SUR") n1_g = ubound( list_sur1, 1 ) n2_g = ubound( list_sur2, 1 ) n_g = n1_g + n2_g allocate( list_sur(1:n_g) ) list_sur( 1:n1_g) = list_sur1(1:n1_g) list_sur(n1_g + 1:n_g ) = list_sur2(1:n2_g) do i_g = 1, n_g write(*,*) '===============================================' write(*,*) trim( list_sur(i_g) ) call read_surf(nom_fic = trim( list_sur(i_g) ), & ! IN mu = 0._R8, & ! IN , OPT tab_s = tab_surf, & ! OUT scal = scal_surf) ! OUT nx = scal_surf%xres ny = scal_surf%yres call calcul_asfc_hermite(tab_in = tab_surf, & ! scal = scal_surf, & ! asfc_res = res_asfc, & ! omp = .true.) ! call indice_fractal( tab_in = tab_surf(1:nx, 1:ny), & ! long = nx, & ! larg = ny, & ! indf = ind_frac(1:3) ) ! write(*,*) 'Asfc2 (asfc2 + correlation): ', res_asfc(1:2) write(*,*) 'Box counting (frac. ind. + correlation): ', ind_frac(1), ind_frac(3) enddo deallocate( list_sur, list_sur1, list_sur2 ) endprogram test_asfc