2. Syntax#

function_table = GENE_ACCE_SEISME (
    ◇ INIT_ALEA = int,
    ◇ TITRE = text,
    ◇ INFO =/1 (by default),
             /2,
    ◆ PAS_INST = float,
    ◇ NB_POIN = int,
    ◆ PESANTEUR = float,
    ◆ DUREE_PHASE_FORTE = float,
    ◇ NB_TIRAGE = int (default: 1),
    ◇ FREQ_CORNER = float,
    ◇ FREQ_FILTRE = float,
    ◇ FREQ_FILTRE_ZPA = float,
    ◇ FREQ_PENTE = float,
      /COEF_CORR = float,
    ◇/MATR_COHE = _F (
           ◆ MAILLAGE = mesh,
           ◆ GROUP_NO_INTERF = grno,
           ◆ TYPE =/"MITA_LUCO ",
                    /"ABRAHAMSON ",
                    /"ABRA_ROCHER ",
                    /"ABRA_SOLMOYEN ",
           # If: equal_to ('TYPE', 'MITA_LUCO')
               ◆ VITE_ONDE = float,
               ◇ PARA_ALPHA = float (default: 0.1),
        ),
      /PHASE = _F (
           ◆ MAILLAGE = mesh,
           ◆ GROUP_NO_INTERF = grno,
           ◆ DIRECTION = float,
           ◆ VITE_ONDE = float,
           ◇ COOR_REFE = float,
        ),
    # If: exists ('COEF_CORR') and exists ('SPEC_FRACTILE')
        ◇ RATIO_HV = float,
    ◆/DSP = _F (
           ◆ AMOR_REDUIT = float,
           ◆ FREQ_FOND = float,
        ),
      /SPEC_MEDIANE = _F (
           ◆ SPEC_OSCI = function,
           ◆ AMOR_REDUIT = float,
           ◇/FREQ_PAS = float,
             /LIST_FREQ = listr8,
           ◇ NB_ITER = int,
           ◇ ERRE_ZPA = float (default: (1.0, 0.2)),
           ◇ ERRE_MAX = float (default: (0.5, 0.2)),
           ◇ ERRE_RMS = float (default: (0.5, 0.2)),
           ◇ METHODE =/"NIGAM ",
                       /"HARMO" (by default),
        ),
      /SPEC_MOYENNE = _F (
           ◆ SPEC_OSCI = function,
           ◆ AMOR_REDUIT = float,
           ◇/FREQ_PAS = float,
             /LIST_FREQ = listr8,
           ◇ NB_ITER = int,
           ◇ ERRE_ZPA = float (default: (1.0, 0.2)),
           ◇ ERRE_MAX = float (default: (0.5, 0.2)),
           ◇ ERRE_RMS = float (default: (0.5, 0.2)),
           ◇ METHODE =/"NIGAM ",
                       /"HARMO" (by default),
        ),
      /SPEC_UNIQUE = _F (
           ◇ ERRE_ZPA = float (default: (1.0, 0.2)),
           ◇ ERRE_MAX = float (default: (0.5, 0.2)),
           ◇ ERRE_RMS = float (default: (0.5, 0.2)),
           ◆ SPEC_OSCI = function,
           ◆ AMOR_REDUIT = float,
           ◇/FREQ_PAS = float,
             /LIST_FREQ = listr8,
           ◇ NB_ITER = int,
           ◇ METHODE =/"NIGAM ",
                       /"HARMO" (by default),
        ),
      /SPEC_FRACTILE = _F (
           ◆ SPEC_OSCI = function,
           ◆ SPEC_1_SIGMA = function,
           ◆ AMOR_REDUIT = float,
           ◇/FREQ_PAS = float,
             /LIST_FREQ = listr8,
        ),
    # If: exists ('DSP')
        ◆ MODULATION = _F (
             ◆ TYPE =/"GAMMA ",
                      /"JENNINGS_HOUSNER ",
                      /"CONSTANT ",
             ◇/ACCE_MAX = float,
               /INTE_ARIAS = float,
               /ECART_TYPE = float,
             # If: equal_to ('TYPE', 'GAMMA')
                 ◆ INST_INI = float,
          ),
    # If: not exists ('DSP')
        ◆ MODULATION = _F (
             ◆ TYPE =/"GAMMA ",
                      /"JENNINGS_HOUSNER ",
                      /"CONSTANT ",
             # If: equal_to ('TYPE', 'GAMMA')
                 ◆ INST_INI = float,
          ),
)

◆: mandatory
◇: optional
: present by default
&: together
/: only one among
|: several possible choices