********************************************************************************
********* I N S T R U C T I O N S   D   I N S T A N C I A T I O N **************
********************************************************************************
                                              Zdl_html.dir/Model_Instanciation <

********************************************************************************
********* Initialisation et attribution de valeurs aux Parametres **************
********************************************************************************
! =====================================================================
! ========> macro pour l'affectation des parametres dans Zinit <=======
! =====================================================================

fill_CD   "ou fill_TD"
< toute intruction FORTRAN;
  [Var_Name { (i {,j} ) } ] {:Var_type} = expression;  " { } : veut dire optionel"
>
avec :
   Var_Name : * Nom de la variable dans le bank CD (ou TD) (Case insensitif)
   Var_Type : * I ou R (optionel)
              * Type de la variable. Si le type n'est pas precise, on suit la
              convention FORTRAN (entier de I-N, reel sinon) de la variable Var_Name.
              * Si ce type ne correspond pas a celui de Var_Name lors de sa
              declaration dans le CD ou TD bank, on envoie une bordee d'insultes
              et on n'ecrit pas dans la variable
   i et j   : * Valeur des indices. On verifie qu'il n'y a pas de depassement.
              Meme supplice que precedemment en cas d'heresie ou de tentative
              quelconque de ne pas suivre La Norme.
Il est exclu d'ecrire dans une link_var ou dans une variable utilisee pour
dimensionner des tableaux.

 exemples :
- - - - - -
  CREATE CL Surf-1 , type = ND ;
  fill_CD
  < [Heat_capa]:r = CpSol;
  >
;
   CREATE TR , TYPE = RAD2 NTOT; " Transfert radiatif"
      ........
      fill_TD
      < [IntrvMin]:i = 1;          [IntrvMax]:i = 4;
        [Temp_Bias]:r = TBias;     [RCoefDif]:r = 1.;
        do I = 1,NbVolGaz
        < [Ro(I+1)]:r   = RoCtr(I);
          [Zmoy(I+1)]:r = ZCtr(I);
          [DZ(I+1)]:r   = DzCtr(I);
          [Sigm(I+1)]:r = SigCtr(I);
        >
      > "close fill_TD"
;

Remarque générale pour le remplissage Eta, Fi TD_bank et CD_bank:
=================================================================

Le block < .... > est un block standard MORTRAN: toute opération y est donc
possible. Par exemple, fill_Fi< [1 thru 12] = Fi_zero; >; pourrait s'écrire:
     fill_Fi< <I=1,12; [I] = Fi_zero; > > ;

Remplissage des variables ( Eta ou Fi )
=======================================

1) En spécifiant chaque numero de composantes du vecteur (_Eta ou _Fi):

     FILL_ETA < [1] = T; [3] = 273. >; " Initialise Eta(1) avec la variable T
                                        et Eta(3) avec 273."
;
     fill_Fi< [1 thru 12] = Fi_zero; >; " Fi(1 à = Fi_zero"

remarque:  error ou Warning si on tente de déborder des dimensions déclarées
---------  dans le processeur .

2) Initialisation de tout le vecteur

     fill_Eta< [.] = H; >; " Initialise toutes les composantes à H"

3) Initialisation implicite par liste:

     FILL_ETA< [.] = T_ref, Vx_surface, Vy_surface, Sel_conc, Ro_eau; >
        a pour consequences:
                   Eta(1) = T_ref;
                   Eta(2) = Vx_surface;
                   Eta(3) = Vy_surface;
                   Eta(4) = Sel_conc;
                   Eta(5) = Ro_eau;
        Verifications de débordement et Warning si le vecteur n ' est pas
      entièrement initialisé.
