Changeset 327 for codes/icosagcm/trunk/src/timeloop_gcm.f90
- Timestamp:
- 02/09/15 20:18:34 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/timeloop_gcm.f90
r326 r327 40 40 USE write_field 41 41 USE theta2theta_rhodz_mod 42 USE sponge_mod 42 43 IMPLICIT NONE 43 44 … … 111 112 f_psm2 => f_phis 112 113 END IF 114 CASE ('none') 115 nb_stage=0 113 116 114 117 CASE default … … 120 123 CALL init_theta2theta_rhodz 121 124 CALL init_dissip 125 CALL init_sponge 122 126 CALL init_caldyn 123 127 CALL init_guided 124 128 CALL init_advect_tracer 125 129 CALL init_check_conserve 126 CALL init_physics127 128 130 129 131 CALL etat0(f_ps,f_mass,f_phis,f_theta_rhodz,f_u, f_q) … … 144 146 USE icosa 145 147 USE dissip_gcm_mod 148 USE sponge_mod 146 149 USE disvert_mod 147 150 USE caldyn_mod … … 176 179 INTEGER :: rate_clock 177 180 INTEGER :: l 181 LOGICAL,SAVE :: first_physic=.TRUE. 182 !$OMP THREADPRIVATE(first_physic) 178 183 179 180 ! CALL write_etat0(f_ps, f_phis,f_theta_rhodz,f_u,f_q) 181 ! CALL read_start(f_ps,f_mass,f_phis,f_theta_rhodz,f_u,f_q) 182 ! CALL write_restart(f_ps,f_mass,f_phis,f_theta_rhodz,f_u,f_q) 183 184 184 185 CALL switch_omp_distrib_level 185 186 CALL caldyn_BC(f_phis, f_wflux) ! set constant values in first/last interfaces … … 228 229 CALL wait_message(req_q0) 229 230 230 ! CALL wait_message(req_ps0)231 ! CALL wait_message(req_mass0)232 ! CALL wait_message(req_theta_rhodz0)233 ! CALL wait_message(req_u0)234 ! CALL wait_message(req_q0)235 231 ENDIF 236 232 … … 264 260 265 261 IF (MOD(it,itau_dissip)==0) THEN 266 ! CALL send_message(f_ps,req_ps)267 ! CALL wait_message(req_ps)268 262 269 263 IF(caldyn_eta==eta_mass) THEN … … 278 272 END DO 279 273 ENDIF 280 ! CALL send_message(f_mass,req_mass) 281 ! CALL wait_message(req_mass) 274 282 275 CALL dissip(f_u,f_du,f_mass,f_phis, f_theta_rhodz,f_dtheta_rhodz) 283 276 284 ! CALL send_message(f_mass,req_mass)285 ! CALL wait_message(req_mass)286 277 CALL euler_scheme(.FALSE.) ! update only u, theta 278 IF (iflag_sponge > 0) THEN 279 CALL sponge(f_u,f_du,f_theta_rhodz,f_dtheta_rhodz) 280 CALL euler_scheme(.FALSE.) ! update only u, theta 281 ENDIF 287 282 END IF 288 283 … … 308 303 END IF 309 304 310 CALL physics(it,f_phis, f_ps, f_theta_rhodz, f_u, f_q)311 305 312 306 IF (MOD(it,itau_check_conserv)==0) THEN 313 CALL check_conserve(f_ps,f_dps,f_u,f_theta_rhodz,f_phis,it) 307 CALL check_conserve(f_ps,f_dps,f_u,f_theta_rhodz,f_phis,it) 308 ENDIF 309 310 IF (MOD(it,itau_physics)==0) THEN 311 CALL physics(it,f_phis, f_ps, f_theta_rhodz, f_u, f_wflux, f_q) 312 313 !$OMP MASTER 314 IF (first_physic) CALL SYSTEM_CLOCK(start_clock) 315 !$OMP END MASTER 316 first_physic=.FALSE. 314 317 ENDIF 315 318 … … 354 357 ELSE ! update mass 355 358 mass=f_mass(ind) ; dmass=f_dmass(ind) ; 356 DO l= 1,llm359 DO l=ll_begin,ll_end 357 360 !$SIMD 358 361 DO ij=ij_begin,ij_end … … 606 609 END SUBROUTINE accumulate_fluxes 607 610 608 ! FUNCTION maxval_i(p)609 ! USE icosa610 ! IMPLICIT NONE611 ! REAL(rstd), DIMENSION(iim*jjm) :: p612 ! REAL(rstd) :: maxval_i613 ! INTEGER :: j, ij614 !615 ! maxval_i=p((jj_begin-1)*iim+ii_begin)616 !617 ! DO j=jj_begin-1,jj_end+1618 ! ij=(j-1)*iim619 ! maxval_i = MAX(maxval_i, MAXVAL(p(ij+ii_begin:ij+ii_end)))620 ! END DO621 ! END FUNCTION maxval_i622 623 ! FUNCTION maxval_ik(p)624 ! USE icosa625 ! IMPLICIT NONE626 ! REAL(rstd) :: p(iim*jjm, llm)627 ! REAL(rstd) :: maxval_ik(llm)628 ! INTEGER :: l,j, ij629 !630 ! DO l=1,llm631 ! maxval_ik(l)=p((jj_begin-1)*iim+ii_begin,l)632 ! DO j=jj_begin-1,jj_end+1633 ! ij=(j-1)*iim634 ! maxval_ik(l) = MAX(maxval_ik(l), MAXVAL(p(ij+ii_begin:ij+ii_end,l)))635 ! END DO636 ! END DO637 ! END FUNCTION maxval_ik638 639 611 END MODULE timeloop_gcm_mod
Note: See TracChangeset
for help on using the changeset viewer.