source: trunk/LMDZ.VENUS/libf/phyvenus/phys_state_var_mod.F90 @ 1121

Last change on this file since 1121 was 973, checked in by slebonnois, 12 years ago

EM+SL: bug corrections in Venus physics

File size: 5.4 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      REAL,ALLOCATABLE,SAVE :: swnet(:,:)   
54!$OMP THREADPRIVATE(swnet)
55      REAL,ALLOCATABLE,SAVE :: lwnet(:,:)   
56!$OMP THREADPRIVATE(lwnet)
57      REAL,ALLOCATABLE,SAVE :: heat(:,:)   
58!$OMP THREADPRIVATE(heat)
59      REAL,ALLOCATABLE,SAVE :: heat0(:,:)
60!$OMP THREADPRIVATE(heat0)
61      REAL,ALLOCATABLE,SAVE :: cool(:,:)
62!$OMP THREADPRIVATE(cool)
63      REAL,ALLOCATABLE,SAVE :: cool0(:,:)
64!$OMP THREADPRIVATE(cool0)
65      REAL,ALLOCATABLE,SAVE :: dtrad(:,:)   
66!$OMP THREADPRIVATE(dtrad)
67      REAL,ALLOCATABLE,SAVE :: topsw(:), toplw(:)
68!$OMP THREADPRIVATE(topsw,toplw)
69      REAL, ALLOCATABLE, SAVE :: solsw(:), sollw(:)
70!$OMP THREADPRIVATE(solsw, sollw)
71      REAL, ALLOCATABLE, SAVE :: radsol(:)
72!$OMP THREADPRIVATE(radsol)
73      REAL,ALLOCATABLE,SAVE :: sollwdown(:)
74!$OMP THREADPRIVATE(sollwdown)
75      REAL,ALLOCATABLE,SAVE :: sollwdownclr(:)
76!$OMP THREADPRIVATE(sollwdownclr)
77      REAL,ALLOCATABLE,SAVE :: toplwdown(:)
78!$OMP THREADPRIVATE(toplwdown)
79      REAL,ALLOCATABLE,SAVE :: toplwdownclr(:)
80!$OMP THREADPRIVATE(toplwdownclr)
81      REAL,ALLOCATABLE,SAVE :: topsw0(:),toplw0(:),solsw0(:),sollw0(:)
82!$OMP THREADPRIVATE(topsw0,toplw0,solsw0,sollw0)
83      REAL,save,allocatable :: dlw(:)  ! derivee infra rouge
84      REAL,save,allocatable :: fder(:) ! Derive de flux (sensible et latente)
85!$OMP THREADPRIVATE(dlw,fder)
86
87CONTAINS
88
89!======================================================================
90SUBROUTINE phys_state_var_init
91use dimphy
92USE control_mod
93IMPLICIT NONE
94#include "dimsoil.h"
95
96      ALLOCATE(ftsol(klon))            ! temperature de surface
97      ALLOCATE(ftsoil(klon,nsoilmx))   ! temperature dans le sol
98      ALLOCATE(falbe(klon))            ! albedo
99
100!  Parametres de l'Orographie a l'Echelle Sous-Maille (OESM):
101!
102!zmea(:)   ! orographie moyenne
103!zstd(:)   ! deviation standard de l'OESM
104!zsig(:)   ! pente de l'OESM
105!zgam(:)   ! anisotropie de l'OESM
106!zthe(:)   ! orientation de l'OESM
107!zpic(:)   ! Maximum de l'OESM
108!zval(:)   ! Minimum de l'OESM
109!rugoro(:) ! longueur de rugosite de l'OESM
110      ALLOCATE(zmea(klon), zstd(klon), zsig(klon), zgam(klon))
111      ALLOCATE(zthe(klon), zpic(klon), zval(klon))
112      ALLOCATE(rugoro(klon))
113
114      ALLOCATE(t_ancien(klon,klev), q_ancien(klon,klev))
115      ALLOCATE(u_ancien(klon,klev), v_ancien(klon,klev))
116
117      ALLOCATE(zuthe(klon),zvthe(klon))
118!
119      ALLOCATE(swnet(klon,klev+1), lwnet(klon,klev+1))
120      ALLOCATE(heat(klon,klev), heat0(klon,klev))
121      ALLOCATE(cool(klon,klev), cool0(klon,klev))
122      ALLOCATE(dtrad(klon,klev))
123      ALLOCATE(topsw(klon), toplw(klon))
124      ALLOCATE(solsw(klon), sollw(klon))
125      ALLOCATE(radsol(klon))  ! bilan radiatif au sol calcule par code radiatif
126      ALLOCATE(sollwdown(klon), sollwdownclr(klon))
127      ALLOCATE(toplwdown(klon), toplwdownclr(klon))
128      ALLOCATE(topsw0(klon),toplw0(klon),solsw0(klon),sollw0(klon))
129      ALLOCATE(dlw(klon), fder(klon))
130     
131END SUBROUTINE phys_state_var_init
132
133!======================================================================
134SUBROUTINE phys_state_var_end
135use dimphy
136use control_mod
137IMPLICIT NONE
138
139      deallocate(ftsol, ftsoil, falbe)
140      deallocate(zmea, zstd, zsig, zgam)
141      deallocate(zthe, zpic, zval)
142      deallocate(rugoro, t_ancien, q_ancien)
143      deallocate(        u_ancien, v_ancien)
144      deallocate(zuthe, zvthe)
145      deallocate(swnet, lwnet)
146      deallocate(heat, heat0)
147      deallocate(cool, cool0)
148      deallocate(dtrad)
149      deallocate(solsw, sollw, radsol)
150      deallocate(topsw, toplw)
151      deallocate(sollwdown, sollwdownclr)
152      deallocate(toplwdown, toplwdownclr)
153      deallocate(topsw0,toplw0,solsw0,sollw0)
154      deallocate(dlw, fder)
155
156END SUBROUTINE phys_state_var_end
157
158      END MODULE phys_state_var_mod
Note: See TracBrowser for help on using the repository browser.