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

Diff of /trunk/Sources/dyn3d/iniadvtrac.f

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

trunk/dyn3d/iniadvtrac.f90 revision 76 by guez, Fri Nov 15 18:45:49 2013 UTC trunk/dyn3d/iniadvtrac.f revision 129 by guez, Fri Feb 13 18:22:38 2015 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 30  module iniadvtrac_m Line 30  module iniadvtrac_m
30    
31    INTEGER hadv(nqmx) ! indice schéma transport horizontal    INTEGER hadv(nqmx) ! indice schéma transport horizontal
32    INTEGER vadv(nqmx) ! indice schéma transport vertical    INTEGER vadv(nqmx) ! indice schéma transport vertical
   INTEGER niadv(nqmx) ! équivalent dynamique / physique  
33    character(len=8) tnom(nqmx) ! nom court du traceur    character(len=8) tnom(nqmx) ! nom court du traceur
34    character(len=10) tname(nqmx) ! nom du traceur pour restart    character(len=10) tname(nqmx) ! nom du traceur pour restart
35    character(len=13) ttext(nqmx) ! nom long du traceur pour sorties    character(len=13) ttext(nqmx) ! nom long du traceur pour sorties
# Line 41  contains Line 40  contains
40    
41      ! 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
42    
43      ! Authors : P. Le Van, L. Fairhead, F. Hourdin, F. Codron,      ! Authors: P. Le Van, L. Fairhead, F. Hourdin, F. Codron,
44      ! F. Forget, M.-A. Filiberti      ! F. Forget, M.-A. Filiberti
45    
46        ! Initialisation des traceurs
47        ! Choix du schéma pour l'advection dans le fichier "traceur.def"
48    
49      use nr_util, only: assert      use nr_util, only: assert
50      use jumble, only: new_unit      use jumble, only: new_unit
51    
52      ! Variables local to the procedure:      ! Variables local to the procedure:
53    
54      character(len=3) descrq(18)      character(len=3) descrq(18)
   
55      integer iq, iostat, nq_local, unit      integer iq, iostat, nq_local, unit
56    
57      !-----------------------------------------------------------------------      !-----------------------------------------------------------------------
# Line 90  contains Line 91  contains
91         print *, 'Problème à l''ouverture de "traceur.def"'         print *, 'Problème à l''ouverture de "traceur.def"'
92         print *, 'Attention : on prend des valeurs par défaut.'         print *, 'Attention : on prend des valeurs par défaut.'
93         call assert(nqmx == 4, "iniadvtrac nqmx")         call assert(nqmx == 4, "iniadvtrac nqmx")
94         hadv(1) = 14         hadv(:4) = (/14, 10, 10, 10/)
95         vadv(1) = 14         vadv(:4) = hadv(:4)
96         tnom(1) = 'H2Ov'         tnom(1) = 'H2Ov'
        hadv(2) = 10  
        vadv(2) = 10  
97         tnom(2) = 'H2Ol'         tnom(2) = 'H2Ol'
        hadv(3) = 10  
        vadv(3) = 10  
98         tnom(3) = 'RN'         tnom(3) = 'RN'
        hadv(4) = 10  
        vadv(4) = 10  
99         tnom(4) = 'PB'         tnom(4) = 'PB'
100         do iq = 1, nqmx         do iq = 1, nqmx
101            print *, hadv(iq), vadv(iq), tnom(iq)            print *, hadv(iq), vadv(iq), tnom(iq)
# Line 111  contains Line 106  contains
106    
107      ! À 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
108      ! détermine le nom long :      ! détermine le nom long :
109      do iq=1, nqmx      do iq = 1, nqmx
110         if (hadv(iq) /= vadv(iq)) then         if (hadv(iq) /= vadv(iq)) then
111            if (hadv(iq) == 10 .and. vadv(iq) == 16) then            if (hadv(iq) == 10 .and. vadv(iq) == 16) then
112               iadv(iq)=11               iadv(iq) = 11
113            else            else
114               print *, "Bad combination for hozizontal and vertical schemes."               print *, "Bad combination for hozizontal and vertical schemes."
115               stop 1               stop 1
116            endif            endif
117         else         else
118            iadv(iq)=hadv(iq)            iadv(iq) = hadv(iq)
119         endif         endif
120    
121         IF (iadv(iq) == 0) THEN         IF (iadv(iq) == 0) THEN
# Line 130  contains Line 125  contains
125         endif         endif
126      end do      end do
127    
     forall (iq = 1: nqmx) niadv(iq)=iq  
   
128    END subroutine iniadvtrac    END subroutine iniadvtrac
129    
130  end module iniadvtrac_m  end module iniadvtrac_m

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

  ViewVC Help
Powered by ViewVC 1.1.21