source: codes/icosagcm/trunk/src/vorticity.f90 @ 12

Last change on this file since 12 was 12, checked in by ymipsl, 12 years ago

dynamico tree creation

YM

File size: 1.8 KB
Line 
1MODULE vorticity_mod
2
3CONTAINS
4
5  SUBROUTINE vorticity(f_ue,f_vort)
6  USE transfert_mod
7  USE field_mod
8  USE dimensions
9  USE geometry
10  USE domain_mod
11  IMPLICIT NONE
12    TYPE(t_field), POINTER :: f_ue(:)
13    TYPE(t_field), POINTER :: f_vort(:)
14 
15    REAL(rstd), POINTER :: ue(:,:)
16    REAL(rstd), POINTER :: vort(:,:)
17    INTEGER :: ind
18
19    CALL transfert_request(f_ue,req_e1)
20    CALL transfert_request(f_ue,req_e1)
21   
22    DO ind=1,ndomain
23      CALL swap_dimensions(ind)
24      CALL swap_geometry(ind)
25      ue=f_ue(ind)
26      vort=f_vort(ind)
27      CALL compute_vorticity(ue, vort)
28    ENDDO
29 
30  END SUBROUTINE vorticity
31 
32  SUBROUTINE compute_vorticity(ue,vort)
33  USE dimensions
34  USE geometry
35  USE metric
36  USE disvert_mod
37  IMPLICIT NONE
38    REAL(rstd),INTENT(IN)  :: ue(3*iim*jjm,llm)
39    REAL(rstd),INTENT(OUT) :: vort(2*iim*jjm,llm)
40    INTEGER :: i,j,ij,l
41
42    DO l = 1,llm
43      DO j=jj_begin-1,jj_end+1
44        DO i=ii_begin-1,ii_end+1
45          ij=(j-1)*iim+i
46       
47           vort(ij+z_up,l) = 1./Av(ij+z_up)*(  ne(ij,rup)        * ue(ij+u_rup,l)        * de(ij+u_rup)         &
48                                + ne(ij+t_rup,left) * ue(ij+t_rup+u_left,l) * de(ij+t_rup+u_left)               &
49                                - ne(ij,lup)        * ue(ij+u_lup,l)        * de(ij+u_lup) )                               
50
51           vort(ij+z_down,l) = 1./Av(ij+z_down)*(  ne(ij,ldown)         * ue(ij+u_ldown,l)         * de(ij+u_ldown)          &
52                                   + ne(ij+t_ldown,right) * ue(ij+t_ldown+u_right,l) * de(ij+t_ldown+u_right)                &
53                                   - ne(ij,rdown)         * ue(ij+u_rdown,l)          * de(ij+u_rdown) )
54
55        ENDDO
56      ENDDO
57    ENDDO
58   
59  END SUBROUTINE compute_vorticity
60
61END MODULE vorticity_mod
Note: See TracBrowser for help on using the repository browser.