source: trunk/LMDZ.TITAN/libf/phytitan/phys_state_var_mod.F90 @ 1356

Last change on this file since 1356 was 1356, checked in by slebonnois, 10 years ago

SL: update to newstart/start2archive tools in Venus+Titan / additional diagnostics in radiative fluxes for Titan

File size: 5.8 KB
Line 
1!
2! $Id: phys_state_var_mod.F90 1670 2012-10-17 08:42:04Z idelkadi $
3!
4      MODULE phys_state_var_mod
5! Variables sauvegardees pour le startphy.nc
6!======================================================================
7!
8!
9!======================================================================
10! Declaration des variables
11      USE dimphy
12!      INTEGER, SAVE :: radpas
13!!$OMP THREADPRIVATE(radpas)
14!      REAL, SAVE :: dtime
15!!$OMP THREADPRIVATE(dtime)
16
17      REAL, ALLOCATABLE, SAVE :: ftsol(:)
18!$OMP THREADPRIVATE(ftsol)
19      REAL, ALLOCATABLE, SAVE :: ftsoil(:,:)
20!$OMP THREADPRIVATE(ftsoil)
21      REAL, ALLOCATABLE, SAVE :: falbe(:)
22!$OMP THREADPRIVATE(falbe)
23
24!clesphy0 param physiq
25!
26! Parametres de l'Orographie a l'Echelle Sous-Maille (OESM):
27!
28      REAL, ALLOCATABLE, SAVE :: zmea(:), zstd(:), zsig(:), zgam(:)
29!$OMP THREADPRIVATE(zmea, zstd, zsig, zgam)
30      REAL, ALLOCATABLE, SAVE :: zthe(:), zpic(:), zval(:)
31!$OMP THREADPRIVATE(zthe, zpic, zval)
32!     REAL tabcntr0(100)
33      REAL, ALLOCATABLE, SAVE :: rugoro(:)
34!$OMP THREADPRIVATE(rugoro)
35      REAL, ALLOCATABLE, SAVE :: t_ancien(:,:), q_ancien(:,:)
36!$OMP THREADPRIVATE(t_ancien, q_ancien)
37      REAL, ALLOCATABLE, SAVE :: u_ancien(:,:), v_ancien(:,:)
38!$OMP THREADPRIVATE(u_ancien, v_ancien)
39      LOGICAL, SAVE :: ancien_ok
40!$OMP THREADPRIVATE(ancien_ok)
41! pressure level
42      REAL,ALLOCATABLE,SAVE :: zuthe(:),zvthe(:)
43!$OMP THREADPRIVATE(zuthe,zvthe)
44!
45! heat : chauffage solaire
46! heat0: chauffage solaire ciel clair
47! cool : refroidissement infrarouge
48! cool0 : refroidissement infrarouge ciel clair
49! sollwdown : downward LW flux at surface
50! sollwdownclr : downward CS LW flux at surface
51! toplwdown : downward CS LW flux at TOA
52! toplwdownclr : downward CS LW flux at TOA
53! swnet,swdn,lwdn: + downward
54! lwnet,swup,lwup: + upward
55      REAL,ALLOCATABLE,SAVE :: swnet(:,:),swup(:,:),swdn(:,:)   
56!$OMP THREADPRIVATE(swnet,swup,swdn)
57      REAL,ALLOCATABLE,SAVE :: lwnet(:,:),lwup(:,:),lwdn(:,:)
58!$OMP THREADPRIVATE(lwnet,lwup,lwdn)
59      REAL,ALLOCATABLE,SAVE :: heat(:,:)   
60!$OMP THREADPRIVATE(heat)
61      REAL,ALLOCATABLE,SAVE :: heat0(:,:)
62!$OMP THREADPRIVATE(heat0)
63      REAL,ALLOCATABLE,SAVE :: cool(:,:)
64!$OMP THREADPRIVATE(cool)
65      REAL,ALLOCATABLE,SAVE :: cool0(:,:)
66!$OMP THREADPRIVATE(cool0)
67      REAL,ALLOCATABLE,SAVE :: dtrad(:,:)   
68!$OMP THREADPRIVATE(dtrad)
69      REAL,ALLOCATABLE,SAVE :: topsw(:), toplw(:)
70!$OMP THREADPRIVATE(topsw,toplw)
71      REAL, ALLOCATABLE, SAVE :: solsw(:), sollw(:)
72!$OMP THREADPRIVATE(solsw, sollw)
73      REAL, ALLOCATABLE, SAVE :: radsol(:)
74!$OMP THREADPRIVATE(radsol)
75      REAL,ALLOCATABLE,SAVE :: sollwdown(:)
76!$OMP THREADPRIVATE(sollwdown)
77      REAL,ALLOCATABLE,SAVE :: sollwdownclr(:)
78!$OMP THREADPRIVATE(sollwdownclr)
79      REAL,ALLOCATABLE,SAVE :: toplwdown(:)
80!$OMP THREADPRIVATE(toplwdown)
81      REAL,ALLOCATABLE,SAVE :: toplwdownclr(:)
82!$OMP THREADPRIVATE(toplwdownclr)
83      REAL,ALLOCATABLE,SAVE :: topsw0(:),toplw0(:),solsw0(:),sollw0(:)
84!$OMP THREADPRIVATE(topsw0,toplw0,solsw0,sollw0)
85      REAL,save,allocatable :: dlw(:)  ! derivee infra rouge
86      REAL,save,allocatable :: fder(:) ! Derive de flux (sensible et latente)
87!$OMP THREADPRIVATE(dlw,fder)
88
89!
90! Parametres pour le cycle du methane:
91!
92      REAL,save,allocatable :: resch4(:) ! surface reservoir CH4
93!$OMP THREADPRIVATE(resch4)
94
95CONTAINS
96
97!======================================================================
98SUBROUTINE phys_state_var_init
99use dimphy
100USE control_mod
101IMPLICIT NONE
102#include "dimsoil.h"
103
104      ALLOCATE(ftsol(klon))            ! temperature de surface
105      ALLOCATE(ftsoil(klon,nsoilmx))   ! temperature dans le sol
106      ALLOCATE(falbe(klon))            ! albedo
107
108!  Parametres de l'Orographie a l'Echelle Sous-Maille (OESM):
109!
110!zmea(:)   ! orographie moyenne
111!zstd(:)   ! deviation standard de l'OESM
112!zsig(:)   ! pente de l'OESM
113!zgam(:)   ! anisotropie de l'OESM
114!zthe(:)   ! orientation de l'OESM
115!zpic(:)   ! Maximum de l'OESM
116!zval(:)   ! Minimum de l'OESM
117!rugoro(:) ! longueur de rugosite de l'OESM
118      ALLOCATE(zmea(klon), zstd(klon), zsig(klon), zgam(klon))
119      ALLOCATE(zthe(klon), zpic(klon), zval(klon))
120      ALLOCATE(rugoro(klon))
121
122      ALLOCATE(t_ancien(klon,klev), q_ancien(klon,klev))
123      ALLOCATE(u_ancien(klon,klev), v_ancien(klon,klev))
124
125      ALLOCATE(zuthe(klon),zvthe(klon))
126!
127      ALLOCATE(swnet(klon,klev+1), lwnet(klon,klev+1))
128      ALLOCATE(swup(klon,klev+1), lwup(klon,klev+1))
129      ALLOCATE(swdn(klon,klev+1), lwdn(klon,klev+1))
130      ALLOCATE(heat(klon,klev), heat0(klon,klev))
131      ALLOCATE(cool(klon,klev), cool0(klon,klev))
132      ALLOCATE(dtrad(klon,klev))
133      ALLOCATE(topsw(klon), toplw(klon))
134      ALLOCATE(solsw(klon), sollw(klon))
135      ALLOCATE(radsol(klon))  ! bilan radiatif au sol calcule par code radiatif
136      ALLOCATE(sollwdown(klon), sollwdownclr(klon))
137      ALLOCATE(toplwdown(klon), toplwdownclr(klon))
138      ALLOCATE(topsw0(klon),toplw0(klon),solsw0(klon),sollw0(klon))
139      ALLOCATE(dlw(klon), fder(klon))
140     
141      ALLOCATE(resch4(klon))
142
143END SUBROUTINE phys_state_var_init
144
145!======================================================================
146SUBROUTINE phys_state_var_end
147use dimphy
148use control_mod
149IMPLICIT NONE
150
151      deallocate(ftsol, ftsoil, falbe)
152      deallocate(zmea, zstd, zsig, zgam)
153      deallocate(zthe, zpic, zval)
154      deallocate(rugoro, t_ancien, q_ancien)
155      deallocate(        u_ancien, v_ancien)
156      deallocate(zuthe, zvthe)
157      deallocate(swnet, lwnet)
158      deallocate(swup, lwup)
159      deallocate(swdn, lwdn)
160      deallocate(heat, heat0)
161      deallocate(cool, cool0)
162      deallocate(dtrad)
163      deallocate(solsw, sollw, radsol)
164      deallocate(topsw, toplw)
165      deallocate(sollwdown, sollwdownclr)
166      deallocate(toplwdown, toplwdownclr)
167      deallocate(topsw0,toplw0,solsw0,sollw0)
168      deallocate(dlw, fder)
169
170      deallocate(resch4)
171
172END SUBROUTINE phys_state_var_end
173
174      END MODULE phys_state_var_mod
Note: See TracBrowser for help on using the repository browser.