LMDZ
enercin.F90
Go to the documentation of this file.
1 SUBROUTINE enercin ( vcov, ucov, vcont, ucont, ecin )
2 !
3 !-------------------------------------------------------------------------------
4 ! Authors: P. Le Van.
5 !-------------------------------------------------------------------------------
6 ! Purpose: Compute kinetic energy at sigma levels.
7  IMPLICIT NONE
8  include "dimensions.h"
9  include "paramet.h"
10  include "comgeom.h"
11 !===============================================================================
12 ! Arguments:
13  REAL, INTENT(IN) :: vcov (ip1jm, llm)
14  REAL, INTENT(IN) :: ucov (ip1jmp1,llm)
15  REAL, INTENT(IN) :: vcont (ip1jm, llm)
16  REAL, INTENT(IN) :: ucont (ip1jmp1,llm)
17  REAL, INTENT(OUT) :: ecin (ip1jmp1,llm)
18 !===============================================================================
19 ! Notes:
20 ! . V
21 ! i,j-1
22 !
23 ! alpha4 . . alpha1
24 !
25 !
26 ! U . . P . U
27 ! i-1,j i,j i,j
28 !
29 ! alpha3 . . alpha2
30 !
31 !
32 ! . V
33 ! i,j
34 !
35 ! Kinetic energy at scalar point P(i,j) (excluding poles) is:
36 ! Ecin = 0.5 * U(i-1,j)**2 *( alpha3 + alpha4 ) +
37 ! 0.5 * U(i ,j)**2 *( alpha1 + alpha2 ) +
38 ! 0.5 * V(i,j-1)**2 *( alpha1 + alpha4 ) +
39 ! 0.5 * V(i, j)**2 *( alpha2 + alpha3 )
40 !===============================================================================
41 ! Local variables:
42  INTEGER :: l, ij, i
43  REAL :: ecinni(iip1), ecinsi(iip1), ecinpn, ecinps
44 !===============================================================================
45  DO l=1,llm
46  DO ij = iip2, ip1jm -1
47  ecin(ij+1,l)=0.5*(ucov(ij ,l)*ucont(ij ,l)*alpha3p4(ij +1) &
48  + ucov(ij+1 ,l)*ucont(ij+1 ,l)*alpha1p2(ij +1) &
49  + vcov(ij-iim,l)*vcont(ij-iim,l)*alpha1p4(ij +1) &
50  + vcov(ij+1 ,l)*vcont(ij+1 ,l)*alpha2p3(ij +1) )
51  END DO
52  !--- Correction: ecin(1,j,l)= ecin(iip1,j,l)
53  DO ij=iip2,ip1jm,iip1; ecin(ij,l) = ecin(ij+iim,l); END DO
54 
55  !--- North pole
56  DO i=1,iim
57  ecinni(i) = vcov(i,l)*vcont(i,l)*aire(i)
58  END DO
59  ecinpn = 0.5*sum(ecinni(1:iim))/apoln
60  DO ij=1,iip1; ecin(ij,l)=ecinpn; END DO
61 
62  !--- South pole
63  DO i=1,iim
64  ecinsi(i) = vcov(i+ip1jmi1,l)*vcont(i+ip1jmi1,l)*aire(i+ip1jm)
65  END DO
66  ecinps = 0.5*sum(ecinsi(1:iim))/apols
67  DO ij=1,iip1; ecin(ij+ip1jm,l)=ecinps; END DO
68  END DO
69 
70 END SUBROUTINE enercin
71 
!$Header llmm1 INTEGER ip1jmi1
Definition: paramet.h:14
!$Header iip2
Definition: paramet.h:14
!$Header llmm1 INTEGER ip1jmp1
Definition: paramet.h:14
!$Header!CDK comgeom COMMON comgeom apols
Definition: comgeom.h:8
!$Header!CDK comgeom COMMON comgeom alpha1p2
Definition: comgeom.h:25
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
!$Header!CDK comgeom COMMON comgeom aire
Definition: comgeom.h:25
!$Header llmm1 INTEGER ip1jm
Definition: paramet.h:14
!$Header!CDK comgeom COMMON comgeom apoln
Definition: comgeom.h:8
!$Header!CDK comgeom COMMON comgeom alpha1p4
Definition: comgeom.h:25
!$Header!CDK comgeom COMMON comgeom alpha3p4
Definition: comgeom.h:25
!$Header!CDK comgeom COMMON comgeom alpha2p3
Definition: comgeom.h:25
c c zjulian c cym CALL iim cym klev iim
Definition: ini_bilKP_ave.h:24
subroutine enercin(vcov, ucov, vcont, ucont, ecin)
Definition: enercin.F90:2