/[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 91 by guez, Wed Mar 26 17:18:58 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 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      use nr_util, only: assert      use nr_util, only: assert
# Line 50  contains Line 49  contains
49      ! Variables local to the procedure:      ! Variables local to the procedure:
50    
51      character(len=3) descrq(18)      character(len=3) descrq(18)
   
52      integer iq, iostat, nq_local, unit      integer iq, iostat, nq_local, unit
53    
54      !-----------------------------------------------------------------------      !-----------------------------------------------------------------------
# Line 90  contains Line 88  contains
88         print *, 'Problème à l''ouverture de "traceur.def"'         print *, 'Problème à l''ouverture de "traceur.def"'
89         print *, 'Attention : on prend des valeurs par défaut.'         print *, 'Attention : on prend des valeurs par défaut.'
90         call assert(nqmx == 4, "iniadvtrac nqmx")         call assert(nqmx == 4, "iniadvtrac nqmx")
91         hadv(1) = 14         hadv(:4) = (/14, 10, 10, 10/)
92         vadv(1) = 14         vadv(:4) = hadv(:4)
93         tnom(1) = 'H2Ov'         tnom(1) = 'H2Ov'
        hadv(2) = 10  
        vadv(2) = 10  
94         tnom(2) = 'H2Ol'         tnom(2) = 'H2Ol'
        hadv(3) = 10  
        vadv(3) = 10  
95         tnom(3) = 'RN'         tnom(3) = 'RN'
        hadv(4) = 10  
        vadv(4) = 10  
96         tnom(4) = 'PB'         tnom(4) = 'PB'
97         do iq = 1, nqmx         do iq = 1, nqmx
98            print *, hadv(iq), vadv(iq), tnom(iq)            print *, hadv(iq), vadv(iq), tnom(iq)
# Line 111  contains Line 103  contains
103    
104      ! À 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
105      ! détermine le nom long :      ! détermine le nom long :
106      do iq=1, nqmx      do iq = 1, nqmx
107         if (hadv(iq) /= vadv(iq)) then         if (hadv(iq) /= vadv(iq)) then
108            if (hadv(iq) == 10 .and. vadv(iq) == 16) then            if (hadv(iq) == 10 .and. vadv(iq) == 16) then
109               iadv(iq)=11               iadv(iq) = 11
110            else            else
111               print *, "Bad combination for hozizontal and vertical schemes."               print *, "Bad combination for hozizontal and vertical schemes."
112               stop 1               stop 1
113            endif            endif
114         else         else
115            iadv(iq)=hadv(iq)            iadv(iq) = hadv(iq)
116         endif         endif
117    
118         IF (iadv(iq) == 0) THEN         IF (iadv(iq) == 0) THEN
# Line 130  contains Line 122  contains
122         endif         endif
123      end do      end do
124    
     forall (iq = 1: nqmx) niadv(iq)=iq  
   
125    END subroutine iniadvtrac    END subroutine iniadvtrac
126    
127  end module iniadvtrac_m  end module iniadvtrac_m

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

  ViewVC Help
Powered by ViewVC 1.1.21