G.Delautier 19/09/2017 : bug MNH2LPDM
[MNH-git_open_source-lfs.git] / src / MNH / mnh2lpdm.f90
1 !MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
3 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
4 !MNH_LIC for details. version 1.
5 !     ######spl
6         PROGRAM MNH2LPDM
7 !       ##############
8 !-----------------------------------------------------------------------------
9 !****   MNH2DIF COUPLAGE MESO-NH / SPRAY.
10 !
11 !       Auteur   :   Michel Bouzom, DP/SERV/ENV
12 !       Creation :   16.07.2002
13 !       Modification  : 07.01.2006 (T.LAUVAUX, adaptation LPDM)
14 !       Modification  : 04.01.2009 (F. BONNARDOT, DP/SER/ENV )
15 !
16 !-----------------------------------------------------------------------------
17 !
18 !
19 !
20 !*      0.  DECLARATIONS.
21 !           -------------
22 !
23 !*      0.1 Modules.
24 !
25 USE MODD_MNH2LPDM
26 USE MODE_IO_LL
27 USE MODD_CONF, ONLY : CPROGRAM
28 USE MODE_MODELN_HANDLER
29 USE MODN_CONFIO
30 USE MODE_POS
31 !
32 USE MODI_MNH2LPDM_INI
33 USE MODI_MNH2LPDM_ECH
34 !
35 !
36 !*      0.2 Variables locales.
37 !
38 IMPLICIT NONE
39 !
40 CHARACTER(LEN=28) :: YFNML,YFLOG        ! Nom   NAMELIST et LOG.
41 INTEGER           :: IFNML,IFLOG        ! Unite NAMELIST et LOG.
42 INTEGER           :: IFMTO,IFGRI,IFDAT  ! Unite METEO et GRILLE.
43 INTEGER           :: IREP,IVERB,JFIC
44 LOGICAL :: GFOUND         ! Return code when searching namelist
45 !
46 !
47 !
48 !
49 !*      1.  INITIALISATION.
50 !           ---------------
51 !
52 CPROGRAM='M2LPDM'
53 CALL GOTO_MODEL(1)
54 !
55 !*      1.1 Variables generales.
56 !
57 YFLOG    = 'METEO.log'
58 YFNML    = 'MNH2LPDM1.nam'
59 IVERB    =  5
60  CFMNH(:) = 'VIDE'
61 IFLOG = 52
62 IFGRI = 51
63 IFDAT = 53
64 !
65 !
66 !*      1.2 Initialisation routines LL.
67 !
68 CALL INITIO_ll()
69 !
70 !
71 !*      1.3 Ouverture du fichier log.
72 !
73 CALL OPEN_LL(UNIT=IFLOG,FILE=YFLOG,IOSTAT=IREP,FORM='FORMATTED', &
74      ACTION='WRITE',MODE='GLOBAL')
75 !
76 !
77 !*      1.4 Lecture des namelists.
78 !
79 CALL OPEN_LL(UNIT=IFNML,FILE=YFNML,IOSTAT=IREP,FORM='FORMATTED', &
80      ACTION='READ',MODE='GLOBAL')
81 print *,'Ouverture fichier Namlist OK'
82 READ(UNIT=IFNML,NML=NAM_TURB)
83 READ(UNIT=IFNML,NML=NAM_FIC)
84 print *,'Lecture de NAM_FIC OK.'
85
86 CALL POSNAM(IFNML,'NAM_CONFIO',GFOUND)
87 IF (GFOUND) THEN
88   READ(UNIT=IFNML,NML=NAM_CONFIO)
89 END IF
90 CALL SET_CONFIO_ll(.FALSE., .FALSE., .FALSE.)
91 CALL CLOSE_LL(YFNML,IREP,'KEEP')
92 !
93 !
94 !*      1.5 Comptage des FM a traiter.
95 !
96 IF (CFMNH(1).NE.'VIDE') THEN
97    NBMNH=1
98    DO WHILE (CFMNH(NBMNH+1).NE.'VIDE')
99       NBMNH=NBMNH+1
100    END DO
101    print *,NBMNH,' fichiers a traiter.'
102 ELSE
103    STOP
104 ENDIF   
105 !
106 !
107 !
108 !
109 !*      2.  TRAITEMENTS.
110 !           ------------
111 !
112 !*      2.1 Ouverture des fichiers METEO et GRILLE et DATE.
113 !
114 CALL OPEN_LL(UNIT=IFGRI,FILE=CFGRI,IOSTAT=IREP,FORM='FORMATTED', &
115   ACTION='WRITE',MODE='GLOBAL')
116 CALL OPEN_LL(UNIT=IFDAT,FILE=CFDAT,IOSTAT=IREP,FORM='FORMATTED', &
117   ACTION='WRITE',MODE='GLOBAL')
118 !
119 !
120 !*      2.2 Preparation du couplage.
121 !
122 CALL MNH2LPDM_INI(CFMNH(1),CFMNH(NBMNH),YFLOG,IFLOG,IFGRI,IFDAT,IVERB)
123 !
124 !
125 !*      2.3 Traitement des echeances.
126 !
127 DO JFIC=1,NBMNH
128    IFMTO = JFIC+60
129    print*,"CFMTO(JFIC)=",CFMTO(JFIC)
130    CALL OPEN_LL(UNIT=IFMTO,FILE=CFMTO(JFIC),IOSTAT=IREP,FORM='UNFORMATTED', &
131       ACTION='WRITE',MODE='GLOBAL',RECL=100000000)
132    CALL MNH2LPDM_ECH(CFMNH(JFIC),IFMTO,YFLOG,IFLOG,IVERB)
133    print*,"CLOSE_LL(CFMTO(JFIC)"
134    CALL CLOSE_LL(CFMTO(JFIC),IREP,'KEEP')
135 END DO
136 !
137 !
138 !*      2.4 Fermeture des fichiers, METEO, GRILLE et LOG.
139 !
140 CALL CLOSE_LL(CFGRI,IREP,'KEEP')
141 CALL CLOSE_LL(CFDAT,IREP,'KEEP')
142 CALL CLOSE_LL(YFLOG,IREP,'KEEP')
143 !
144 !
145 !
146 END PROGRAM MNH2LPDM