/[lmdze]/trunk/dyn3d/infotrac_init.f90
ViewVC logotype

Contents of /trunk/dyn3d/infotrac_init.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 328 - (show annotations)
Thu Jun 13 14:40:06 2019 UTC (4 years, 11 months ago) by guez
File size: 2871 byte(s)
Change all `.f` suffixes to `.f90`. (The opposite was done in revision
82.)  Because of change of philosopy in GNUmakefile: we already had a
rewritten rule for `.f`, so it does not make the makefile longer to
replace it by a rule for `.f90`. And it spares us options of
makedepf90 and of the compiler. Also we prepare the way for a simpler
`CMakeLists.txt`.

1 module infotrac_init_m
2
3 ! From advtrac.h, version 1.1.1.1 2004/05/19 12:53:06
4
5 ! iq = 1 pour l'eau vapeur
6 ! iq = 2 pour l'eau liquide
7 ! et \'eventuellement iq = 3, ..., nqmx pour les autres traceurs
8
9 use dimensions, only: nqmx
10
11 implicit none
12
13 private nqmx
14
15 INTEGER, protected:: iadv(nqmx)
16 ! indice du sch\'ema d'advection pour l'eau et les traceurs
17
18 character(len = 10), protected:: tname(nqmx)
19 ! nom du traceur pour fichiers restart et historiques
20
21 character(len = 13), protected:: ttext(nqmx)
22 ! nom long du traceur pour sorties
23
24 contains
25
26 subroutine infotrac_init
27
28 ! From dyn3d/iniadvtrac.F, version 1.3 2005/04/13 08:58:34
29
30 ! Authors: P. Le Van, L. Fairhead, F. Hourdin, F. Codron,
31 ! F. Forget, M.-A. Filiberti
32
33 ! Initialisation des traceurs
34 ! Choix du sch\'ema pour l'advection dans le fichier "traceur.def"
35
36 use nr_util, only: assert
37 use jumble, only: new_unit
38
39 ! Local:
40 character(len = 3) descrq(0:14)
41 integer iq, iostat, nq_local, unit
42
43 integer, parameter:: allowed_adv(5) = (/0, 10, 12, 13, 14/)
44 ! Allowed values for iadv:
45 ! 10: schema Van-leer (retenu pour l'eau vapeur et liquide)
46 ! 12: schema Frederic Hourdin I
47 ! 13: schema Frederic Hourdin II
48 ! 14: schema Van-leer + humidite specifique
49
50 !-----------------------------------------------------------------------
51
52 print *, "Call sequence information: infotrac_init"
53
54 ! Initializations:
55 descrq(0) = ''
56 descrq(10) = 'VL1'
57 descrq(12) = 'FH1'
58 descrq(13) = 'FH2'
59 descrq(14) = 'VLH'
60
61 ! Choix du sch\'ema pour l'advection dans fichier "traceur.def"
62 call new_unit(unit)
63 open(unit, file = 'traceur.def', status = 'old', action = "read", &
64 position = "rewind", iostat = iostat)
65 if (iostat == 0) then
66 print *, 'Ouverture de "traceur.def" ok'
67 read(unit, fmt = *) nq_local
68 print *, 'nombre de traceurs ', nq_local
69 call assert(nq_local == nqmx, "infotrac_init nq_local")
70
71 do iq = 1, nqmx
72 read(unit, fmt = *) iadv(iq), tname(iq)
73 if (.not. any(iadv(iq) == allowed_adv)) then
74 print *, "bad number for advection scheme"
75 stop 1
76 end if
77 end do
78 close(unit)
79 else
80 print *, 'Could not open "traceur.def".'
81 print *, 'Using default values.'
82 call assert(nqmx == 4, "infotrac_init nqmx")
83 iadv(:4) = (/14, 10, 10, 10/)
84 tname(1) = 'H2Ov'
85 tname(2) = 'H2Ol'
86 tname(3) = 'RN'
87 tname(4) = 'PB'
88 do iq = 1, nqmx
89 print *, iadv(iq), tname(iq)
90 end do
91 ENDIF
92
93 ! \`A partir du nom court du traceur et du sch\'ema d'advection, on
94 ! d\'etermine le nom long :
95 do iq = 1, nqmx
96 ttext(iq) = trim(tname(iq)) // descrq(iadv(iq))
97 end do
98
99 END subroutine infotrac_init
100
101 end module infotrac_init_m

  ViewVC Help
Powered by ViewVC 1.1.21