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_ini, m__LF, m__HF, m_end, m_inp, m_stt pikaia_class pikaia_class type~param_crest->pikaia_class pik_class type~acf_param acf_param type~param_crest->type~acf_param orig_surf, curr_surf

Components

Type Visibility Attributes Name Initial
real(kind=R8), public, allocatable, dimension(:,:) :: acf_surf

calculated autocorrelation

logical(kind=I4), public :: apod

apodize imposed acf?

logical(kind=I4), public :: calc_mstt

calculate starting moments?

logical(kind=I4), public :: calc_zf

calculate final heights?

real(kind=R8), public :: crt_acf

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

type(acf_param), public :: curr_surf

current surface ACF properties

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

type(moment_stat), public :: m__HF

surface to be reproduced stat moments, high frequencies

type(moment_stat), public :: m__LF

surface to be reproduced stat moments, low frequencies

type(moment_stat), public :: m_end

final stat moments

type(moment_stat), public :: m_ini

surface to be reproduced 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

type(acf_param), public :: orig_surf

original surface ACF properties

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, allocatable, dimension(:,:) :: surf_HF

surface high frequencies

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

surface low frequencies

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

surface array copy

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)

logical(kind=I4), public, allocatable, dimension(:,:) :: surf_msk

surface high frequencies

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(:,:) :: surf_copy  !! *surface array copy*
      real(kind=R8), allocatable, dimension(:,:) :: surf_LF    !! *surface low frequencies*
      real(kind=R8), allocatable, dimension(:,:) :: surf_HF    !! *surface high frequencies*

      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*

      logical(kind=I4), allocatable, dimension(:,:) :: surf_msk!! *surface high frequencies*

      type(MOMENT_STAT) :: m_ini                               !! *surface to be reproduced stat moments*
      type(MOMENT_STAT) :: m__LF                               !! *surface to be reproduced stat moments, low  frequencies*
      type(MOMENT_STAT) :: m__HF                               !! *surface to be reproduced stat moments, high frequencies*
      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*

      type(ACF_PARAM)  :: orig_surf                            !! *original surface ACF properties*
      type(ACF_PARAM)  :: curr_surf                            !! *current  surface ACF properties*

      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?*

      logical(kind=I4) :: calc_mstt                            !! *calculate starting moments?*

      logical(kind=I4) :: calc_zf                              !! *calculate final heights?*

      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