/[lmdze]/trunk/dyn3d/iniadvtrac.f
ViewVC logotype

Diff of /trunk/dyn3d/iniadvtrac.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 76 by guez, Fri Nov 15 18:45:49 2013 UTC revision 78 by guez, Wed Feb 5 17:51:07 2014 UTC
# Line 4  module iniadvtrac_m Line 4  module iniadvtrac_m
4    
5    ! iq = 1 pour l'eau vapeur    ! iq = 1 pour l'eau vapeur
6    ! iq = 2 pour l'eau liquide    ! iq = 2 pour l'eau liquide
7    ! Et éventuellement iq = 3, nqmx pour les autres traceurs    ! et éventuellement iq = 3, ..., nqmx pour les autres traceurs
8    
9    use dimens_m, only: nqmx    use dimens_m, only: nqmx
10    
# Line 12  module iniadvtrac_m Line 12  module iniadvtrac_m
12    
13    private nqmx    private nqmx
14    
15    INTEGER iadv(nqmx) ! indice schéma d'advection pour l'eau et les traceurs    INTEGER iadv(nqmx) ! indice du schéma d'advection pour l'eau et les traceurs
16    ! 11 means schema Van-Leer pour hadv et version PPM (Monotone) pour vadv    ! 11 means Van-Leer scheme for hadv et monotonous PPM for vadv
17    
18    integer, parameter:: allowed_adv(10) = (/0, 1, 2, 10, 12, 13, 14, 16, 17, 18/)    integer, parameter:: allowed_adv(10) = (/0, 1, 2, 10, 12, 13, 14, 16, 17, 18/)
19    ! Allowed values for hadv and vadv:    ! Allowed values for hadv and vadv:
# Line 41  contains Line 41  contains
41    
42      ! From dyn3d/iniadvtrac.F, version 1.3 2005/04/13 08:58:34      ! From dyn3d/iniadvtrac.F, version 1.3 2005/04/13 08:58:34
43    
44      ! Authors : P. Le Van, L. Fairhead, F. Hourdin, F. Codron,      ! Authors: P. Le Van, L. Fairhead, F. Hourdin, F. Codron,
45      ! F. Forget, M.-A. Filiberti      ! F. Forget, M.-A. Filiberti
46    
47      use nr_util, only: assert      use nr_util, only: assert
# Line 50  contains Line 50  contains
50      ! Variables local to the procedure:      ! Variables local to the procedure:
51    
52      character(len=3) descrq(18)      character(len=3) descrq(18)
   
53      integer iq, iostat, nq_local, unit      integer iq, iostat, nq_local, unit
54    
55      !-----------------------------------------------------------------------      !-----------------------------------------------------------------------
# Line 90  contains Line 89  contains
89         print *, 'Problème à l''ouverture de "traceur.def"'         print *, 'Problème à l''ouverture de "traceur.def"'
90         print *, 'Attention : on prend des valeurs par défaut.'         print *, 'Attention : on prend des valeurs par défaut.'
91         call assert(nqmx == 4, "iniadvtrac nqmx")         call assert(nqmx == 4, "iniadvtrac nqmx")
92         hadv(1) = 14         hadv(:4) = (/14, 10, 10, 10/)
93         vadv(1) = 14         vadv(:4) = hadv(:4)
94         tnom(1) = 'H2Ov'         tnom(1) = 'H2Ov'
        hadv(2) = 10  
        vadv(2) = 10  
95         tnom(2) = 'H2Ol'         tnom(2) = 'H2Ol'
        hadv(3) = 10  
        vadv(3) = 10  
96         tnom(3) = 'RN'         tnom(3) = 'RN'
        hadv(4) = 10  
        vadv(4) = 10  
97         tnom(4) = 'PB'         tnom(4) = 'PB'
98         do iq = 1, nqmx         do iq = 1, nqmx
99            print *, hadv(iq), vadv(iq), tnom(iq)            print *, hadv(iq), vadv(iq), tnom(iq)
# Line 111  contains Line 104  contains
104    
105      ! À partir du nom court du traceur et du schéma d'advection, on      ! À partir du nom court du traceur et du schéma d'advection, on
106      ! détermine le nom long :      ! détermine le nom long :
107      do iq=1, nqmx      do iq = 1, nqmx
108         if (hadv(iq) /= vadv(iq)) then         if (hadv(iq) /= vadv(iq)) then
109            if (hadv(iq) == 10 .and. vadv(iq) == 16) then            if (hadv(iq) == 10 .and. vadv(iq) == 16) then
110               iadv(iq)=11               iadv(iq) = 11
111            else            else
112               print *, "Bad combination for hozizontal and vertical schemes."               print *, "Bad combination for hozizontal and vertical schemes."
113               stop 1               stop 1
114            endif            endif
115         else         else
116            iadv(iq)=hadv(iq)            iadv(iq) = hadv(iq)
117         endif         endif
118    
119         IF (iadv(iq) == 0) THEN         IF (iadv(iq) == 0) THEN

Legend:
Removed from v.76  
changed lines
  Added in v.78

  ViewVC Help
Powered by ViewVC 1.1.21