Newer
Older

WAUTELET Philippe
committed
!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence

WAUTELET Philippe
committed
!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1.
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
!-----------------------------------------------------------------
!! ###########################
MODULE MODI_CH_INIT_MODEL0D
!! ###########################
!!
INTERFACE
SUBROUTINE CH_INIT_MODEL0D(HNAMELISTFILE)
IMPLICIT NONE
CHARACTER*(*), INTENT(IN) :: HNAMELISTFILE
END SUBROUTINE CH_INIT_MODEL0D
END INTERFACE
END MODULE MODI_CH_INIT_MODEL0D
!!
!! #########################################
SUBROUTINE CH_INIT_MODEL0D(HNAMELISTFILE)
!! #########################################
!!
!!*** *CH_INIT_MODEL0D*
!!
!! PURPOSE
!! -------
! initialisation of the different modules from the namelist file
! and of the time control variables
!!
!!** METHOD
!! ------
!! simple
!!
!! REFERENCE
!! ---------
!! none
!!
!! AUTHOR
!! ------
!! K. Suhre
!!
!! MODIFICATIONS
!! -------------
!! Original 02/03/95
!! 27/07/96 (K. Suhre) restructured
!! 19/03/96 (K. Suhre) insert namelists directly for compiler reasons
!! 31/08/96 (K. SUHRE) read MODD_BLANK namelist
!! 01/08/01 (C. Mari) change NAM_CH_SOLVER to $n

WAUTELET Philippe
committed
!! Philippe Wautelet: 10/01/2019: use newunit argument to open files
!!
!! EXTERNAL
!! --------
!! none
!!
!! IMPLICIT ARGUMENTS
!! ------------------
USE MODD_CH_MODEL0D ! use whole module for namelist input
!USE MODD_CH_MNHC_n, ONLY: CCHEM_INPUT_FILE
USE MODD_CH_AEROSOL
USE MODD_CH_AEROSOL0D, ONLY : XEMISSIGI, XEMISSIGJ, XEMISRADIUSI, &
XEMISRADIUSJ
! for using the dry deposition scheme
! in the box model we need to use some MesoNH
! variables
USE MODD_CH_JVALUES_n
USE MODN_CH_SOLVER_n
!------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
! -----------------
IMPLICIT NONE
CHARACTER*(*), INTENT(IN) :: HNAMELISTFILE ! name of namelist input file

WAUTELET Philippe
committed
INTEGER :: ILU ! unit number for IO
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
NAMELIST /NAM_CH_MODEL0D/ XTBEGIN, XTEND, XDTACT, &
XDTOUT, XDTDIAG, &
CRUNID, &
CINITFILE, COUTFILE, CMETEOFILE, &
CRESULTFILE, CRESULTFORMAT, &
CDIAGFILE, CDIAGFORMAT, &
NVERB, &
LCH_TUV_ONLINE, &
CCH_TUV_LOOKUP, &
CCH_TUV_CLOUDS, &
XCH_TUV_ALBNEW, &
XCH_TUV_DOBNEW, &
XCH_TUV_TUPDATE, &
LCH_SURFACE0D, LORILAM, &
XN0IMIN, XN0JMIN, LSEDIMAERO, &
LHETEROSO4, CNUCLEATION, XINISIGI, XINISIGJ, &
XINIRADIUSI, XINIRADIUSJ, LVARSIGI,&
LVARSIGJ, XEMISSIGI, XEMISSIGJ, &
XEMISRADIUSI, XEMISRADIUSJ, CMINERAL, CORGANIC,&
XSIGIMIN, XSIGIMAX,XSIGJMIN, XSIGJMAX, &
XCOEFRADIMAX, XCOEFRADIMIN, XCOEFRADJMAX, XCOEFRADJMIN,&
CRGUNIT, CCHEM_INPUT_FILE
!
!------------------------------------------------------------------------------
!
!* 1. READ NAMELIST FILE
! -----------------------
!
CALL INIT_NAM_CH_SOLVERn
PRINT *, 'CH_INIT_MODEL0D: opening namelist file: ', HNAMELISTFILE

WAUTELET Philippe
committed
OPEN(NEWUNIT=ILU,FILE=HNAMELISTFILE,STATUS="OLD",FORM="FORMATTED")
READ(UNIT=ILU,NML=NAM_CH_MODEL0D)
READ(UNIT=ILU,NML=NAM_CH_SOLVERn)
CLOSE(UNIT=ILU)
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
! quick fix for use of the surface scheme in the box model
CCHEM_INPUT_FILE = 'CHCONTROL1.nam'
IF (NVERB >= 5) THEN
PRINT *, '==================================================================='
PRINT *, 'CH_INIT_MODEL0D: namelist NAM_CH_MODEL0D set to:'
WRITE(*,NAM_CH_MODEL0D)
PRINT *, '==================================================================='
PRINT *, 'CH_INIT_MODEL0D: namelist NAM_CH_SOLVERn set to:'
WRITE(*,NAM_CH_SOLVERn)
PRINT *, '==================================================================='
! PRINT *, 'CH_INIT_MODEL0D: namelist NAM_BLANK set to:'
! WRITE(*,NAM_BLANK)
PRINT *, '==================================================================='
PRINT *, 'RUNID:', CRUNID
PRINT *, '==================================================================='
END IF
!
!* 2. SET TIME CONTROL VARIABLES
! -------------------------------
!
! set XTSIMUL to start time
XTSIMUL = XTBEGIN
! set time for next write to disk
XTNEXTOUT = XTBEGIN + XDTOUT
! set time for next diagnostics
XTNEXTDIAG = XTBEGIN + XDTDIAG
!
!* 3. PRINT SOME INFORMATION
! ---------------------------
!
IF (NVERB >= 5) THEN
PRINT 9, "CH_INIT_MODEL0D: start of simulation at ", XTBEGIN
PRINT 9, "CH_INIT_MODEL0D: end of simulation at ", XTEND
PRINT 9, "CH_INIT_MODEL0D: the time-step is ", XDTACT
PRINT 9, "CH_INIT_MODEL0D: number of steps is ", (XTEND-XTBEGIN)/XDTACT
9 FORMAT(A,F15.0)
END IF
!
CALL UPDATE_NAM_CH_SOLVERn
!
END SUBROUTINE CH_INIT_MODEL0D