#
# obs2mesonh
#
# Int�gration des observations 1D,2D,3D dans la grille Mesonh et �criture d'un fichier
# diachronique pouvant �tre utilis� via diaprog ou extractdia (readvar/writevar)
#
#  1) pr�parer un(des) fichier(s) ascii contenant toutes les observations
#  au format suivant: une obs par ligne, la valeur ind�finie pr�vue �tant 999.0
#       lon lat altitude_en_m�tres valeur   
#    ou lat lon altitude_en_m�tres valeur   
#
#  2) disposer d un fichier diachronique (fic_diachro_avec_zs): les observations seront integrees sur la grille definie dans ce fichier
#
#  3) initialiser (facultatif si les fichiers sont dans le repertoire courant)
    export DIROBS=directory_fichiers_obs
    export DIRLFI=directory_fichier_grille_mesonh
#     puis executer
    obs2mesonh #et r�pondre aux questions en interactif
               # Un fichier "dirobs2mnh" consignera toutes vos r�ponses 
               # rentr�es au clavier
#    ou
    obs2mesonh < dirobs2mnh_execution_precedente
#    ou
    obs2mesonh << eof
fic_diachro_avec_zs     # pour initialiser la grille Mesonh et les dates/heures
0/1/2/3                 # + ou - de prints de contr�le
LL                      # format du fichier d obs (LL=lon lat alt valeur, 
                        #                          ll=lat lon alt valeur)
fichier1_obs            # format lon lat altitude valeur (indef=999.0)
nom_nouveau_champ       # nom des obs du fichier1 suivant la logique diaprog
unit�_nouveau_champ     # chaine de caract�res libre
1D/2D/3D                # champ cr�� de type 1D ou 3D ou 2D 
                        # pour le cas 2D, seul K=1 sera initialis�
LL                      # format du fichier d obs (LL=lon lat alt valeur, ll= lat lon alt valeur)
fichier2_obs
nom_nouveau_champ2
unit�_nouveau_champ2
1D/2D/3D
END                     # fin donc fermeture du fichier diachro r�sultat
eof
#
#  4) le fichier r�sultat est nomm� fic_diachro_avec_zs+'obs':
#    sa grille et ses dates/heures sont celles de fic_diachro_avec_zs,
#    le champ ZS est celui de fic_diachro_avec_zs
#    il contient autant de champs que de fichiers d'obs trait�s lors de 
#   l'ex�cution de obs2mesonh.
#   + un champ ALT_nom_champ si le type=2D : altitude des obs
#   + un champ N_nom_champ                 : nombre d obs par point de grille
#
#     diaprog ou extractdia ou ... sont utilisables
#
#     Pour les trac�s, utiliser la version post�rieure � diaprog_LX_020204
#                      activer l'option LSPOT=T pour obtenir le trac� de
#     toutes les valeurs m�me si celles-ci sont tr�s peu denses.
#
# 
#M�thode utilis�e:
#=================
#
#  pour chaque obs lue, 
#   - recherche du point de grille Mesonh  I,J contenant cette obs.
#   - puis recherche du niveau vertical en tenant compte de la 
#     grille verticale au point I,J ( grille verticale W si le nom du champ
#     commence par la lettre W, grille de masse pour tous les autres noms
#   - stockage de l'obs au point de grille (I,J,K)
#
# Pour les composantes du vent, on suppose que les observations sont
# lues en Uzonal et Vm�ridien et on transforme ces composantes pour les
# utiliser dans la grille Mesonh.
#
#   Moyenne arithm�tique des obs contenues dans la m�me maille du mod�le
#   Valeur indefinie si aucune obs.
#   Pour les obs dont l unit� est "dBz" : passage dbZe � Ze pour effectuer
# la moyenne puis retour � dbZe pour l'�criture
#   Les observations dont l'altitude est inf�rieure � l'altitude du premier
# niveau de mod�le sont stock�es au niveau k=1 et un message est affich� lors de
# l'ex�cution.
#  
#  Mise � jour le 02/04/2004
#  Mise � jour le 01/03/2005