2. Syntax#

/tran_gene
/harm_gene
/table
/char_meca = CALC_MISS (
    ◆ TYPE_RESU =/"HARM_GENE ",
                  /"TRAN_GENE ",
                  /"TABLE ",
                  /"TABLE_CONTROL ",
                  /"FICHIER ",
                  /"FICHIER_TEMPS ",
                  /"CHARGE ",
    ◇ PROJET = text (default: "MODELE "),
    ◇ REPERTOIRE = text,
    ◇ VERSION =/"V6.7" (by default),
                /"V6.6",
                /"V6.5",
      /TABLE_SOL = table,
    ◇/MATER_SOL = _F (
           ◆ E = float,
           ◆ NU = float,
           ◆ RHO = float,
           ◇ AMOR_HYST = float,
        ),
    ◇ MATER_FLUIDE = _F (
         ◆ RHO = float,
         ◆ CELE = float,
         ◇ AMOR_BETA = float,
         ◇ DEMI_ESPACE =/"OUI" (by default),
                         /"NON ",
      ),
    # If: is_in (" TYPE_RESU ", ('FICHIER', 'TABLE_CONTROL'))
        ◆/MACR_ELEM_DYNA = macr_elem_dyna,
          /BASE_MODALE = meca fashion,
        # If: exists (" BASE_MODALE ")
            ◇ MATR_RIGI = matr_asse_depl_c/matr_asse_depl_r,
            ◇ MATR_MASS = matr_asse_depl_r,
        ◇ AMOR_REDUIT = float,
        ◆ GROUP_MA_INTERF = Grma,
        ◇ & GROUP_MA_FLU_STR = grma,
          & GROUP_MA_FLU_SOL = grma,
        ◇ GROUP_MA_SOL_SOL = Grma,
        ◇ UNITE_IMPR_ASTER = unit,
        ◇ UNITE_RESU_IMPE = unit,
        ◇ UNITE_RESU_FORC = unit,
        ◇/SOURCE_SOL = _F (
               ◆ POINT = float,
               ◆ DIRECTION = float,
            ),
          /SOURCE_FLUIDE = _F (
               ◆ POINT = float,
            ),
    # If: equal_to (" TYPE_RESU ", 'FICHIER_TEMPS')
        ◆/MACR_ELEM_DYNA = macr_elem_dyna,
          /BASE_MODALE = meca fashion,
        # If: exists (" BASE_MODALE ")
            ◇ MATR_RIGI = matr_asse_depl_c/matr_asse_depl_r,
            ◇ MATR_MASS = matr_asse_depl_r,
        ◇ AMOR_REDUIT = float,
        ◆ GROUP_MA_INTERF = GRMA,
        ◇ & GROUP_MA_FLU_STR = grma,
          & GROUP_MA_FLU_SOL = grma,
        ◇ GROUP_MA_SOL_SOL = Grma,
        ◇ UNITE_IMPR_ASTER = unit,
        ◆ | UNITE_RESU_RIGI = unit,
          | UNITE_RESU_AMOR = unit,
          | UNITE_RESU_MASS = unit,
        ◇ INST_FIN = float,
        ◇ PAS_INST = float,
        ◇ INST_ECRI_FIN = float,
        ◇ FACTEUR_INTERPOL = int (default: 1),
        ◇ PCENT_FREQ_CALCUL = float,
        ◇ PRECISION = float (default: 1e-06),
        ◇ COEF_SURECH = float (default: 1.35),
        ◇ COEF_MULT = float (default: 1.0),
        ◇ TYPE_FICHIER_TEMPS =/"BINAIRE ",
                               /"ASCII" (by default),
        ◇ & MATR_GENE = _F (
               ◇ DECOMP_IMPE =/"PRODUIT" (by default),
                               /"SANS_PRODUIT ",
               ◆ AMOR_HYST =/"DANS_IMPEDANCE ",
                             /"DANS_MATR_AMOR ",
               # If: equal_to (" AMOR_HYST ", 'DANS_MATR_AMOR')
                   ◇ MATR_MASS = matr_asse_gene_r/matr_asse_depl_r,
                   ◇ MATR_RIGI = matr_asse_gene_r/matr_asse_depl_r/matr_asse_gene_c,
                   ◆ MATR_AMOR = matr_asse_gene_r/matr_asse_depl_r/matr_asse_gene_c,
               # If: equal_to (" AMOR_HYST ", 'DANS_IMPEDANCE')
                   ◆ | MATR_MASS = matr_asse_gene_r/matr_asse_depl_r,
                     | MATR_RIGI = matr_asse_gene_r/matr_asse_depl_r/matr_asse_gene_c,
                     | MATR_AMOR = matr_asse_gene_r/matr_asse_depl_r/matr_asse_gene_c,
            ),
        ◇ EXCIT_SOL = _F (
             ◆ UNITE_RESU_FORC = unit,
             ◇ NOM_CHAM =/"ACCE ",
                          /"VITE ",
                          /"DEPL" (by default),
             ◆ | CHAM_X = function,
               | CHAM_Y = function,
               | CHAM_Z = function,
          ),
    # If: not is_in (" TYPE_RESU ", ('FICHIER', '', 'FICHIER_TEMPS', 'TABLE_CONTROL', 'CHARGE'))
        ◇ MACR_ELEM_DYNA = macr_elem_dyna,
        ◆ BASE_MODALE = meca fashion,
        ◆ MATR_RIGI = matr_asse_depl_c/matr_asse_depl_r,
        ◆ MATR_MASS = matr_asse_depl_r,
        ◆/MATR_AMOR = matr_asse_depl_r,
          /AMOR_REDUIT = float,
        ◆ GROUP_MA_INTERF = GRMA,
        ◇ & GROUP_MA_FLU_STR = grma,
          & GROUP_MA_FLU_SOL = grma,
        ◇ GROUP_MA_SOL_SOL = Grma,
        ◇ UNITE_IMPR_ASTER = unit,
        ◇ UNITE_RESU_IMPE = unit,
        ◇ UNITE_RESU_FORC = unit,
    ◇ PARAMETRE = _F (
         ◆/FREQ_MIN = float,
         ◇ & FREQ_MAX = float,
           & ◆ FREQ_PAS = float,
           /LIST_FREQ = float,
           /FREQ_IMAG = float,
         ◇ Z0 = float,
         ◇ TYPE =/"BINAIRE ",
                  /"ASCII" (by default),
         ◇ ISSF =/"OUI ",
                  /"NON" (by default),
         ◇ ALLU = float,
         ◇ SURF =/"OUI ",
                  /"NON" (by default),
         ◇ DREF = float,
         ◇ & OFFSET_MAX = float,
           & OFFSET_NB = int,
         ◇ AUTO =/"OUI ",
                  /"NON" (by default),
         # If: equal_to (" AUTO ", 'OUI')
             ◇ OPTION_DREF =/"OUI ",
                             /"NON" (by default),
             ◇ OPTION_RFIC =/"OUI ",
                             /"NON" (by default),
             ◇ RFIC = float,
             ◇ & SPEC_MAX = float,
               & SPEC_NB = int,
             ◇ COEF_OFFSET = int (default: 12),
         # If: equal_to (" AUTO ", 'NON')
             ◇ ALGO =/"DEPL ",
                      /"REGU ",
             ◇ RFIC = float,
             ◇ & SPEC_MAX = float,
               & SPEC_NB = int,
      ),
    # If: equal_to (" TYPE_RESU ", 'TRAN_GENE')
        ◆ MODELE = model,
        ◇ GROUP_NO = big,
        ◇ & INST_FIN = float,
          & PAS_INST = float,
        # If: exists (" INST_FIN ")
            ◆ | ACCE_X = function,
              | ACCE_Y = function,
              | ACCE_Z = function,
              | DEPL_X = function,
              | DEPL_Y = function,
              | DEPL_Z = function,
        # If: not exists (" INST_FIN ")
            ◆ | ACCE_X = function_c,
              | ACCE_Y = function_c,
              | ACCE_Z = function_c,
              | DEPL_X = function_c,
              | DEPL_Y = function_c,
              | DEPL_Z = function_c,
    # If: equal_to (" TYPE_RESU ", 'HARM_GENE')
        ◆ MODELE = model,
        ◇ GROUP_NO = big,
        ◇ & INST_FIN = float,
        ◇/EXCIT_HARMO = _F (
               ◆/VECT_ASSE = cham_no,
                 /CHARGE = char_meca,
               ◆/FONC_MULT_C = function_c/formula_c,
                 /FONC_MULT = formula/tablecloth/function,
                 /COEF_MULT = float,
                 /COEF_MULT_C = complex,
               ◇ PHAS_DEG = float,
               ◇ PUIS_PULS = int,
            ),
          & PAS_INST = float,
        # If: not exists (" EXCIT_HARMO ") and exists (" INST_FIN ")
            ◆ | ACCE_X = function,
              | ACCE_Y = function,
              | ACCE_Z = function,
              | DEPL_X = function,
              | DEPL_Y = function,
              | DEPL_Z = function,
        # If: not exists (" EXCIT_HARMO ") and not exists (" INST_FIN ")
            ◆ | ACCE_X = function_c,
              | ACCE_Y = function_c,
              | ACCE_Z = function_c,
              | DEPL_X = function_c,
              | DEPL_Y = function_c,
              | DEPL_Z = function_c,
    # If: equal_to (" TYPE_RESU ", 'TABLE')
        ◆ MODELE = model,
        ◆ GROUP_NO = grno,
        ◇ & INST_FIN = float,
          & PAS_INST = float,
        ◆ NORME = float,
        ◆ AMOR_SPEC_OSCI = float,
        ◇ LIST_FREQ_SPEC_OSCI = listr8,
        # If: exists (" INST_FIN ")
            ◆ | ACCE_X = function,
              | ACCE_Y = function,
              | ACCE_Z = function,
        # If: not exists (" INST_FIN ")
            ◆ | ACCE_X = function_c,
              | ACCE_Y = function_c,
              | ACCE_Z = function_c,
    # If: equal_to (" TYPE_RESU ", 'TABLE_CONTROL')
        ◇ GROUP_MA_CONTROL = Grma,
        ◇ & INST_FIN = float,
          & PAS_INST = float,
        ◇ & NORME = float,
          & AMOR_SPEC_OSCI = float,
        ◇ LIST_FREQ_SPEC_OSCI = listr8,
        ◇ TOUT_CHAM = "OUI" (or not specified),
        # If: exists (" INST_FIN ")
            ◇ ACCE_X = function,
            ◇ ACCE_Y = function,
            ◇ ACCE_Z = function,
        # If: not exists (" INST_FIN ")
            ◇ ACCE_X = function_c,
            ◇ ACCE_Y = function_c,
            ◇ ACCE_Z = function_c,
    # If: equal_to (" TYPE_RESU ", 'CHARGE')
        ◆ MODELE = model,
        ◆ FONC_SIGNAL = function,
        ◆ NOM_CMP =/"DX",
                    /"DY",
                    /"DZ",
        ◇ ISSF =/"OUI ",
                 /"NON" (by default),
        ◇/GROUP_NO_AFFE = grno,
        ◆ UNITE_RESU_FORC = unit,
        ◇ FREQ_MAX = float,
        ◇ VARI =/"OUI ",
                 /"NON" (by default),
        ◇ MATR_GENE = _F (
             ◆ BASE = meca fashion,
             ◆ NUME_DDL_GENE = nume_ddl_gene,
          ),
        ◇ PRECISION = float (default: 0.999),
        ◇ INTERF = _F (
             ◆ GROUP_NO_INTERF = grno,
             ◆ MODE_INTERF =/"CORP_RIGI ",
                             /"TOUT ",
                             /"QUELCONQUE ",
          ),
        ◇ MATR_COHE = _F (
             ◆ TYPE =/"MITA_LUCO ",
                      /"ABRAHAMSON ",
             # If: equal_to (" TYPE ", 'MITA_LUCO')
                 ◇ VITE_ONDE = float (default: 600.0),
                 ◇ PARA_ALPHA = float (default: 0.5),
          ),
        ◇ UNITE_RESU_IMPE = unit,
        ◇ TYPE =/"BINAIRE ",
                 /"ASCII" (by default),
    ◇ INFO =/1 (by default),
             /2,
)

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