Changeset 130 for codes/icosagcm/trunk/src
- Timestamp:
- 02/06/13 18:56:56 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/timeloop_gcm.f90
r129 r130 133 133 SELECT CASE (TRIM(scheme)) 134 134 CASE('euler') 135 CALL euler_scheme 135 CALL euler_scheme(.TRUE.) 136 136 137 137 CASE ('runge_kutta') … … 156 156 END SELECT 157 157 END DO 158 159 ! CALL dissip(f_u,f_du,f_ps,f_phis, f_theta_rhodz,f_dtheta_rhodz) 160 ! CALL euler_scheme(.FALSE.) 161 158 162 ! CALL advect_tracer(f_ps,f_u,f_q) 159 ! CALL dissip(f_u,f_du,f_ps,f_phis, f_theta_rhodz,f_dtheta_rhodz)160 163 ! CALL physics(it,f_phis, f_ps, f_theta_rhodz, f_u, f_q) 161 164 ENDDO … … 163 166 CONTAINS 164 167 165 SUBROUTINE Euler_scheme 168 SUBROUTINE Euler_scheme(with_dps) 166 169 IMPLICIT NONE 167 INTEGER :: ind 168 169 DO ind=1,ndomain 170 ps=f_ps(ind) ; u=f_u(ind) ; theta_rhodz=f_theta_rhodz(ind) 171 dps=f_dps(ind) ; du=f_du(ind) ; dtheta_rhodz=f_dtheta_rhodz(ind) 172 ps(:)=ps(:)+dt*dps(:) 173 u(:,:)=u(:,:)+dt*du(:,:) 174 theta_rhodz(:,:)=theta_rhodz(:,:)+dt*dtheta_rhodz(:,:) 175 ENDDO 170 LOGICAL :: with_dps 171 INTEGER :: ind 172 173 DO ind=1,ndomain 174 IF(with_dps) THEN 175 ps=f_ps(ind) ; dps=f_dps(ind) ; 176 ps(:)=ps(:)+dt*dps(:) 177 END IF 178 u=f_u(ind) ; theta_rhodz=f_theta_rhodz(ind) 179 du=f_du(ind) ; dtheta_rhodz=f_dtheta_rhodz(ind) 180 u(:,:)=u(:,:)+dt*du(:,:) 181 theta_rhodz(:,:)=theta_rhodz(:,:)+dt*dtheta_rhodz(:,:) 182 ENDDO 176 183 177 184 END SUBROUTINE Euler_scheme
Note: See TracChangeset
for help on using the changeset viewer.