Newer
Older
!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1.
MODULE MODI_READ_FIELD
! ######################
!
INTERFACE
!
SUBROUTINE READ_FIELD(TPINIFILE,HLUOUT,KMASDEV,KIU,KJU,KKU,PTSTEP, &
HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT, &
HGETRST,HGETRGT,HGETRHT,HGETSVT,HGETSRCT,HGETSIGS,HGETCLDFR, &
HGETBL_DEPTH,HGETSBL_DEPTH,HGETPHC,HGETPHR,HUVW_ADV_SCHEME, &
HTEMP_SCHEME,KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, &
KSIZELBXTKE_ll,KSIZELBYTKE_ll, &
KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, &
PUT,PVT,PWT,PTHT,PPABST,PPABSM,PTKET,PRTKEMS, &
PSIGS,PSRCT,PCLDFR,PBL_DEPTH,PSBL_DEPTH,PWTHVMF,PPHC,PPHR, &
PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, &
PLBXUM,PLBXVM,PLBXWM,PLBXTHM,PLBXTKEM,PLBXRM,PLBXSVM, &
PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM, &
KFRC,TPDTFRC,PUFRC,PVFRC,PWFRC,PTHFRC,PRVFRC, &
PTENDTHFRC,PTENDRVFRC,PGXTHFRC,PGYTHFRC,PPGROUNDFRC,PATC, &
KADVFRC,TPDTADVFRC,PDTHFRC,PDRVFRC, &
KRELFRC,TPDTRELFRC, PTHREL, PRVREL, &
PVTH_FLUX_M,PWTH_FLUX_M,PVU_FLUX_M, &
PRUS_PRES,PRVS_PRES,PRWS_PRES,PRTHS_CLD,PRRS_CLD,PRSVS_CLD )
USE MODD_TIME ! for type DATE_TIME
!
!
TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file
CHARACTER (LEN=*), INTENT(IN) :: HLUOUT
! name for output-listing of nested models
INTEGER, INTENT(IN) :: KMASDEV
! version of the input file
INTEGER, INTENT(IN) :: KIU, KJU, KKU
! array sizes in x, y and z directions
REAL, INTENT(IN) :: PTSTEP
! current Time STEP
!
CHARACTER (LEN=*), INTENT(IN) :: HGETTKET, &
HGETRVT,HGETRCT,HGETRRT, &
HGETRIT,HGETRST,HGETRGT,HGETRHT, &
HGETCIT,HGETSRCT, &
HGETSIGS,HGETCLDFR,HGETBL_DEPTH, &
HGETSBL_DEPTH,HGETPHC,HGETPHR
CHARACTER (LEN=*), DIMENSION(:),INTENT(IN) :: HGETSVT
!
! GET indicators to know wether a given variable should or not be read in the
! FM file at time t-deltat and t
CHARACTER(LEN=6), INTENT(IN) :: HUVW_ADV_SCHEME ! advection scheme for wind
CHARACTER(LEN=4), INTENT(IN) :: HTEMP_SCHEME ! advection scheme for wind
!
! sizes of the West-east total LB area
INTEGER, INTENT(IN) :: KSIZELBX_ll,KSIZELBXU_ll ! for T,V,W and u
INTEGER, INTENT(IN) :: KSIZELBXTKE_ll ! for TKE
INTEGER, INTENT(IN) :: KSIZELBXR_ll,KSIZELBXSV_ll ! for Rx and SV
! sizes of the North-south total LB area
INTEGER, INTENT(IN) :: KSIZELBY_ll,KSIZELBYV_ll ! for T,U,W and v
INTEGER, INTENT(IN) :: KSIZELBYTKE_ll ! for TKE
INTEGER, INTENT(IN) :: KSIZELBYR_ll,KSIZELBYSV_ll ! for Rx and SV
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PUM,PVM,PWM ! U,V,W at t-dt
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDUM,PDVM,PDWM ! Difference on U,V,W
! between t+dt and t-dt
REAL, DIMENSION(:,:), INTENT(OUT) :: PBL_DEPTH ! BL depth
REAL, DIMENSION(:,:), INTENT(OUT) :: PSBL_DEPTH ! SBL depth
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PWTHVMF ! MassFlux buoyancy flux
!
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PUT,PVT,PWT ! U,V,W at t
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PTHT,PTKET ! theta, tke and
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTKEMS ! tke adv source
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPABST ! pressure at t
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPABSM ! pressure at t-1
REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRT,PSVT ! moist and scalar
! variables at t
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCT ! turbulent flux
! <s'Rc'> at t
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCIT ! ice conc. at t
REAL, INTENT(OUT) :: PDRYMASST ! Md(t)
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSIGS ! =sqrt(<s's'>) for the
! Subgrid Condensation
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCLDFR ! cloud fraction
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPHC ! pH value in cloud water
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPHR ! pH value in rainwater
! Larger Scale fields
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSUM,PLSVM,PLSWM ! Wind
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSTHM, PLSRVM ! Mass
! LB fields
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBXUM,PLBXVM,PLBXWM ! Wind
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBXTHM ! Mass
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBYUM,PLBYVM,PLBYWM ! Wind
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBYTHM ! Mass
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBXTKEM ! TKE
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBYTKEM
REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PLBXRM ,PLBXSVM ! Moisture and SV
REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PLBYRM ,PLBYSVM ! in x and y-dir.
! Forcing fields
INTEGER, INTENT(IN) :: KFRC ! number of forcing
TYPE (DATE_TIME), DIMENSION(:), INTENT(OUT) :: TPDTFRC ! date of forcing profs.
REAL, DIMENSION(:,:), INTENT(OUT) :: PUFRC,PVFRC,PWFRC ! forcing variables
REAL, DIMENSION(:,:), INTENT(OUT) :: PTHFRC,PRVFRC
REAL, DIMENSION(:,:), INTENT(OUT) :: PTENDTHFRC,PTENDRVFRC,PGXTHFRC,PGYTHFRC
REAL, DIMENSION(:), INTENT(OUT) :: PPGROUNDFRC
REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PATC
INTEGER, INTENT(IN) :: KADVFRC ! number of forcing
TYPE (DATE_TIME), DIMENSION(:), INTENT(OUT) :: TPDTADVFRC ! date of forcing profs.
REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PDTHFRC, PDRVFRC
INTEGER, INTENT(IN) :: KRELFRC ! number of forcing
TYPE (DATE_TIME), DIMENSION(:), INTENT(OUT) :: TPDTRELFRC ! date of forcing profs.
REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PTHREL, PRVREL
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PVTH_FLUX_M,PWTH_FLUX_M,PVU_FLUX_M ! Eddy fluxes
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRUS_PRES, PRVS_PRES, PRWS_PRES
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS_CLD
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS_CLD, PRSVS_CLD
!
!
END SUBROUTINE READ_FIELD
!
END INTERFACE
!
END MODULE MODI_READ_FIELD
!
! ########################################################################
SUBROUTINE READ_FIELD(TPINIFILE,HLUOUT,KMASDEV,KIU,KJU,KKU,PTSTEP, &
HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT, &
HGETRST,HGETRGT,HGETRHT,HGETSVT,HGETSRCT,HGETSIGS,HGETCLDFR, &
HGETBL_DEPTH,HGETSBL_DEPTH,HGETPHC,HGETPHR,HUVW_ADV_SCHEME, &
HTEMP_SCHEME,KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, &
KSIZELBXTKE_ll,KSIZELBYTKE_ll, &
KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, &
PUT,PVT,PWT,PTHT,PPABST,PPABSM,PTKET,PRTKEMS, &
PSIGS,PSRCT,PCLDFR,PBL_DEPTH,PSBL_DEPTH,PWTHVMF,PPHC,PPHR, &
PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, &
PLBXUM,PLBXVM,PLBXWM,PLBXTHM,PLBXTKEM,PLBXRM,PLBXSVM, &
PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM, &
KFRC,TPDTFRC,PUFRC,PVFRC,PWFRC,PTHFRC,PRVFRC, &
PTENDTHFRC,PTENDRVFRC,PGXTHFRC,PGYTHFRC,PPGROUNDFRC,PATC, &
KADVFRC,TPDTADVFRC,PDTHFRC,PDRVFRC, &
KRELFRC,TPDTRELFRC, PTHREL, PRVREL, &
PRUS_PRES,PRVS_PRES,PRWS_PRES,PRTHS_CLD,PRRS_CLD,PRSVS_CLD )
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
! ########################################################################
!
!!**** *READ_FIELD* - routine to read prognostic and surface fields
!!
!! PURPOSE
!! -------
! The purpose of this routine is to initialize prognostic and
! surface fields by reading their value in initial file or by setting
! them to a fixed value.
!
!!** METHOD
!! ------
!! According to the get indicators, the prognostics fields are :
!! - initialized by reading their value in the LFIFM file
!! if the corresponding indicators are equal to 'READ'
!! - initialized to zero if the corresponding indicators
!! are equal to 'INIT'
!! - not initialized if their corresponding indicators
!! are equal to 'SKIP'
!!
!! In case of time step change, all fields at t-dt are (linearly)
!! interpolated to get a consistant initial state before the segment
!! integration
!!
!! EXTERNAL
!! --------
!! FMREAD : to read data in LFIFM file
!! INI_LS : to initialize larger scale fields
!! INI_LB : to initialize "2D" surfacic LB fields
!!
!! IMPLICIT ARGUMENTS
!! ------------------
!! Module MODD_CONF : NVERB,CCONF,CPROGRAM
!!
!! Module MODD_CTURB : XTKEMIN
!!
!! REFERENCE
!! ---------
!! Book2 of the documentation (routine READ_FIELD)
!!
!!
!! AUTHOR
!! ------
!! V. Ducrocq * Meteo France *
!!
!! MODIFICATIONS
!! -------------
!! Original 15/06/94
!! modification 22/11/94 add the pressure function (J.Stein)
!! modification 22/11/94 add the LS fields (J.Stein)
!! modification 06/01/95 add Md(t) (J.P.Lafore)
!! 26/03/95 add EPS var (J. Cuxart)
Loading
Loading full blame...