source: LMDZ4/trunk/libf/dyn3d/caladvtrac.F @ 3313

Last change on this file since 3313 was 1403, checked in by Laurent Fairhead, 14 years ago

Merged LMDZ4V5.0-dev branch changes r1292:r1399 to trunk.

Validation:
Validation consisted in compiling the HEAD revision of the trunk,
LMDZ4V5.0-dev branch and the merged sources and running different
configurations on local and SX8 machines comparing results.

Local machine: bench configuration, 32x24x11, gfortran

  • IPSLCM5A configuration (comparison between trunk and merged sources):
    • numerical convergence on dynamical fields over 3 days
    • start files are equivalent (except for RN and PB fields)
    • daily history files equivalent
  • MH07 configuration, new physics package (comparison between LMDZ4V5.0-dev branch and merged sources):
    • numerical convergence on dynamical fields over 3 days
    • start files are equivalent (except for RN and PB fields)
    • daily history files equivalent

SX8 machine (brodie), 96x95x39 on 4 processors:

  • IPSLCM5A configuration:
    • start files are equivalent (except for RN and PB fields)
    • monthly history files equivalent
  • MH07 configuration:
    • start files are equivalent (except for RN and PB fields)
    • monthly history files equivalent

Changes to the makegcm and create_make_gcm scripts to take into account
main programs in F90 files


Fusion de la branche LMDZ4V5.0-dev (r1292:r1399) au tronc principal

Validation:
La validation a consisté à compiler la HEAD de le trunk et de la banche
LMDZ4V5.0-dev et les sources fusionnées et de faire tourner le modéle selon
différentes configurations en local et sur SX8 et de comparer les résultats

En local: 32x24x11, config bench/gfortran

  • pour une config IPSLCM5A (comparaison tronc/fusion):
    • convergence numérique sur les champs dynamiques après 3 jours
    • restart et restartphy égaux (à part sur RN et Pb)
    • fichiers histoire égaux
  • pour une config nlle physique (MH07) (comparaison LMDZ4v5.0-dev/fusion):
    • convergence numérique sur les champs dynamiques après 3 jours
    • restart et restartphy égaux
    • fichiers histoire équivalents

Sur brodie, 96x95x39 sur 4 proc:

  • pour une config IPSLCM5A:
    • restart et restartphy égaux (à part sur RN et PB)
    • pas de différence dans les fichiers histmth.nc
  • pour une config MH07
    • restart et restartphy égaux (à part sur RN et PB)
    • pas de différence dans les fichiers histmth.nc

Changement sur makegcm et create_make-gcm pour pouvoir prendre en compte des
programmes principaux en *F90

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1!
2! $Id: caladvtrac.F 1403 2010-07-01 09:02:53Z fairhead $
3!
4c
5c
6            SUBROUTINE caladvtrac(q,pbaru,pbarv ,
7     *                   p ,masse, dq ,  teta,
8     *                   flxw, pk)
9c
10      USE infotrac
11      USE control_mod
12 
13      IMPLICIT NONE
14c
15c     Auteurs:   F.Hourdin , P.Le Van, F.Forget, F.Codron 
16c
17c     F.Codron (10/99) : ajout humidite specifique pour eau vapeur
18c=======================================================================
19c
20c       Shema de  Van Leer
21c
22c=======================================================================
23
24
25#include "dimensions.h"
26#include "paramet.h"
27#include "comconst.h"
28
29c   Arguments:
30c   ----------
31      REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm),masse(ip1jmp1,llm)
32      REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nqtot),dq( ip1jmp1,llm,2 )
33      REAL teta( ip1jmp1,llm),pk( ip1jmp1,llm)
34      REAL               :: flxw(ip1jmp1,llm)
35
36c  ..................................................................
37c
38c  .. dq n'est utilise et dimensionne que pour l'eau  vapeur et liqu.
39c
40c  ..................................................................
41c
42c   Local:
43c   ------
44
45      EXTERNAL  advtrac,minmaxq, qminimum
46      INTEGER ij,l, iq, iapptrac
47      REAL finmasse(ip1jmp1,llm), dtvrtrac
48
49cc
50c
51C initialisation
52        dq = 0.
53
54        CALL SCOPY( 2 * ijp1llm, q, 1, dq, 1 )
55
56c  test des valeurs minmax
57cc        CALL minmaxq(q(1,1,1),1.e33,-1.e33,'Eau vapeur (a) ')
58cc        CALL minmaxq(q(1,1,2),1.e33,-1.e33,'Eau liquide(a) ')
59
60c   advection
61
62        CALL advtrac( pbaru,pbarv,
63     *       p,  masse,q,iapptrac, teta,
64     .       flxw, pk)
65c
66
67         IF( iapptrac.EQ.iapp_tracvl ) THEN
68c
69cc          CALL minmaxq(q(1,1,1),1.e33,-1.e33,'Eau vapeur     ')
70cc          CALL minmaxq(q(1,1,2),1.e33,-1.e33,'Eau liquide    ')
71
72cc     ....  Calcul  de deltap  qu'on stocke dans finmasse   ...
73c
74          DO l = 1, llm
75           DO ij = 1, ip1jmp1
76             finmasse(ij,l) =  p(ij,l) - p(ij,l+1)
77           ENDDO
78          ENDDO
79         
80          if (planet_type.eq."earth") then
81! Earth-specific treatment of first 2 tracers (water)
82            CALL qminimum( q, 2, finmasse )
83          endif
84
85          CALL SCOPY   ( ip1jmp1*llm, masse, 1, finmasse,       1 )
86          CALL filtreg ( finmasse ,  jjp1,  llm, -2, 2, .TRUE., 1 )
87c
88c   *****  Calcul de dq pour l'eau , pour le passer a la physique ******
89c   ********************************************************************
90c
91          dtvrtrac = iapp_tracvl * dtvr
92c
93           DO iq = 1 , 2
94            DO l = 1 , llm
95             DO ij = 1,ip1jmp1
96             dq(ij,l,iq) = ( q(ij,l,iq) - dq(ij,l,iq) ) * finmasse(ij,l)
97     *                               /  dtvrtrac
98             ENDDO
99            ENDDO
100           ENDDO
101c
102         ELSE
103           DO iq = 1 , 2
104           DO l  = 1, llm
105             DO ij = 1,ip1jmp1
106              dq(ij,l,iq)  = 0.
107             ENDDO
108           ENDDO
109           ENDDO
110
111
112         ENDIF
113
114c
115
116c  ... On appelle  qminimum uniquement  pour l'eau vapeur et liquide  ..
117
118 
119      RETURN
120      END
121
122
Note: See TracBrowser for help on using the repository browser.