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

Last change on this file since 394 was 377, checked in by dubos, 8 years ago

New : positive advection option for theta

File size: 1.8 KB
RevLine 
[37]1MODULE etat0_dcmip3_mod
[345]2  ! test cases DCMIP 2012, category 3 : Non-hydrostatic gravity waves
3  IMPLICIT NONE
[37]4  PRIVATE
[345]5  PUBLIC :: compute_etat0
6 
[37]7CONTAINS
8 
[366]9  SUBROUTINE compute_etat0(ngrid,lon,lat, phis,ps,temp,ulon,ulat,geopot,q)
[345]10    USE dcmip_initial_conditions_test_1_2_3
11    USE disvert_mod
[353]12    USE omp_para
[345]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)
[366]21    REAL(rstd), INTENT(OUT) :: geopot(ngrid,llm+1)
[345]22    REAL(rstd), INTENT(OUT) :: q(ngrid,llm,nqtot)
23    REAL(rstd),PARAMETER :: Peq=1e5        ! Reference surface pressure at the equator (hPa)
[366]24    REAL(rstd) :: dummy, pp, zz
[345]25    INTEGER :: l,ij
26    pp=peq
27    DO ij=1,ngrid
[377]28       CALL test3_gravity_wave(scale_factor, lon(ij),lat(ij),pp,dummy,0, &
[345]29            dummy,dummy,dummy,dummy,phis(ij),ps(ij),dummy,dummy)
30    END DO
[366]31    DO l=ll_begin,ll_endp1
32       DO ij=1,ngrid
33          pp = ap(l) + bp(l)*ps(ij) ! half-layer pressure
[377]34          CALL test3_gravity_wave(scale_factor, lon(ij),lat(ij),pp,zz,0, &
[366]35               dummy,dummy,dummy,dummy,dummy,dummy,dummy,dummy)
36          geopot(ij,l) = g*zz ! initialize geopotential for NH
37       END DO
38    END DO
[353]39    DO l=ll_begin,ll_end
[345]40       DO ij=1,ngrid
41          pp = .5*(ap(l)+ap(l+1)) + .5*(bp(l)+bp(l+1))*ps(ij) ! full-layer pressure
[377]42          CALL test3_gravity_wave(scale_factor, lon(ij),lat(ij),pp,dummy,0, &
[345]43               ulon(ij,l),ulat(ij,l),dummy,Temp(ij,l),dummy,dummy,dummy,dummy)
44       END DO
[356]45       q(:,l,:)=0.
[353]46    END DO
[356]47   
[345]48  END SUBROUTINE compute_etat0
[37]49
[48]50END MODULE etat0_DCMIP3_mod
Note: See TracBrowser for help on using the repository browser.