source: trunk/libf/phytitan/sfluxv.F @ 21

Last change on this file since 21 was 3, checked in by slebonnois, 14 years ago

Creation de repertoires:

  • chantiers : pour communiquer sur nos projets de modifs
  • documentation : pour stocker les docs

Ajout de:

  • libf/phytitan : physique de Titan
  • libf/chimtitan: chimie de Titan
  • libf/phyvenus : physique de Venus
File size: 4.1 KB
Line 
1      SUBROUTINE SFLUXV(IPRINT,IG,dist_sol)
2
3      IMPLICIT NONE
4
5#include "dimensions.h"
6#include "dimphy.h"
7#include "comorbit.h"
8
9      INTEGER NLAYER,NLEVEL,NSPECV,NSPC1V
10      PARAMETER (NLAYER=llm,NLEVEL=NLAYER+1)
11      PARAMETER (NSPECV=24,NSPC1V=25)
12      INTEGER IG,IPRINT,NT,NTERM(NSPECV),J,K
13
14      REAL FUW(NLEVEL),FDW(NLEVEL)
15      REAL DT0(NLAYER),T0(NLEVEL),WB0(NLAYER),CO0(NLAYER)
16      REAL BTOP, BSURF
17      REAL ATERM(4,NSPECV),BTERM(4,NSPECV)
18      REAL PEXPON(NSPECV), SOLARF(NSPECV)
19      REAL  DTAUV(klon,NLAYER,NSPECV,4)
20     &     ,TAUV (klon,NLEVEL,NSPECV,4)
21     &     ,WBARV(klon,NLAYER,NSPECV,4)
22     &     ,COSBV(klon,NLAYER,NSPECV,4)
23      REAL BWNV(NSPC1V),WNOV(NSPECV)
24     &     ,DWNV(NSPECV),WLNV(NSPECV)
25      REAL  FNETV(klon,NLEVEL),     
26     &      FUPV(klon,NLEVEL,NSPECV),
27     &      FDV(klon,NLEVEL,NSPECV),
28     &      FMNETV(klon,NLEVEL),
29     &      FMUPV(NLEVEL),FMDV(NLEVEL)
30      REAL CSUBP,RSFI,RSFV,F0PI
31      REAL UBARI,UBARV,UBAR0
32
33      real dist_sol
34
35      COMMON /VISGAS/SOLARF,NTERM,PEXPON,
36     &         ATERM,BTERM
37
38      COMMON /OPTICV/  DTAUV
39     &                ,TAUV
40     &                ,WBARV
41     &                ,COSBV
42
43      COMMON /SPECTV/ BWNV,WNOV
44     &               ,DWNV,WLNV
45
46      COMMON /FLUXvV/ FNETV,     
47     &               FUPV,
48     &               FDV,
49     &               FMNETV
50
51      COMMON /PLANT/ CSUBP,RSFI,RSFV,F0PI
52      COMMON /UBARED/ UBARI,UBARV,UBAR0
53
54
55* ON NE FAIT PAS LE CALCUL POUR TOUS LES IG EN MEME TEMPS
56* IG EST EN ARGUMENT...et SFLUXV EST APPELLEE NGRIDMX FOIS!
57
58C ZERO THE NET FLUXES
59      DO 212 J=1,NLEVEL
60      FNETV(ig,J)=-0.
61      FMNETV(ig,J)=-0.
62  212 CONTINUE
63C
64C WE NOW ENTER A MAJOR LOOP OVER SPECRAL INTERVALS IN THE VISIBLE
65C AND OVER THE HORIZONTAL GRIDS
66C TO CALCULATE THE NET FLUX IN EACH SPECTRAL INTERVAL
67C
68C ***************************************************************
69
70
71      DO 500 K=1,NSPECV          ! #2
72C ZERO THE SPECTRAL FLUXES IN ANTCIPATION OF SUMMING OVER NTERMS
73
74       DO 214 J=1,NLEVEL         ! #3
75       FUPV(ig,J,K)=0.
76       FDV(ig,J,K)=0.
77 214   CONTINUE
78C
79C SET UP THE UPPER AND LOWER BOUNDARY CONDITIONS ON THE VISIBLE
80      F0PI=SOLARF(K)*(p_elips/dist_sol)**2.
81      BTOP=0.0
82C
83C LOOP OVER THE NTERMS BEGINING HERE
84      DO 912 NT=1,NTERM(K)
85      BSURF=0.+ RSFV*UBAR0*F0PI*EXP(-TAUV(ig,NLEVEL,K,NT)/UBAR0)
86C
87C* WE CAN NOW SOLVE FOR THE COEFFICIENTS OF THE TWO STREAM
88C  CALL A SUBROUTINE THAT SOLVES  FOR THE FLUX TERMS
89C WITHIN EACH INTERVAL AT THE MIDPOINT WAVENUMBER
90C
91C FUW AND FDW ARE WORKING FLUX ARRAYS THAT WILL BE USED TO
92C RETURN FLUXES FOR A GIVEN NT
93C
94C23456789012345678901234567890123456789012345678901234567890123456789012
95C
96C  USE DT0,T0,WB0,CO0 INSTEAD OF DTAUV(ig,1,K,NT)..etc...
97
98       DO  J=1,NLAYER       
99             DT0(J)=DTAUV(ig,J,K,NT)
100             T0(J) =TAUV(ig,J,K,NT)
101             WB0(J)=WBARV(ig,J,K,NT)
102             CO0(J)=COSBV(ig,J,K,NT)
103       ENDDO
104
105             T0(NLEVEL)=TAUV(ig,NLEVEL,K,NT)
106
107c       PRINT*,'entree gfluxv #: ',ig,K
108c        write(*,*) (DT0(J),J=1,NLAYER)
109c        print*,'---'
110c        write(*,*) (T0(J),J=1,NLEVEL)
111c        print*,'---'
112c        write(*,*) (WB0(J),J=1,NLAYER)
113c        print*,'---'
114c        write(*,*) (CO0(J),J=1,NLAYER)
115c        print*,'UBAR0 ',UBAR0
116c      print*,NLEVEL,WNOV(K),F0PI,RSFV,BTOP,BSURF
117       FUW = 0.0
118       FDW = 0.0
119       FMUPV=0.0
120       FMDV= 0.0
121       
122      CALL GFLUXV(NLEVEL,WNOV(K),DT0,T0,
123     & WB0,CO0,F0PI,RSFV,BTOP,BSURF,FUW,FDW,FMUPV,
124     &    FMDV,IPRINT)
125c       PRINT*,'sortie gfluxv #: ',ig,K
126c        print*,'UBAR0 ',UBAR0
127
128C NOW CALCULTE THE CUMULATIVE VISIBLE NET FLUX
129
130             DO 300 J=1,NLEVEL         !<------------
131      FMNETV(ig,J)=FMNETV(ig,J)+( FMUPV(J)-FMDV(J) )*ATERM(NT,K)
132      FNETV(ig,J)=FNETV(ig,J)+( FUW(J)-FDW(J) )*ATERM(NT,K)
133
134C AND THE SPECTRAL FLUXES SUMMED OVER THE NTERMS
135      FUPV(ig,J,K)=FUPV(ig,J,K)+FUW(J)*ATERM(NT,K)
136      FDV(ig,J,K)=FDV(ig,J,K)+FDW(J)*ATERM(NT,K)
137  300         CONTINUE                !<--------------
138C
139C
140  912 CONTINUE
141  500 CONTINUE
142
143C *** END OF MAJOR SPECTRAL INTERVAL LOOP IN THE VISIBLE*****
144      RETURN
145      END
Note: See TracBrowser for help on using the repository browser.