source: LMDZ4/trunk/libf/dyn3d/traceurpole.F @ 5306

Last change on this file since 5306 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: 1.6 KB
RevLine 
[524]1!
[1403]2! $Id: traceurpole.F 1403 2010-07-01 09:02:53Z fairhead $
[524]3!
4          subroutine traceurpole(q,masse)
5
[1403]6      USE control_mod
7
[524]8          implicit none
9     
10#include "dimensions.h"
11c#include "paramr2.h"
12#include "paramet.h"
13#include "comconst.h"
14#include "comdissip.h"
15#include "comvert.h"
16#include "comgeom2.h"
17#include "logic.h"
18#include "temps.h"
19#include "ener.h"
20#include "description.h"
21
22
23c   Arguments
24       integer iq
25       real masse(iip1,jjp1,llm)
26       real q(iip1,jjp1,llm)
27       
28
29c   Locals
30      integer i,j,l
31      real sommemassen(llm)
32      real sommemqn(llm)
33      real sommemasses(llm)
34      real sommemqs(llm)
35      real qpolen(llm),qpoles(llm)
36
37   
38c On impose une seule valeur au pôle Sud j=jjm+1=jjp1       
39      sommemasses=0
40      sommemqs=0
41          do l=1,llm
42             do i=1,iip1         
43                 sommemasses(l)=sommemasses(l)+masse(i,jjp1,l)
44                 sommemqs(l)=sommemqs(l)+masse(i,jjp1,l)*q(i,jjp1,l)
45             enddo         
46          qpoles(l)=sommemqs(l)/sommemasses(l)
47          enddo
48
49c On impose une seule valeur du traceur au pôle Nord j=1
50      sommemassen=0
51      sommemqn=0 
52         do l=1,llm
53           do i=1,iip1             
54               sommemassen(l)=sommemassen(l)+masse(i,1,l)
55               sommemqn(l)=sommemqn(l)+masse(i,1,l)*q(i,1,l)
56           enddo
57           qpolen(l)=sommemqn(l)/sommemassen(l)
58         enddo
59   
60c On force le traceur à prendre cette valeur aux pôles
61        do l=1,llm
62            do i=1,iip1
63               q(i,1,l)=qpolen(l)
64               q(i,jjp1,l)=qpoles(l)
65             enddo
66        enddo
67
68     
69      return
70      end           
Note: See TracBrowser for help on using the repository browser.