source: trunk/LMDZ.VENUS/libf/phyvenus/phytrac_emiss.F @ 1453

Last change on this file since 1453 was 1443, checked in by emillour, 10 years ago

Titan and Venus GCMs:
Follow-up to the changes in dynamics/physics interface: ener.h, logic.h, serre.h and temps.h are now modules.
EM

File size: 6.2 KB
Line 
1!
2! $Header: /home/cvsroot/LMDZ4/libf/phylmd/phytrac.F,v 1.16 2006/03/24 15:06:23 lmdzadmin Exp $
3!
4c
5c
6      SUBROUTINE phytrac_emiss (timesimu,
7     I                    debutphy,
8     I                    lafin,
9     I                    nqmax,
10     I                    nlon,
11     I                    nlev,
12     I                    pdtphys,
13     I                    paprs,
14     I                    xlat,xlon,
15     O                    tr_seri)
16
17c======================================================================
18c Auteur(s) FH
19c Objet: Moniteur general des tendances traceurs
20c
21cAA Remarques en vrac:
22cAA--------------------
23cAA 1/ le call phytrac se fait avec nqmax
24c
25c SL: Janvier 2014
26c Version developed for surface emission
27c Maybe could be used just to compute the 'source' variable from physiq
28c
29c======================================================================
30      USE ioipsl
31      USE infotrac
32      USE control_mod
33      use dimphy
34      USE comgeomphy
35      IMPLICIT none
36#include "YOMCST.h"
37#include "dimensions.h"
38#include "clesphys.h"
39#include "paramet.h"
40c======================================================================
41
42c Arguments:
43
44c   EN ENTREE:
45c   ==========
46
47      real timesimu   ! duree depuis debut simu (s)
48      logical debutphy       ! le flag de l'initialisation de la physique
49      logical lafin          ! le flag de la fin de la physique
50      integer nqmax ! nombre de traceurs auxquels on applique la physique
51      integer nlon  ! nombre de points horizontaux
52      integer nlev  ! nombre de couches verticales
53      real pdtphys  ! pas d'integration pour la physique (seconde)
54      real paprs(nlon,nlev+1)  ! pression pour chaque inter-couche (en Pa)
55      REAL xlat(nlon)       ! latitudes pour chaque point
56      REAL xlon(nlon)       ! longitudes pour chaque point
57
58c   EN ENTREE/SORTIE:
59c   =================
60
61      real tr_seri(nlon,nlev,nqmax) ! traceur 
62
63cAA ----------------------------
64cAA  VARIABLES LOCALES TRACEURS
65cAA ----------------------------
66
67C les traceurs
68
69c===================
70c it--------indice de traceur
71c k,i---------indices long, vert
72c===================
73c pour emission volcan
74      real :: deltatr(klon,klev,nqtot)
75
76      integer,parameter :: nbsrc=2,nblat=5,nblon=4
77!     integer,parameter :: Nemiss=1   ! duree emission (Ed)
78      integer,save :: Nemiss(nbsrc)      ! duration emission (Ed)
79      real,save :: source_volcan(nbsrc)  ! flux emission (kg/s)
80      real,save :: lat_volcan(nblat),lon_volcan(nblon)
81      real,save :: area_emiss(nblat,nblon)
82      integer,save :: ig_volcan(nblat,nblon)
83
84c======================================================================
85
86      INTEGER i, k, it
87      integer ilat,ilon,iemiss
88      real    deltalat,deltalon
89
90c Variables liees a l'ecriture de la bande histoire physique
91
92c Variables locales pour effectuer les appels en serie
93c----------------------------------------------------
94
95      REAL d_tr(nlon,nlev) ! tendances de traceurs
96
97      character*20 modname
98      character*80 abort_message
99
100c======================================================================
101
102      modname = 'phytrac_emiss'
103c EMISSION TRACEURS
104
105c---------
106c debutphy
107c---------
108      if (debutphy) then
109         print*,"DEBUT PHYTRAC"
110         print*,"PHYTRAC: EMISSION"
111
112c=============================================================
113c=============================================================
114c=============================================================
115c   Initialisation des traceurs
116c=============================================================
117c=============================================================
118c=============================================================
119
120C=========================================================================
121C=========================================================================
122c Caracteristiques des traceurs emis:
123
124c nombre total de traceur
125         if (nbsrc*nblat*nblon .gt. nqtot) then
126            write(*,*) "Attention, pas assez de traceurs"
127            write(*,*) "le dernier sera bien le dernier"
128         endif
129
130c source en kg/s
131         source_volcan(1) = 1.
132         source_volcan(2) = 1000.
133c duration in Ed
134         Nemiss(1) = 1
135         Nemiss(2) = 10
136c localisation volcan
137         lat_volcan(1) =  70.
138         lat_volcan(2) =  35.
139         lat_volcan(3) =   0.
140         lat_volcan(4) = -35.
141         lat_volcan(5) = -70.
142         lon_volcan(1) = -120.
143         lon_volcan(2) =  -30.
144         lon_volcan(3) =   60.
145         lon_volcan(4) =  150.
146
147         deltalat = 180./jjm
148         deltalon = 360./jjm
149         do i=1,nlon
150          do ilat=1,nblat
151           do ilon=1,nblon
152            if ((xlat(i).ge.lat_volcan(ilat))
153     &     .and.((xlat(i)-deltalat).lt.lat_volcan(ilat))
154     &     .and.(xlon(i).le.lon_volcan(ilon))
155     &     .and.((xlon(i)+deltalon).gt.lon_volcan(ilon)) ) then
156             ig_volcan(ilat,ilon)= i
157             area_emiss(ilat,ilon) = airephy(i)
158            endif
159           enddo
160          enddo
161         enddo
162
163C=========================================================================
164C=========================================================================
165
166c-------------
167c fin debutphy
168c-------------
169      ENDIF  ! fin debutphy
170
171c======================================================================
172c Emission d'un traceur pendant un certain temps
173c======================================================================
174         do i = 1,nlon
175          do iemiss = 1,nbsrc
176           do ilat  = 1,nblat
177            do ilon  = 1,nblon
178             it=(iemiss-1)*nblat*nblon+(ilat-1)*nblon+ilon
179             it=min(it,nqtot)
180             deltatr(i,1,it) = 0.
181
182             if (i .eq. ig_volcan(ilat,ilon)) then
183
184c source appliquee pendant Nemiss Ed
185               if (timesimu .lt. 86400.*Nemiss(iemiss)) then
186
187c source en kg/kg/s
188           deltatr(i,1,it) = source_volcan(iemiss)*RG
189     $     /(area_emiss(ilat,ilon)*(paprs(i,1) - paprs(i,2)))
190           tr_seri(i,1,it) = tr_seri(i,1,it) + deltatr(i,1,it)*pdtphys
191
192               end if  ! duree emission
193             end if ! i localisation
194            end do
195           end do
196          end do
197         end do
198c======================================================================
199c======================================================================
200
201      RETURN
202      END
Note: See TracBrowser for help on using the repository browser.