source: codes/icosagcm/trunk/src/etat0_dcmip3.f90 @ 345

Last change on this file since 345 was 345, checked in by dubos, 9 years ago

Cleanup DCMIP3

File size: 1.3 KB
Line 
1MODULE etat0_dcmip3_mod
2  ! test cases DCMIP 2012, category 3 : Non-hydrostatic gravity waves
3  IMPLICIT NONE
4  PRIVATE
5  PUBLIC :: compute_etat0
6 
7CONTAINS
8 
9  SUBROUTINE compute_etat0(ngrid,lon,lat, phis,ps,temp,ulon,ulat,q)
10    USE genmod
11    USE dcmip_initial_conditions_test_1_2_3
12    USE disvert_mod
13    INTEGER, INTENT(IN) :: ngrid
14    REAL(rstd), INTENT(IN) :: lon(ngrid)
15    REAL(rstd), INTENT(IN) :: lat(ngrid)
16    REAL(rstd), INTENT(OUT) :: phis(ngrid)
17    REAL(rstd), INTENT(OUT) :: ps(ngrid)
18    REAL(rstd), INTENT(OUT) :: ulon(ngrid,llm)
19    REAL(rstd), INTENT(OUT) :: ulat(ngrid,llm)
20    REAL(rstd), INTENT(OUT) :: temp(ngrid,llm)
21    REAL(rstd), INTENT(OUT) :: q(ngrid,llm,nqtot)
22    REAL(rstd),PARAMETER :: Peq=1e5        ! Reference surface pressure at the equator (hPa)
23    REAL(rstd) :: dummy, pp
24    INTEGER :: l,ij
25    pp=peq
26    DO ij=1,ngrid
27       CALL test3_gravity_wave(lon(ij),lat(ij),pp,dummy,0, &
28            dummy,dummy,dummy,dummy,phis(ij),ps(ij),dummy,dummy)
29    END DO
30    DO l=1,llm
31       DO ij=1,ngrid
32          pp = .5*(ap(l)+ap(l+1)) + .5*(bp(l)+bp(l+1))*ps(ij) ! full-layer pressure
33          CALL test3_gravity_wave(lon(ij),lat(ij),pp,dummy,0, &
34               ulon(ij,l),ulat(ij,l),dummy,Temp(ij,l),dummy,dummy,dummy,dummy)
35       END DO
36    END DO   
37    q=0.
38  END SUBROUTINE compute_etat0
39
40END MODULE etat0_DCMIP3_mod
Note: See TracBrowser for help on using the repository browser.