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

Diff of /trunk/dyn3d/sortvarc.f

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

revision 255 by guez, Tue Mar 6 13:39:57 2018 UTC revision 257 by guez, Tue Mar 6 14:49:28 2018 UTC
# Line 35  contains Line 35  contains
35      logical, intent(in):: resetvarc      logical, intent(in):: resetvarc
36    
37      ! Local:      ! Local:
38      REAL vor(iim + 1, jjm), bernf(iim + 1, jjm + 1, llm), ztotl(llm)      REAL bernf(iim + 1, jjm + 1, llm)
39      REAL etotl(llm), stotl(llm), rmsvl(llm), angl(llm), ge(iim + 1, jjm + 1)      REAL etotl(llm), stotl(llm), rmsvl(llm), angl(llm), ge(iim, 2:jjm)
40      REAL cosphi(2:jjm)      REAL cosphi(2:jjm)
41      REAL radsg, radomeg      REAL radsg, radomeg
42      REAL massebxy(iim + 1, jjm, llm)      REAL massebxy(iim + 1, jjm, llm)
# Line 49  contains Line 49  contains
49      CALL massbarxy(masse, massebxy)      CALL massbarxy(masse, massebxy)
50    
51      ! Calcul  de  rmsdpdt      ! Calcul  de  rmsdpdt
52      ge = dp * dp      rmsdpdt = sum(dp(:iim, :)**2)
     rmsdpdt = sum(ge) - sum(ge(1, :))  
53      rmsdpdt = daysec * 1.E-2 * sqrt(rmsdpdt / (iim * jjp1))      rmsdpdt = daysec * 1.E-2 * sqrt(rmsdpdt / (iim * jjp1))
54      bernf = bern      bernf = bern
55      CALL filtreg_scal(bernf, direct = .false., intensive = .false.)      CALL filtreg_scal(bernf, direct = .false., intensive = .false.)
# Line 63  contains Line 62  contains
62      ! 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
63    
64      DO l = 1, llm      DO l = 1, llm
65         vor = vorpot(:, :, l)**2 * massebxy(:, :, l)         etotl(l) = sum(masse(:iim, :, l) * (phis(:iim, :) + teta(:iim, :, l) &
66         ztotl(l) = sum(vor) - sum(vor(1, :))              * pk(:iim, :, l) + bernf(:iim, :, l) - phi(:iim, :, l)))
67           stotl(l) = sum(masse(:iim, :, l) * teta(:iim, :, l))
68         ge = masse(:, :, l) * (phis + teta(:, :, l) * pk(:, :, l) &         rmsvl(l) = 2. * sum(masse(:iim, :, l) &
69              + bernf(:, :, l) - phi(:, :, l))              * max(bernf(:iim, :, l) - phi(:iim, :, l), 0.))
70         etotl(l) = sum(ge) - sum(ge(1, :))  
71           forall (j = 2:jjm) ge(:, j) = (ucov(:iim, j, l) / cu_2d(:iim, j) &
72         ge = masse(:, :, l) * teta(:, :, l)              + radomeg * cosphi(j)) * masse(:iim, j, l) * cosphi(j)
73         stotl(l) = sum(ge) - sum(ge(1, :))         angl(l) = radsg * sum(ge)
   
        ge = masse(:, :, l) * max(bernf(:, :, l) - phi(:, :, l), 0.)  
        rmsvl(l) = 2. * (sum(ge) - sum(ge(1, :)))  
   
        forall (j = 2:jjm) ge(:, j) = (ucov(:, j, l) / cu_2d(:, j) &  
             + radomeg * cosphi(j)) * masse(:, j, l) * cosphi(j)  
        angl(l) = radsg * (sum(ge(:, 2:jjm)) - sum(ge(1, 2:jjm)))  
74      END DO      END DO
75    
76      ge = ps * aire_2d      ptot = sum(ps(:iim, :) * aire_2d(:iim, :))
     ptot = sum(ge) - sum(ge(1, :))  
77      etot = sum(etotl)      etot = sum(etotl)
78      ztot = sum(ztotl)      ztot = sum(vorpot(:iim, :, :)**2 * massebxy(:iim, :, :))
79      stot = sum(stotl)      stot = sum(stotl)
80      rmsv = sum(rmsvl)      rmsv = sum(rmsvl)
81      ang = sum(angl)      ang = sum(angl)

Legend:
Removed from v.255  
changed lines
  Added in v.257

  ViewVC Help
Powered by ViewVC 1.1.21