param_crest Derived Type

type, public :: param_crest


Inherits

type~~param_crest~~InheritsGraph type~param_crest param_crest moment_stat moment_stat type~param_crest->moment_stat m_end, m_inp, m_stt pikaia_class pikaia_class type~param_crest->pikaia_class pik_class

Components

Type Visibility Attributes Name Initial
real(kind=R8), public :: a_acf

roughness orientation

real(kind=R8), public :: acf__z

acf cutting plane z, for correlation lengths determination

real(kind=R8), public, allocatable, dimension(:,:) :: acf_surf

calculated autocorrelation

logical(kind=I4), public :: apod

apodize imposed acf?

real(kind=R8), public :: crt_acf

acf criterion: mean absolute difference between imposed and calculated acf allowed

real(kind=R8), public :: cutoff

Gaussian filter cutoff

real(kind=R8), public, allocatable, dimension(:,:) :: fhi

digital filter

integer(kind=I4), public :: func_gen

mathematical function used to generate the heights

integer(kind=I4), public :: height

surface nb points along y

real(kind=R8), public, allocatable, dimension(:,:) :: imp_acf

imposed autocorrelation

real(kind=R8), public :: l_acf1

correlation principal length at z=acf__z

real(kind=R8), public :: l_acf2

correlation secondary length at z=acf__z

type(moment_stat), public :: m_end

final stat moments

type(moment_stat), public :: m_inp

input stat moments for genetic algo optimizer

type(moment_stat), public :: m_stt

starting stat moments

integer(kind=I4), public :: nb_threads

number of concurrent threads

integer(kind=I4), public :: nparam

number of parameters for the mathematical function

integer(kind=I4), public :: npts

surface nb points

integer(kind=I4), public, allocatable, dimension(:) :: order

vector that stores heights order

logical(kind=I4), public :: periodic

is the surface periodic?

type(pikaia_class), public :: pik_class

PIKAIA class instanciation

logical(kind=I4), public :: reajust_skku

if Ssk2 +1 > Sku, modify Sku

real(kind=R8), public :: res_acf

store mean absolute difference between imposed and calculated acf

integer(kind=I4), public :: sub_height

subsurface nb points along y

integer(kind=I4), public :: sub_npts

subsurface nb points

real(kind=R8), public :: sub_surf_height

subsurface height (m)

real(kind=R8), public :: sub_surf_width

subsurface width (m)

integer(kind=I4), public :: sub_width

subsurface nb points along x

real(kind=R8), public, allocatable, dimension(:,:) :: surf

surface array

real(kind=R8), public :: surf_dx

surface increment along x (m)

real(kind=R8), public :: surf_dy

surface increment along y (m)

real(kind=R8), public :: surf_height

surface height (m)

real(kind=R8), public :: surf_width

surface width (m)

real(kind=R8), public, allocatable, dimension(:) :: vect_h

vector used to store the heights that meet the stat moments

integer(kind=I4), public :: width

surface nb points along x


Source Code

   type param_crest

      real(kind=R8), allocatable, dimension(:)   :: vect_h     !! *vector used to store the heights that meet the stat moments*

      real(kind=R8), allocatable, dimension(:,:) :: surf       !! *surface array*

      real(kind=R8), allocatable, dimension(:,:) :: imp_acf    !! *imposed autocorrelation*
      real(kind=R8), allocatable, dimension(:,:) :: fhi        !! *digital filter*

      real(kind=R8), allocatable, dimension(:,:) :: acf_surf   !! *calculated autocorrelation*

      integer(kind=I4), allocatable, dimension(:) :: order     !! *vector that stores heights order*

      type(MOMENT_STAT) :: m_end                               !! *final stat moments*
      type(MOMENT_STAT) :: m_inp                               !! *input stat moments for genetic algo optimizer*
      type(MOMENT_STAT) :: m_stt                               !! *starting stat moments*

      type(pikaia_class) :: pik_class                          !! **PIKAIA** *class instanciation*

      integer(kind=I4) :: func_gen                             !! *mathematical function used to generate the heights*
      integer(kind=I4) :: nparam                               !! *number of parameters for the mathematical function*

      integer(kind=I4) :: nb_threads                           !! *number of concurrent threads*

      integer(kind=I4) :: width                                !! *surface nb points along x*
      integer(kind=I4) :: height                               !! *surface nb points along y*
      integer(kind=I4) :: npts                                 !! *surface nb points*
      integer(kind=I4) :: sub_width                            !! *subsurface nb points along x*
      integer(kind=I4) :: sub_height                           !! *subsurface nb points along y*
      integer(kind=I4) :: sub_npts                             !! *subsurface nb points*

      logical(kind=I4) :: reajust_skku                         !! *if Ssk**2 +1 > Sku, modify Sku*

      logical(kind=I4) :: periodic                             !! *is the surface periodic?*

      logical(kind=I4) :: apod                                 !! *apodize imposed acf?*

      real(kind=R8) :: l_acf1                                  !! *correlation principal length at z=acf__z*
      real(kind=R8) :: l_acf2                                  !! *correlation secondary length at z=acf__z*
      real(kind=R8) :: acf__z                                  !! *acf cutting plane z, for correlation lengths determination*
      real(kind=R8) :: a_acf                                   !! *roughness orientation*

      real(kind=R8) :: cutoff                                  !! *Gaussian filter cutoff*

      real(kind=R8) :: surf_width                              !! *surface width (m)*
      real(kind=R8) :: surf_height                             !! *surface height (m)*

      real(kind=R8) :: sub_surf_width                          !! *subsurface width (m)*
      real(kind=R8) :: sub_surf_height                         !! *subsurface height (m)*

      real(kind=R8) :: surf_dx                                 !! *surface increment along x (m)*
      real(kind=R8) :: surf_dy                                 !! *surface increment along y (m)*

      real(kind=R8) :: crt_acf                                 !! *acf criterion: mean absolute difference between imposed and calculated acf allowed*

      real(kind=R8) :: res_acf                                 !! *store mean absolute difference between imposed and calculated acf*

   endtype param_crest