1 |
guez |
17 |
module radiornpb_m |
2 |
|
|
|
3 |
|
|
IMPLICIT none |
4 |
|
|
|
5 |
|
|
contains |
6 |
|
|
|
7 |
|
|
function radiornpb(tr_seri, pdtphys, tautr) |
8 |
|
|
|
9 |
|
|
! From phylmd/radiornpb.F, v 1.2 2005/05/25 13:10:09 |
10 |
|
|
|
11 |
|
|
! Auteurs: AA + CG (LGGE/CNRS) Date 24-06-94 |
12 |
|
|
! Objet: Decroissance radioactive d'un traceur dans l'atmosphere |
13 |
|
|
!G 24 06 94 : Pour un traceur, le radon |
14 |
|
|
!G 16 12 94 : Plus un 2eme traceur, le 210Pb. Le radon decroit en plomb. |
15 |
|
|
|
16 |
|
|
! Le pas de temps "pdtphys" est supposé beaucoup plus petit que la |
17 |
|
|
! constante de temps de décroissance. |
18 |
|
|
|
19 |
guez |
98 |
use dimens_m, only: llm, nqmx |
20 |
|
|
use dimphy, only: klon |
21 |
guez |
36 |
use nr_util, only: assert |
22 |
guez |
17 |
|
23 |
|
|
REAL, intent(in):: tr_seri(:, :, :), pdtphys, tautr(:) |
24 |
|
|
real radiornpb(klon, llm, 2) |
25 |
|
|
|
26 |
|
|
! Variable local to the procedure: |
27 |
|
|
INTEGER it |
28 |
|
|
|
29 |
|
|
!----------------------------------------------- |
30 |
|
|
|
31 |
guez |
98 |
call assert(shape(tr_seri) == (/klon, llm, nqmx - 2/), "radiornpb tr_seri") |
32 |
|
|
call assert(size(tautr) == nqmx - 2, "radiornpb tautr") |
33 |
guez |
17 |
|
34 |
|
|
DO it = 1, 2 |
35 |
|
|
IF (tautr(it) > 0.) THEN |
36 |
|
|
radiornpb(:, :, it) = - tr_seri(:, :, it) * pdtphys / tautr(it) |
37 |
|
|
ELSE |
38 |
|
|
radiornpb(:, :, it) = 0. |
39 |
|
|
END IF |
40 |
|
|
END DO |
41 |
|
|
|
42 |
|
|
!G161294 : Cas particulier radon 1 => plomb 2 |
43 |
|
|
radiornpb(:, :, 2) = radiornpb(:, :, 2) - radiornpb(:, :, 1) |
44 |
|
|
|
45 |
|
|
END function radiornpb |
46 |
|
|
|
47 |
|
|
end module radiornpb_m |