1 |
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 |
use dimens_m, only: llm, nqmx |
20 |
use dimphy, only: klon |
21 |
use nr_util, only: assert |
22 |
|
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 |
call assert(shape(tr_seri) == (/klon, llm, nqmx - 2/), "radiornpb tr_seri") |
32 |
call assert(size(tautr) == nqmx - 2, "radiornpb tautr") |
33 |
|
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 |