/[lmdze]/trunk/phylmd/radiornpb.f
ViewVC logotype

Contents of /trunk/phylmd/radiornpb.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 266 - (show annotations)
Thu Apr 19 17:54:55 2018 UTC (6 years ago) by guez
File size: 1378 byte(s)
Define macros of the preprocessor CPP_IIM, CPP_JJM, CPP_LLM so we can
control the resolution from the compilation command, and automate
compilation for several resolutions.

In module yoethf_m, transform variables into named constants. So we do
not need procedure yoethf any longer.

Bug fix in program test_inter_barxy, missing calls to fyhyp and fxhyp,
and definition of rlatu.

Remove variable iecri of module conf_gcm_m. The files dyn_hist*.nc are
written every time step. We are simplifying the output system, pending
replacement by a whole new system.

Modify possible value of vert_sampling from "param" to
"strato_custom", following LMDZ. Default values of corresponding
namelist variables are now the values used for LMDZ CMIP6.

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, version 1.2, 2005/05/25 13:10:09
10
11 ! Auteurs : AA + Christophe Genthon (LGGE/CNRS)
12 ! Date: June 1994
13 ! Objet: d\'ecroissance radioactive d'un traceur dans l'atmosph\`ere
14
15 ! Pour un traceur, le radon. Plus un deuxi\`eme traceur, le 210
16 ! Pb. Le radon d\'ecro\^it en plomb. Le pas de temps "pdtphys" est
17 ! suppos\'e beaucoup plus petit que la constante de temps de
18 ! d\'ecroissance.
19
20 use dimensions, only: llm, nqmx
21 use dimphy, only: klon
22 use nr_util, only: assert
23
24 REAL, intent(in):: tr_seri(:, :, :) ! (klon, llm, nqmx - 2)
25 REAL, intent(in):: pdtphys
26 REAL, intent(in):: tautr(:) ! (nqmx - 2)
27 real radiornpb(klon, llm, 2)
28
29 ! Local:
30 INTEGER it
31
32 !-----------------------------------------------
33
34 call assert(shape(tr_seri) == [klon, llm, nqmx - 2], "radiornpb tr_seri")
35 call assert(size(tautr) == nqmx - 2, "radiornpb tautr")
36
37 DO it = 1, 2
38 IF (tautr(it) > 0.) THEN
39 radiornpb(:, :, it) = - tr_seri(:, :, it) * pdtphys / tautr(it)
40 ELSE
41 radiornpb(:, :, it) = 0.
42 END IF
43 END DO
44
45 ! Cas particulier radon 1 => plomb 2
46 radiornpb(:, :, 2) = radiornpb(:, :, 2) - radiornpb(:, :, 1)
47
48 END function radiornpb
49
50 end module radiornpb_m

  ViewVC Help
Powered by ViewVC 1.1.21