source: codes/icosagcm/trunk/src/etat0_dcmip2016_supercell.f90 @ 388

Last change on this file since 388 was 388, checked in by ymipsl, 8 years ago
  • Add dcmip2016 cyclone etat0 estcase
  • Add fisrt guess of dcmip2016 etat0 supercell testcase

YM

File size: 2.0 KB
Line 
1MODULE etat0_dcmip2016_supercell_mod
2  USE icosa
3  IMPLICIT NONE
4  PRIVATE
5 
6  REAL(rstd),PARAMETER :: eta0=0.252
7  REAL(rstd),PARAMETER :: etat=0.2
8  REAL(rstd),PARAMETER :: ps0=1e5
9  REAL(rstd),PARAMETER :: u0=35
10  REAL(rstd),PARAMETER :: T0=288
11  REAL(rstd),PARAMETER :: DeltaT=4.8e5
12  REAL(rstd),PARAMETER :: Rd=287
13  REAL(rstd),PARAMETER :: Gamma=0.005
14  REAL(rstd),PARAMETER :: up0=1
15  REAL(rstd),PARAMETER :: lonc=Pi/9, latc=2*Pi/9, latw=2*Pi/9
16  REAL(rstd),PARAMETER :: pw=34000
17  REAL(rstd),PARAMETER :: q0=0.021
18 
19  INTEGER,SAVE :: testcase
20  !$OMP THREADPRIVATE(testcase) 
21 
22  PUBLIC getin_etat0, compute_etat0
23
24CONTAINS
25
26  SUBROUTINE getin_etat0
27    USE mpipara, ONLY : is_mpi_root
28    USE tracer_mod
29    USE dcmip2016_supercell_mod, ONLY : supercell_init, supercell_test
30    IF(nqtot<5) THEN
31       IF (is_mpi_root)  THEN
32          PRINT *, "nqtot must be at least 5 for test case dcmip2016_supercell"
33       END IF
34       STOP
35    END IF
36
37    CALL supercell_init
38   
39  END SUBROUTINE getin_etat0
40
41  SUBROUTINE compute_etat0(ngrid,lon,lat, phis,ps,temp,ulon,ulat,q)
42    USE icosa
43    USE disvert_mod
44    USE omp_para
45    USE dcmip2016_supercell_mod, ONLY : supercell_init, supercell_test, supercell_z
46    INTEGER, INTENT(IN) :: ngrid
47    REAL(rstd),INTENT(IN) :: lon(ngrid)
48    REAL(rstd),INTENT(IN) :: lat(ngrid)
49    REAL(rstd),INTENT(OUT) :: phis(ngrid)
50    REAL(rstd),INTENT(OUT) :: ps(ngrid)
51    REAL(rstd),INTENT(OUT) :: temp(ngrid,llm)
52    REAL(rstd),INTENT(OUT) :: ulon(ngrid,llm)
53    REAL(rstd),INTENT(OUT) :: ulat(ngrid,llm)
54    REAL(rstd),INTENT(OUT) :: q(ngrid,llm,nqtot)
55   
56    INTEGER :: l,ij
57    REAL(rstd) :: p,z, thetav,rho
58 
59    phis(:)=0
60    DO ij=1,ngrid
61       z=0.
62       CALL supercell_z(lon(ij), lat(ij), z, ps(ij), thetav, rho, q(ij,1,1), 0)
63       DO l=ll_begin,ll_end
64         p=0.5*(ap(l)+ap(l+1) + (bp(l)+bp(l+1)) * ps(ij))
65         CALL supercell_test(lon(ij),lat(ij),p,z,0,ulon(ij,l),ulat(ij,l),temp(ij,l),thetav, ps(ij),rho, q(ij,l,1),0) 
66       END DO
67    END DO
68   
69  END SUBROUTINE compute_etat0
70 
71END MODULE etat0_dcmip2016_supercell_mod
Note: See TracBrowser for help on using the repository browser.