test_abbott Program

Uses

  • program~~test_abbott~~UsesGraph program~test_abbott test_abbott data_arch data_arch program~test_abbott->data_arch miscellaneous miscellaneous program~test_abbott->miscellaneous module~abbott abbott program~test_abbott->module~abbott surfile surfile program~test_abbott->surfile module~abbott->data_arch module~abbott->miscellaneous gnufor gnufor module~abbott->gnufor least_squares least_squares module~abbott->least_squares module~stat_mom stat_mom module~abbott->module~stat_mom pikaia_oop pikaia_oop module~abbott->pikaia_oop sort_arrays sort_arrays module~abbott->sort_arrays module~stat_mom->data_arch module~stat_mom->sort_arrays

Firestone Abbott’s curve. Example of use


Calls

program~~test_abbott~~CallsGraph program~test_abbott test_abbott proc~abbott_param abbott_param program~test_abbott->proc~abbott_param read_surf read_surf program~test_abbott->read_surf get_unit get_unit proc~abbott_param->get_unit init pikaia_class%init proc~abbott_param->init moindres_carres_lineaire moindres_carres_lineaire proc~abbott_param->moindres_carres_lineaire proc~calc_moments calc_moments proc~abbott_param->proc~calc_moments run_gnuplot run_gnuplot proc~abbott_param->run_gnuplot solve pikaia_class%solve proc~abbott_param->solve sort_array2 sort_array2 proc~abbott_param->sort_array2 proc~calc_moments_1d calc_moments_1D proc~calc_moments->proc~calc_moments_1d

Variables

Type Attributes Name Initial
real(kind=R8), allocatable, dimension(:,:) :: heights
integer(kind=I4) :: nx
integer(kind=I4) :: ny
real(kind=R8), dimension(1:11) :: res
type(SCALE_SURF) :: scal_surf
real(kind=R8), allocatable, dimension(:) :: vec_heights

Source Code

program test_abbott
use data_arch,     only : I4, R8
use miscellaneous, only : get_unit
use surfile,       only : read_surf, write_surf, SCALE_SURF
use abbott,        only : abbott_param

implicit none

real(kind=R8), allocatable, dimension(:)   :: vec_heights
real(kind=R8), allocatable, dimension(:,:) :: heights

real(kind=R8), dimension(1:11) :: res

integer(kind=I4) :: nx, ny

type(SCALE_SURF) :: scal_surf

call read_surf( nom_fic = "sur/test.sur", &  ! IN
                  tab_s = heights,        &  ! OUT
                   scal = scal_surf )        ! OUT

nx = scal_surf%xres
ny = scal_surf%yres

allocate( vec_heights(1:nx * ny) )

vec_heights(1:nx * ny) = reshape( heights, [nx * ny] )

call abbott_param(   tab     = vec_heights(1:nx * ny),      &  !
                     lg      = nx * ny,                     &  !
                     nom     = 'out/test',                  &  !
                     curves  = [.true., .true., .true.],    &  !
                     results = res(1:11),                   &  !
                     omp     = .true. )                        !

write(*, *) 'smr1, iso 25178.................: ', res( 1)
write(*, *) 'smr2, iso 25178.................: ', res( 2)
write(*, *) 'spk , iso 25178.................: ', res( 3)
write(*, *) 'svk , iso 25178.................: ', res( 4)
write(*, *) 'off1, ordonnée de spk...........: ', res( 5)
write(*, *) 'off2, ordonnée de svk...........: ', res( 6)
write(*, *) 'sk  , iso 25178.................: ', res( 7)
write(*, *) 'core slope..................... : ', res( 8)
write(*, *) 'adjustment factor (tangent fit) : ', res( 9)
write(*, *) 'coeffa_tan        (tangent fit) : ', res(10)
write(*, *) 'coeffb_tan        (tangent fit) : ', res(11)

write(*, *)

write(*, *) 'NB: on a reduced Abbott curve, the tangent fit is not so good'   //    &  !
            ' because the beginning and the end of the data points are kept'  //    &  !
            ' making the curve too much sharp.'                                        !

deallocate( heights, vec_heights )

stop
endprogram test_abbott