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

Diff of /trunk/dyn3d/sortvarc.f

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

trunk/libf/dyn3d/sortvarc.f90 revision 68 by guez, Wed Nov 14 16:59:30 2012 UTC trunk/dyn3d/sortvarc.f90 revision 78 by guez, Wed Feb 5 17:51:07 2014 UTC
# Line 11  contains Line 11  contains
11      ! Author: P. Le Van      ! Author: P. Le Van
12      ! Objet : sortie des variables de contrôle      ! Objet : sortie des variables de contrôle
13    
14        USE comconst, ONLY: daysec, dtvr, g, omeg, rad
15        USE comgeom, ONLY: aire, cu, rlatu
16      USE conf_gcm_m, ONLY: day_step      USE conf_gcm_m, ONLY: day_step
17      USE dimens_m, ONLY : iim, jjm, llm      USE dimens_m, ONLY: iim, jjm, llm
18      USE paramet_m, ONLY : iip1, iip2, ijp1llm, ip1jm, ip1jmp1, jjp1      USE dynetat0_m, ONLY: day_ini
19      USE comconst, ONLY : daysec, dtvr, g, omeg, rad      USE ener, ONLY: ang, ang0, etot, etot0, ptot, ptot0, rmsdpdt, rmsv, &
     USE comgeom, ONLY : aire, cu, rlatu  
     USE dynetat0_m, ONLY : day_ini  
     USE ener, ONLY : ang, ang0, etot, etot0, ptot, ptot0, rmsdpdt, rmsv, &  
20           stot, stot0, ztot, ztot0           stot, stot0, ztot, ztot0
21      use filtreg_m, only: filtreg      use filtreg_m, only: filtreg
22        use massbarxy_m, only: massbarxy
23        USE paramet_m, ONLY: iip1, iip2, ijp1llm, ip1jm, ip1jmp1, jjp1
24    
25      ! Arguments:      INTEGER, INTENT(IN):: itau
26      INTEGER, INTENT(IN) :: itau      REAL, INTENT(IN):: ucov(ip1jmp1, llm)
27      REAL :: ucov(ip1jmp1, llm), masse(ip1jmp1, llm)      REAL, INTENT(IN):: teta(ip1jmp1, llm)
28      real, intent(in):: teta(ip1jmp1, llm)      REAL, INTENT(IN):: ps(ip1jmp1)
29      REAL, INTENT(IN):: ps(ip1jmp1), phis(ip1jmp1)      REAL, INTENT(IN):: masse(ip1jmp1, llm)
30      REAL :: vorpot(ip1jm, llm)      REAL, INTENT(IN):: pk(ip1jmp1, llm)
31        REAL, INTENT(IN):: phis(ip1jmp1)
32        REAL, INTENT(IN):: vorpot(ip1jm, llm)
33      REAL, intent(in):: phi(ip1jmp1, llm)      REAL, intent(in):: phi(ip1jmp1, llm)
34      real bern(ip1jmp1, llm)      real, intent(in):: bern(ip1jmp1, llm)
35      REAL :: dp(ip1jmp1)      REAL, intent(in):: dp(ip1jmp1)
36      REAL, INTENT (IN):: time_0      REAL, INTENT (IN):: time_0
     REAL, INTENT (IN):: pk(ip1jmp1, llm)  
37    
38      ! Local:      ! Local:
39      REAL :: vor(ip1jm), bernf(ip1jmp1, llm), ztotl(llm)      REAL:: vor(ip1jm), bernf(ip1jmp1, llm), ztotl(llm)
40      REAL :: etotl(llm), stotl(llm), rmsvl(llm), angl(llm), ge(ip1jmp1)      REAL:: etotl(llm), stotl(llm), rmsvl(llm), angl(llm), ge(ip1jmp1)
41      REAL :: cosphi(ip1jm), omegcosp(ip1jm)      REAL:: cosphi(ip1jm), omegcosp(ip1jm)
42      REAL :: dtvrs1j, rjour, heure, radsg, radomeg      REAL dtvrs1j, rjour, heure, radsg, radomeg
43      real massebxy(ip1jm, llm)      REAL massebxy(ip1jm, llm)
44      INTEGER :: l, ij, imjmp1      INTEGER l, ij
45      REAL :: ssum      REAL ssum
46      real time      real time
47    
48      !-----------------------------------------------------------------------      !-----------------------------------------------------------------------
49    
50      print *, "Call sequence information: sortvarc"      PRINT *, "Call sequence information: sortvarc"
51    
52      time = real(itau) / day_step + time_0      time = real(itau) / day_step + time_0
53      dtvrs1j = dtvr/daysec      dtvrs1j = dtvr/daysec
54      rjour = real(int(itau*dtvrs1j))      rjour = real(int(itau*dtvrs1j))
55      heure = (itau*dtvrs1j-rjour)*24.      heure = (itau*dtvrs1j-rjour)*24.
     imjmp1 = iim*jjp1  
56      IF (abs(heure-24.)<=0.0001) heure = 0.      IF (abs(heure-24.)<=0.0001) heure = 0.
57    
58      CALL massbarxy(masse, massebxy)      CALL massbarxy(masse, massebxy)
59    
60      ! Calcul  de  rmsdpdt      ! Calcul  de  rmsdpdt
61      ge(:) = dp(:)*dp(:)      ge = dp*dp
62      rmsdpdt = ssum(ip1jmp1, ge, 1) - ssum(jjp1, ge, iip1)      rmsdpdt = ssum(ip1jmp1, ge, 1) - ssum(jjp1, ge, iip1)
63      rmsdpdt = daysec*1.E-2*sqrt(rmsdpdt/imjmp1)      rmsdpdt = daysec*1.E-2*sqrt(rmsdpdt / (iim * jjp1))
64      CALL scopy(ijp1llm, bern, 1, bernf, 1)      bernf = bern
65      CALL filtreg(bernf, jjp1, llm, -2, 2, .TRUE.)      CALL filtreg(bernf, jjp1, llm, -2, 2, .TRUE.)
66    
67      ! Calcul du moment  angulaire      ! Calcul du moment  angulaire
# Line 72  contains Line 73  contains
73      END DO      END DO
74    
75      ! Calcul  de l'energie, de l'enstrophie, de l'entropie et de rmsv      ! Calcul  de l'energie, de l'enstrophie, de l'entropie et de rmsv
76    
77      DO l = 1, llm      DO l = 1, llm
78         DO ij = 1, ip1jm         DO ij = 1, ip1jm
79            vor(ij) = vorpot(ij, l)*vorpot(ij, l)*massebxy(ij, l)            vor(ij) = vorpot(ij, l)*vorpot(ij, l)*massebxy(ij, l)

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

  ViewVC Help
Powered by ViewVC 1.1.21