crest_param Module


Uses

  • module~~crest_param~~UsesGraph module~crest_param crest_param data_arch data_arch module~crest_param->data_arch pikaia_oop pikaia_oop module~crest_param->pikaia_oop stat_mom stat_mom module~crest_param->stat_mom surfile surfile module~crest_param->surfile

Used by

  • module~~crest_param~~UsedByGraph module~crest_param crest_param module~analyses analyses module~analyses->module~crest_param module~func_acf func_acf module~analyses->module~func_acf module~func_acf->module~crest_param module~script script module~script->module~crest_param module~script->module~analyses module~script->module~func_acf module~skku_profiles skku_profiles module~script->module~skku_profiles module~skku_profiles->module~crest_param program~main main program~main->module~crest_param program~main->module~script

Variables

Type Visibility Attributes Name Initial
integer(kind=I4), public, parameter :: FCT_EXPO = 2

exponential function for height generation

integer(kind=I4), public, parameter :: FCT_TANG = 1

tangent function for height generation

integer(kind=I4), public :: JOB

JOB file: script

type(param_crest), public :: PARAM
integer(kind=I4), public :: SPY

SPY file

integer(kind=I4), public :: STA

result file

integer(kind=I4), public, parameter :: TER = 6

terminal output

integer(kind=I4), public :: i_iter

current and number of iterations

integer(kind=I4), public :: line_read

*line number in the script”

integer(kind=I4), public :: nb_iter

current and number of iterations

integer(kind=I4), public :: save_line_read

*line number in the script”

type(SCALE_SURF), public :: scale_img

.SUR surface properties


Derived Types

type, public ::  acf_param

Components

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

roughness orientation

real(kind=R8), public :: cl1

correlation principal length at z=acf__z

real(kind=R8), public :: cl2

correlation secondary length at z=acf__z

real(kind=R8), public :: cut

acf cutting plane z, for correlation lengths determination

type, public ::  param_crest

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