1 |
! |
module initrrnpb_m |
2 |
! $Header: /home/cvsroot/LMDZ4/libf/phylmd/initrrnpb.F,v 1.2 2004/06/22 11:45:33 lmdzadmin Exp $ |
|
3 |
! |
IMPLICIT NONE |
4 |
SUBROUTINE initrrnpb(ftsol,pctsrf,masktr,fshtr,hsoltr,tautr |
|
5 |
. ,vdeptr,scavtr) |
contains |
6 |
use dimens_m |
|
7 |
use indicesol |
SUBROUTINE initrrnpb(pctsrf, masktr, fshtr, hsoltr, tautr, vdeptr, scavtr) |
8 |
use dimphy |
|
9 |
IMPLICIT none |
! From LMDZ4/libf/phylmd/initrrnpb.F, version 1.2 2004/06/22 11:45:33 |
10 |
c====================================================================== |
|
11 |
c Auteur(s): AA + CG (LGGE/CNRS) Date 24-06-94 |
! Authors: AA + CG (LGGE/CNRS) Date June 24th, 1994 |
12 |
c Objet: initialisation des constantes des traceurs |
! Objet : initialisation des constantes des traceurs |
13 |
CAA Revison pour le controle avec la temperature du sol |
|
14 |
cAA |
use dimens_m, only: nqmx |
15 |
CAA it = 1 radon ss controle de ts |
USE dimphy, ONLY: klon |
16 |
cAA it = 2 plomb ss controle de ts |
USE indicesol, ONLY: nbsrf |
17 |
c====================================================================== |
use nr_util, only: assert |
18 |
c Arguments: |
|
19 |
c nbtr------input-I- nombre de vrais traceurs (sans l'eau) |
REAL, intent(in):: pctsrf(klon, nbsrf) |
20 |
c ftsol-------input-R- Temperature du sol (Kelvin) |
! pourcentage de sol (f(nature du sol)) |
21 |
c pctsrf-----input-R- Nature de sol (pourcentage de sol) |
! Nature de sol (pourcentage de sol) |
22 |
c masktr---output-R- Masque reservoir de sol traceur (1 = reservoir) |
|
23 |
c fshtr----output-R- Flux surfacique de production dans le sol |
REAL masktr(klon, nqmx - 2) ! Masque de l'echange avec la surface |
24 |
c hsoltr---output-R- Epaisseur du reservoir de sol |
! (possible => 1) |
25 |
c tautr----output-R- Constante de decroissance du traceur |
! masktr---output-R- Masque reservoir de sol traceur (1 = reservoir) |
26 |
c vdeptr---output-R- Vitesse de depot sec dans la couche Brownienne |
REAL fshtr(klon, nqmx - 2) ! Flux surfacique dans le reservoir de sol |
27 |
c scavtr---output-R- Coefficient de lessivage |
! fshtr----output-R- Flux surfacique de production dans le sol |
28 |
c====================================================================== |
REAL hsoltr(nqmx - 2) ! Epaisseur equivalente du reservoir de sol |
29 |
c====================================================================== |
! hsoltr---output-R- Epaisseur du reservoir de sol |
30 |
C |
REAL tautr(nqmx - 2) ! Constante de decroissance radioactive |
31 |
INTEGER i, it |
! tautr----output-R- Constante de decroissance du traceur |
32 |
REAL pctsrf(klon,nbsrf) !Pourcentage de sol (f(nature du sol)) |
REAL vdeptr(nqmx - 2) ! Vitesse de depot sec dans la couche Brownienne |
33 |
REAL ftsol(klon,nbsrf) ! Temperature du sol pour le controle Rn |
! vdeptr---output-R- Vitesse de depot sec dans la couche Brownienne |
34 |
c ! le cas echeant |
REAL scavtr(nqmx - 2) ! Coefficient de lessivage |
35 |
REAL masktr(klon,nbtr) ! Masque de l'echange avec la surface |
! scavtr---output-R- Coefficient de lessivage |
36 |
c (possible => 1 ) |
|
37 |
REAL fshtr(klon,nbtr) ! Flux surfacique dans le reservoir de sol |
! Local: |
38 |
REAL hsoltr(nbtr) ! Epaisseur equivalente du reservoir de sol |
|
39 |
REAL tautr(nbtr) ! Constante de decroissance radioactive |
INTEGER i, it |
40 |
REAL vdeptr(nbtr) ! Vitesse de depot sec dans la couche Brownienne |
! it = 1 radon ss controle de ts |
41 |
REAL scavtr(nbtr) ! Coefficient de lessivage |
! it = 2 plomb ss controle de ts |
42 |
REAL s |
REAL s |
43 |
C |
|
44 |
print *, "Call sequence information: initrrnpb" |
!------------------------------------------------------------- |
45 |
print*,'nbtr= ',nbtr |
|
46 |
print*,'nbsrf= ',nbsrf |
PRINT *, 'Call sequence information: initrrnpb' |
47 |
print*,'klon= ',klon |
call assert(nqmx >= 4, 'initrrnpb') |
48 |
C |
|
49 |
C Puis les initialisation specifiques a chaque traceur (pour le moment, Rn222) |
! Initialisations spécifiques à chaque traceur (pour le moment, Rn222) |
50 |
C |
|
51 |
C |
! Radon |
52 |
C Radon it = 1 |
|
53 |
c |
it = 1 |
54 |
IF ( nbtr .LE. 0 ) STOP 'initrrnpb pas glop pas glop' |
s = 1.E4 ! Source: atome par m2 |
55 |
it = 1 |
|
56 |
s = 1.E4 ! Source: atome par m2 |
hsoltr(it) = 0.1 |
57 |
hsoltr(it) = 0.1 ! Hauteur equivalente du reservoir : |
! Hauteur equivalente du reservoir : |
58 |
c 1 m * porosite 0.1 |
! 1 m * porosite 0.1 |
59 |
tautr(it) = 4.765E5 ! Decroissance du radon, secondes |
|
60 |
cAA |
tautr(it) = 4.765E5 ! Decroissance du radon, secondes |
61 |
c tautr(it) = 4.765E55 ! Decroissance du radon,infinie |
vdeptr(it) = 0. ! Pas de depot sec pour le radon |
62 |
cAA |
scavtr(it) = 0. ! Pas de lessivage pour le radon |
63 |
vdeptr(it) = 0. ! Pas de depot sec pour le radon |
|
64 |
scavtr(it) = 0. ! Pas de lessivage pour le radon |
PRINT *, '-------------- SOURCE DU RADON ------------------------ ' |
65 |
|
PRINT *, 'it = ', it |
66 |
print*, '-------------- SOURCE DU RADON ------------------------ ' |
PRINT *, 'Source : ', s |
67 |
print*,'it = ',it |
PRINT *, 'Hauteur equivalente du reservoir de sol: ', hsoltr(it) |
68 |
print*,'Source : ', s |
PRINT *, 'Decroissance (s): ', tautr(it) |
69 |
print*,'Hauteur equivalente du reservoir de sol: ',hsoltr(it) |
PRINT *, 'Vitesse de depot sec: ', vdeptr(it) |
70 |
print*,'Decroissance (s): ', tautr(it) |
PRINT *, 'Facteur de lessivage: ', scavtr(it) |
71 |
print*,'Vitesse de depot sec: ',vdeptr(it) |
|
72 |
print*,'Facteur de lessivage: ',scavtr(it) |
DO i = 1, klon |
73 |
|
masktr(i, it) = 0. |
74 |
DO i = 1,klon |
IF (nint(pctsrf(i, 1))==1) masktr(i, it) = 1. |
75 |
masktr(i,it) = 0. |
fshtr(i, it) = s*masktr(i, it) |
76 |
IF ( NINT(pctsrf(i,1)) .EQ. 1 ) masktr(i,it) = 1. |
|
77 |
fshtr(i,it) = s * masktr(i,it) |
! Pour l'instant le pctsrf(i, 3) = 1. |
78 |
|
! lorsqu'il y a de la terre mais ne prend aucune autre valeur |
79 |
cAA |
! il n'est donc pas nécessaire de multiplier fshtr par pctsrf |
80 |
cAA POur l'instant le pctsrf(i,3) = 1.0 |
END DO |
81 |
cAA lorsqu'il ya de la terre mias ne prend aucune autre valeur |
|
82 |
cAA il n'est donc pas necessaire de multiplier fshtr par pctsrf |
! Pb210 |
83 |
cAA |
|
84 |
|
it = 2 |
85 |
END DO |
s = 0. ! pas de source |
86 |
C |
|
87 |
C 210Pb it = 2 |
hsoltr(it) = 10. |
88 |
C |
! hauteur équivalente du réservoir à partir duquel le dépôt |
89 |
IF ( nbtr .LE. 1 ) STOP 'initrrnpb pas glop pas glop' |
! Brownien a lieu |
90 |
it = 2 |
|
91 |
s = 0. ! Pas de source !!! |
tautr(it) = 1.028E9 ! Decroissance du Pb210, secondes |
92 |
hsoltr(it) = 10. ! Hauteur equivalente du reservoir |
vdeptr(it) = 1.E-3 ! 1 mm/s pour le 210Pb |
93 |
c a partir duquel le |
scavtr(it) = .5 ! Lessivage du Pb210 |
94 |
c depot Brownien a lieu |
DO i = 1, klon |
95 |
tautr(it) = 1.028E9 ! Decroissance du Pb210, secondes |
masktr(i, it) = 1. ! Le depot sec peut avoir lieu partout |
96 |
vdeptr(it) = 1.E-3 ! 1 mm/s pour le 210Pb |
fshtr(i, it) = s*masktr(i, it) |
97 |
scavtr(it) = .5 ! Lessivage du Pb210 |
END DO |
98 |
DO i = 1,klon |
PRINT *, '-------------- SOURCE DU PLOMB ------------------------ ' |
99 |
masktr(i,it) = 1. ! Le depot sec peut avoir lieu partout |
PRINT *, 'it = ', it |
100 |
fshtr(i,it) = s * masktr(i,it) |
PRINT *, 'Source : ', s |
101 |
END DO |
PRINT *, 'Hauteur equivalente du reservoir : ', hsoltr(it) |
102 |
print*, '-------------- SOURCE DU PLOMB ------------------------ ' |
PRINT *, 'Decroissance (s): ', tautr(it) |
103 |
print*,'it = ',it |
PRINT *, 'Vitesse de depot sec: ', vdeptr(it) |
104 |
print*,'Source : ', s |
PRINT *, 'Facteur de lessivage: ', scavtr(it) |
105 |
print*,'Hauteur equivalente du reservoir : ',hsoltr(it) |
|
106 |
print*,'Decroissance (s): ', tautr(it) |
END SUBROUTINE initrrnpb |
107 |
print*,'Vitesse de depot sec: ',vdeptr(it) |
|
108 |
print*,'Facteur de lessivage: ',scavtr(it) |
end module initrrnpb_m |
|
c |
|
|
WRITE(*,*) 'initialisation rnpb ok' |
|
|
c |
|
|
RETURN |
|
|
END |
|