Ignore:
Timestamp:
06/06/16 20:41:52 (8 years ago)
Author:
ymipsl
Message:

Prepare DCMIP2016 output by XIOS2

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/physics_dcmip2016.f90

    r386 r397  
    120120    REAL(rstd) :: qfi(ngrid,llm,5) 
    121121 
    122     REAL(rstd)  :: rho(llm), z(llm), theta(llm) 
     122    REAL(rstd)  :: rho(llm), z(llm), theta(llm), qv(llm),qc(llm),qr(llm) 
    123123    REAL(rstd)  :: lastz 
    124124    REAL(rstd)  :: dcl1,dcl2 
    125     INTEGER :: l,ll,ij 
     125     INTEGER :: l,ll,ij 
    126126    REAL(rstd) :: dt_phys, inv_dt 
    127  
     127    INTEGER :: simple_physic_testcase 
     128     
    128129    ! prepare input fields and mirror vertical index       
    129130    ps(:) = p(:,1) ! surface pressure 
     
    147148    ENDDO 
    148149     
     150     
    149151    IF (testcase==moist_baroclinic .OR. testcase==cyclone  ) THEN 
    150       CALL simple_physics(ngrid, llm, dt_phys, lat, tfi, qfi(:,:,1) , ufi, vfi, pmid, pint, pdel, 1./pdel, ps, precl, 1, .FALSE., .FALSE.) 
     152      IF (testcase==moist_baroclinic) simple_physic_testcase=1 
     153      IF (testcase==cyclone) simple_physic_testcase=0 
     154      CALL simple_physics(ngrid, llm, dt_phys, lat, tfi, qfi(:,:,1) , ufi, vfi, pmid, pint, pdel, 1./pdel, ps, precl, & 
     155                          simple_physic_testcase, .TRUE., .FALSE.) 
    151156    ENDIF 
    152157 
     
    164169          ENDDO 
    165170 
    166           CALL KESSLER(theta(:), qfi(ij,llm:1:-1,1), qfi(ij,llm:1:-1,2), qfi(ij,llm:1:-1,3), rho(:),  & 
    167                        pk(ij,:), dt_phys, z(:), llm, precl(ij))  
     171          qv(:)=qfi(ij,llm:1:-1,1) 
     172          qc(:)=qfi(ij,llm:1:-1,2) 
     173          qr(:)=qfi(ij,llm:1:-1,3) 
     174           
     175!          CALL KESSLER(theta(:), qv, qc, qr, rho(:),  & 
     176!                       pk(ij,:), dt_phys, z(:), llm, precl(ij))  
     177           
    168178           
    169179          DO l=1,llm 
     
    172182           Tfi(ij,ll) = theta(l)  * ( pk(ij,l) / cpp) 
    173183          ENDDO 
     184 
     185          qfi(ij,:,1)=qv(llm:1:-1) 
     186          qfi(ij,:,2)=qc(llm:1:-1) 
     187          qfi(ij,:,3)=qr(llm:1:-1) 
     188 
    174189       ENDDO 
    175190    ENDIF 
Note: See TracChangeset for help on using the changeset viewer.