Changeset 295 for codes/icosagcm/trunk/src/etat0_dcmip3.f90
- Timestamp:
- 10/31/14 14:52:01 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/etat0_dcmip3.f90
r286 r295 18 18 SUBROUTINE etat0(f_ps,f_phis,f_theta_rhodz,f_u, f_q) 19 19 USE icosa 20 USE theta2theta_rhodz_mod 20 21 IMPLICIT NONE 21 22 TYPE(t_field),POINTER :: f_ps(:) … … 24 25 TYPE(t_field),POINTER :: f_u(:) 25 26 TYPE(t_field),POINTER :: f_q(:) 27 TYPE(t_field),POINTER,SAVE :: f_temp(:) 26 28 27 29 REAL(rstd),POINTER :: ps(:) 28 30 REAL(rstd),POINTER :: phis(:) 29 31 REAL(rstd),POINTER :: u(:,:) 30 REAL(rstd),POINTER :: theta_rhodz(:,:)32 REAL(rstd),POINTER :: Temp(:,:) 31 33 REAL(rstd),POINTER :: q(:,:,:) 32 34 33 35 INTEGER :: ind 36 37 CALL allocate_field(f_temp,field_t,type_real,llm,name='temp') 34 38 35 39 DO ind=1,ndomain … … 41 45 phis=f_phis(ind) 42 46 u=f_u(ind) 43 theta_rhodz=f_theta_rhodz(ind)44 47 q=f_q(ind) 45 CALL compute_etat0_DCMIP3(ps,phis,u,theta_rhodz,q) 48 temp=f_temp(ind) 49 CALL compute_etat0_DCMIP3(ps,phis,u,Temp,q) 46 50 ENDDO 51 52 CALL temperature2theta_rhodz(f_ps,f_temp,f_theta_rhodz) 53 CALL deallocate_field(f_temp) 47 54 48 55 END SUBROUTINE etat0 49 56 50 57 51 SUBROUTINE compute_etat0_DCMIP3(ps, phis, u, t heta_rhodz,q)58 SUBROUTINE compute_etat0_DCMIP3(ps, phis, u, temp,q) 52 59 USE icosa 53 60 USE pression_mod … … 68 75 REAL(rstd), INTENT(OUT) :: phis(iim*jjm) 69 76 REAL(rstd), INTENT(OUT) :: u(3*iim*jjm,llm) 70 REAL(rstd), INTENT(OUT) :: theta_rhodz(iim*jjm,llm)77 REAL(rstd), INTENT(OUT) :: Temp(iim*jjm,llm) 71 78 REAL(rstd), INTENT(OUT) :: q(iim*jjm,llm,nqtot) 72 79 73 80 REAL(rstd) :: Ts(iim*jjm) 74 81 REAL(rstd) :: s(iim*jjm) 75 REAL(rstd) :: T(iim*jjm,llm)76 82 REAL(rstd) :: p(iim*jjm,llm+1) 77 83 REAL(rstd) :: theta(iim*jjm,llm) … … 125 131 END DO 126 132 133 !$OMP BARRIER 127 134 CALL compute_pression(ps,p,0) 135 !$OMP BARRIER 128 136 129 137 DO l=1,llm … … 134 142 IF(use_dcmip_routine) THEN 135 143 CALL test3_gravity_wave(lon_i(ij),lat_i(ij),pp,dummy,0, & 136 dummy,dummy,dummy,T (ij,l),dummy,dummy,dummy,dummy)144 dummy,dummy,dummy,Temp(ij,l),dummy,dummy,dummy,dummy) 137 145 ELSE 138 146 pspsk=(pp/ps(ij))**kappa … … 142 150 thetap = dtheta *sin(2*Pi*zz/Lz) * s(ij) ! perturbation pot. temp. 143 151 theta(ij,l) = thetab + thetap 144 T (ij,l) = theta(ij,l)* ((pp/peq)**kappa)152 Temp(ij,l) = theta(ij,l)* ((pp/peq)**kappa) 145 153 ! T(ij,l) = Ts(ij)*pspsk / ( Ts(ij) / GG * ( pspsk-1) +1) ! background temp. 146 154 END IF … … 149 157 ENDDO 150 158 151 IF(use_dcmip_routine) THEN152 CALL compute_temperature2theta_rhodz(ps,T,theta_rhodz,0)153 ELSE154 CALL compute_temperature2theta_rhodz(ps,T,theta_rhodz,0)155 END IF159 ! IF(use_dcmip_routine) THEN 160 ! CALL compute_temperature2theta_rhodz(ps,T,theta_rhodz,0) 161 ! ELSE 162 ! CALL compute_temperature2theta_rhodz(ps,T,theta_rhodz,0) 163 ! END IF 156 164 157 165 pp=peq
Note: See TracChangeset
for help on using the changeset viewer.