source: trunk/WRF.COMMON/INTERFACES/dynphy_wrf_titan_lmd/variables_mod.F @ 3404

Last change on this file since 3404 was 2743, checked in by aslmd, 2 years ago

made the vertical discretization for Titan LES similar to that of Mars (simple linear law for znw and refinement close to the surface). no more need to prepare a file levels, just put ztop and number of levels in namelist. a file levels is saved at the end of the znw computation so that it can be read in update_inputs_physiq_mod in the case of Titan.

added MESOSCALE precompiling flags in call_profilgases to set constant methane abundance. therefore no need for profile.def file and the number of vertical levels is set by namelist -- no need to set the same number in both levels and profile.def

outputing ustar from vdifc

ending hardcoding of ptop in update_inputs_physiq_mod for Titan and generic LES/mesoscale. streamlining grod%ptop through module_lmd_driver as ptopwrf within variables_mod module.

adding flux outputs to check surface and atmosphere energy budgets

File size: 3.7 KB
Line 
1MODULE variables_mod
2
3IMPLICIT NONE
4
5REAL*8 :: JD_cur !pday !JD_cur ! Julian day
6REAL*8 :: JH_cur_split !ptime !JH_cur_split ! Julian hour (fraction of day)
7REAL*8 :: zdt_split !ptimestep !zdt_split ! time step over which the physics are evaluated
8REAL*8 :: phour_ini ! start time (fraction of day) of the run 0=<phour_ini<1
9REAL*8 :: ptopwrf ! pressure at top of model in WRF [should be equal to grid%p_top]
10REAL*8,DIMENSION(:,:),ALLOCATABLE :: zplev_omp !pplev !zplev_omp(klon,llm+1) ! interlayer pressure (Pa)
11REAL*8,DIMENSION(:,:),ALLOCATABLE :: zplay_omp !pplay !zplay_omp(klon,llm) ! mid-layer pressure (Pa)
12REAL*8,DIMENSION(:,:),ALLOCATABLE :: zpk_omp!(klon,llm)
13REAL*8,DIMENSION(:,:),ALLOCATABLE :: zphi_omp !pphi !zphi_omp(klon,llm) ! geopotential at midlayer
14REAL*8,DIMENSION(:),ALLOCATABLE :: zphis_omp!(klon) ! surface geopotential
15REAL*8,DIMENSION(:,:),ALLOCATABLE :: zufi_omp !pu !zufi_omp(klon,llm) ! zonal wind (m/s)
16REAL*8,DIMENSION(:,:),ALLOCATABLE :: zvfi_omp !pv !zvfi_omp(klon,llm) ! meridional wind (m/s)
17REAL*8,DIMENSION(:,:),ALLOCATABLE :: zrfi_omp!(klon,llm) ! relative wind vorticity, in s-1
18REAL*8,DIMENSION(:,:),ALLOCATABLE :: ztfi_omp !pt !ztfi_omp(klon,llm) ! temperature (K)
19REAL*8,DIMENSION(:,:,:),ALLOCATABLE :: zqfi_omp !pq !zqfi_omp(klon,llm,nqtot) ! tracers (*/kg of air)
20REAL*8,DIMENSION(:,:),ALLOCATABLE :: flxwfi_omp !flxw !flxwfi_omp(klon,llm) ! Vertical mass flux on lower mesh interfaces (kg/s)
21! tendencies (in */s) from the physics:
22REAL*8,DIMENSION(:,:),ALLOCATABLE :: zdufi_omp !pdu !zdufi_omp(klon,llm) ! tendency on zonal winds
23REAL*8,DIMENSION(:,:),ALLOCATABLE :: zdvfi_omp !pdv !zdvfi_omp(klon,llm) ! tendency on meridional winds
24REAL*8,DIMENSION(:,:),ALLOCATABLE :: zdtfi_omp !pdt !zdtfi_omp(klon,llm) ! tendency on temperature
25REAL*8,DIMENSION(:,:,:),ALLOCATABLE :: zdqfi_omp !pdq !zdqfi_omp(klon,llm,nqtot) ! tendency on tracers
26REAL*8,DIMENSION(:),ALLOCATABLE :: zdpsrf_omp !pdpsrf !zdpsrf_omp(klon) ! tendency on surface pressure
27
28CONTAINS
29
30SUBROUTINE allocate_interface(klon,llm,nqtot)
31
32  IMPLICIT NONE
33 
34  INTEGER,INTENT(IN) :: klon ! (local) number of atmospheric columns
35  INTEGER,INTENT(IN) :: llm  ! number of atmospheric layers
36  INTEGER,INTENT(IN) :: nqtot ! number of tracers
37 
38  IF (.NOT.ALLOCATED(zplev_omp)) ALLOCATE(zplev_omp(klon,llm+1))
39  IF (.NOT.ALLOCATED(zplay_omp)) ALLOCATE(zplay_omp(klon,llm))
40  IF (.NOT.ALLOCATED(zpk_omp)) ALLOCATE(zpk_omp(klon,llm))
41  IF (.NOT.ALLOCATED(zphi_omp)) ALLOCATE(zphi_omp(klon,llm))
42  IF (.NOT.ALLOCATED(zphis_omp)) ALLOCATE(zphis_omp(klon))
43  IF (.NOT.ALLOCATED(zufi_omp)) ALLOCATE(zufi_omp(klon,llm))
44  IF (.NOT.ALLOCATED(zvfi_omp)) ALLOCATE(zvfi_omp(klon,llm))
45  IF (.NOT.ALLOCATED(zrfi_omp)) ALLOCATE(zrfi_omp(klon,llm))
46  IF (.NOT.ALLOCATED(ztfi_omp)) ALLOCATE(ztfi_omp(klon,llm))
47  IF (.NOT.ALLOCATED(zqfi_omp)) ALLOCATE(zqfi_omp(klon,llm,nqtot))
48  IF (.NOT.ALLOCATED(flxwfi_omp)) ALLOCATE(flxwfi_omp(klon,llm))
49  IF (.NOT.ALLOCATED(zdufi_omp)) ALLOCATE(zdufi_omp(klon,llm))
50  IF (.NOT.ALLOCATED(zdvfi_omp)) ALLOCATE(zdvfi_omp(klon,llm))
51  IF (.NOT.ALLOCATED(zdtfi_omp)) ALLOCATE(zdtfi_omp(klon,llm))
52  IF (.NOT.ALLOCATED(zdqfi_omp)) ALLOCATE(zdqfi_omp(klon,llm,nqtot))
53  IF (.NOT.ALLOCATED(zdpsrf_omp)) ALLOCATE(zdpsrf_omp(klon))
54
55END SUBROUTINE allocate_interface
56
57SUBROUTINE deallocate_interface
58
59  DEALLOCATE(zplev_omp)
60  DEALLOCATE(zplay_omp)
61  DEALLOCATE(zpk_omp)
62  DEALLOCATE(zphi_omp)
63  DEALLOCATE(zphis_omp)
64  DEALLOCATE(zufi_omp)
65  DEALLOCATE(zvfi_omp)
66  DEALLOCATE(zrfi_omp)
67  DEALLOCATE(ztfi_omp)
68  DEALLOCATE(zqfi_omp)
69  DEALLOCATE(flxwfi_omp)
70  DEALLOCATE(zdufi_omp)
71  DEALLOCATE(zdvfi_omp)
72  DEALLOCATE(zdtfi_omp)
73  DEALLOCATE(zdqfi_omp)
74  DEALLOCATE(zdpsrf_omp)
75
76END SUBROUTINE deallocate_interface
77
78END MODULE variables_mod
Note: See TracBrowser for help on using the repository browser.