Changeset 1010 for palm/trunk/SOURCE
- Timestamp:
- Sep 20, 2012 7:59:54 AM (12 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/advec_s_bc.f90
r623 r1010 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! cpp switch __nopointer added for pointer free version 7 7 ! 8 8 ! Former revisions: … … 69 69 tendenz, t1, t2, zaehler 70 70 REAL :: fmax(2), fmax_l(2) 71 #if defined( __nopointer ) 72 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: sk 73 #else 71 74 REAL, DIMENSION(:,:,:), POINTER :: sk 75 #endif 72 76 73 77 REAL, DIMENSION(:,:), ALLOCATABLE :: a0, a1, a12, a2, a22, immb, imme, & -
palm/trunk/SOURCE/advec_s_pw.f90
r484 r1010 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! cpp switch __nopointer added for pointer free version 7 7 ! 8 8 ! Former revisions: … … 57 57 INTEGER :: i, j, k 58 58 59 #if defined( __nopointer ) 60 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: sk 61 #else 59 62 REAL, DIMENSION(:,:,:), POINTER :: sk 63 #endif 60 64 61 65 … … 94 98 INTEGER :: i, j, k 95 99 100 #if defined( __nopointer ) 101 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: sk 102 #else 96 103 REAL, DIMENSION(:,:,:), POINTER :: sk 104 #endif 97 105 98 106 -
palm/trunk/SOURCE/advec_s_up.f90
r982 r1010 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! cpp switch __nopointer added for pointer free version 6 7 ! 7 8 ! Former revisions: … … 54 55 55 56 REAL :: ukomp, vkomp, wkomp 57 #if defined( __nopointer ) 58 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: sk 59 #else 56 60 REAL, DIMENSION(:,:,:), POINTER :: sk 61 #endif 57 62 58 63 … … 113 118 114 119 REAL :: ukomp, vkomp, wkomp 120 #if defined( __nopointer ) 121 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: sk 122 #else 115 123 REAL, DIMENSION(:,:,:), POINTER :: sk 124 #endif 116 125 117 126 -
palm/trunk/SOURCE/advec_ws.f90
r889 r1010 4 4 ! Current revisions: 5 5 ! ------------------ 6 ! cpp switch __nopointer added for pointer free version 6 7 ! 7 8 ! Former revisions: … … 280 281 ibit7, ibit8, i_omp, j, k, k_mm, k_pp, k_ppp, tn 281 282 REAL :: diss_d, div, flux_d, u_comp, v_comp 282 REAL, DIMENSION(:,:,:), POINTER :: sk 283 REAL, DIMENSION(nzb:nzt+1) :: diss_n, diss_r, diss_t, flux_n, & 284 flux_r, flux_t 285 REAL, DIMENSION(nzb+1:nzt,0:threads_per_task-1) :: swap_diss_y_local, & 286 swap_flux_y_local 287 REAL, DIMENSION(nzb+1:nzt,nys:nyn,0:threads_per_task-1) :: & 288 swap_diss_x_local, & 283 #if defined( __nopointer ) 284 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: sk 285 #else 286 REAL, DIMENSION(:,:,:), POINTER :: sk 287 #endif 288 REAL, DIMENSION(nzb:nzt+1) :: diss_n, diss_r, diss_t, flux_n, & 289 flux_r, flux_t 290 REAL, DIMENSION(nzb+1:nzt,0:threads_per_task-1) :: swap_diss_y_local, & 291 swap_flux_y_local 292 REAL, DIMENSION(nzb+1:nzt,nys:nyn,0:threads_per_task-1) :: & 293 swap_diss_x_local, & 289 294 swap_flux_x_local 290 CHARACTER (LEN = *), INTENT(IN) :: sk_char295 CHARACTER (LEN = *), INTENT(IN) :: sk_char 291 296 292 297 ! … … 1930 1935 INTEGER :: i, ibit0, ibit1, ibit2, ibit3, ibit4, ibit5, ibit6, & 1931 1936 ibit7, ibit8, j, k, k_mm, k_pp, k_ppp, tn = 0 1937 #if defined( __nopointer ) 1938 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: sk 1939 #else 1932 1940 REAL, DIMENSION(:,:,:), POINTER :: sk 1933 REAL :: diss_d, div, flux_d, u_comp, v_comp 1934 REAL, DIMENSION(nzb:nzt) :: diss_n, diss_r, diss_t, flux_n, flux_r, & 1935 flux_t 1936 REAL, DIMENSION(nzb+1:nzt) :: swap_diss_y_local, swap_flux_y_local 1937 REAL, DIMENSION(nzb+1:nzt,nys:nyn) :: swap_diss_x_local, & 1938 swap_flux_x_local 1939 CHARACTER (LEN = *), INTENT(IN) :: sk_char 1941 #endif 1942 REAL :: diss_d, div, flux_d, u_comp, v_comp 1943 REAL, DIMENSION(nzb:nzt) :: diss_n, diss_r, diss_t, flux_n, flux_r, & 1944 flux_t 1945 REAL, DIMENSION(nzb+1:nzt) :: swap_diss_y_local, swap_flux_y_local 1946 REAL, DIMENSION(nzb+1:nzt,nys:nyn) :: swap_diss_x_local, & 1947 swap_flux_x_local 1948 CHARACTER (LEN = *), INTENT(IN) :: sk_char 1940 1949 1941 1950 ! -
palm/trunk/SOURCE/buoyancy.f90
r623 r1010 4 4 ! Currrent revisions: 5 5 ! ----------------- 6 ! 6 ! cpp switch __nopointer added for pointer free version 7 7 ! 8 8 ! Former revisions: … … 81 81 INTEGER :: i, j, k, pr, wind_component 82 82 REAL :: var_reference 83 REAL, DIMENSION(:,:,:), POINTER :: var 83 #if defined( __nopointer ) 84 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: var 85 #else 86 REAL, DIMENSION(:,:,:), POINTER :: var 87 #endif 84 88 85 89 … … 177 181 INTEGER :: i, j, k, pr, wind_component 178 182 REAL :: var_reference 179 REAL, DIMENSION(:,:,:), POINTER :: var 183 #if defined( __nopointer ) 184 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: var 185 #else 186 REAL, DIMENSION(:,:,:), POINTER :: var 187 #endif 180 188 181 189 … … 254 262 255 263 INTEGER :: i, j, k, omp_get_thread_num, pr, tn 256 REAL, DIMENSION(:,:,:), POINTER :: var 264 #if defined( __nopointer ) 265 REAL, DIMENSION(:,:,:) :: var 266 #else 267 REAL, DIMENSION(:,:,:), POINTER :: var 268 #endif 257 269 258 270 ! -
palm/trunk/SOURCE/diffusion_e.f90
r1002 r1010 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! cpp switch __nopointer added for pointer free version 7 7 ! 8 8 ! Former revisions: … … 80 80 REAL :: dvar_dz, l_stable, phi_m, var_reference 81 81 82 #if defined( __nopointer ) 83 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: var 84 #else 82 85 REAL, DIMENSION(:,:,:), POINTER :: var 86 #endif 83 87 REAL, DIMENSION(nzb+1:nzt,nys:nyn) :: dissipation, l, ll 84 88 … … 298 302 REAL :: dvar_dz, l_stable, phi_m, var_reference 299 303 304 #if defined( __nopointer ) 305 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: var 306 #else 300 307 REAL, DIMENSION(:,:,:), POINTER :: var 308 #endif 301 309 REAL, DIMENSION(nzb+1:nzt) :: dissipation, l, ll 302 310 -
palm/trunk/SOURCE/diffusion_s.f90
r1002 r1010 4 4 ! Current revisions: 5 5 ! ------------------ 6 ! 6 ! cpp switch __nopointer added for pointer free version 7 7 ! 8 8 ! Former revisions: … … 71 71 REAL :: wall_s_flux(0:4) 72 72 REAL, DIMENSION(nysg:nyng,nxlg:nxrg) :: s_flux_b, s_flux_t 73 #if defined( __nopointer ) 74 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: s 75 #else 73 76 REAL, DIMENSION(:,:,:), POINTER :: s 77 #endif 74 78 75 79 DO i = nxl, nxr … … 181 185 REAL :: wall_s_flux(0:4) 182 186 REAL, DIMENSION(nysg:nyng,nxlg:nxrg) :: s_flux_b, s_flux_t 187 #if defined( __nopointer ) 188 REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: s 189 #else 183 190 REAL, DIMENSION(:,:,:), POINTER :: s 191 #endif 184 192 185 193 ! -
palm/trunk/SOURCE/init_3d_model.f90
r1004 r1010 7 7 ! Current revisions: 8 8 ! ------------------ 9 ! 9 ! cpp switch __nopointer added for pointer free version 10 10 ! 11 11 ! Former revisions: … … 238 238 z0h(nysg:nyng,nxlg:nxrg) ) 239 239 240 ALLOCATE( d(nzb+1:nzt,nys:nyn,nxl:nxr), & 241 e_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 242 e_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 243 e_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 244 kh(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 245 km(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 246 p(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 247 pt_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 248 pt_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 249 pt_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 250 tend(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 251 u_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 252 u_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 253 u_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 254 v_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 255 v_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 256 v_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 257 w_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 258 w_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 240 ALLOCATE( d(nzb+1:nzt,nys:nyn,nxl:nxr), & 241 kh(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 242 km(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 243 p(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 244 tend(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 245 246 #if defined( __nopointer ) 247 ALLOCATE( e(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 248 e_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 249 pt(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 250 pt_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 251 u(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 252 u_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 253 v(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 254 v_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 255 w(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 256 w_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 257 te_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 258 tpt_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 259 tu_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 260 tv_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 261 tw_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 262 #else 263 ALLOCATE( e_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 264 e_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 265 e_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 266 pt_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 267 pt_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 268 pt_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 269 u_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 270 u_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 271 u_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 272 v_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 273 v_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 274 v_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 275 w_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 276 w_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 259 277 w_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 278 #endif 279 260 280 ! 261 281 !-- Following array is required for perturbation pressure within the iterative … … 280 300 ! 281 301 !-- 3D-humidity/scalar arrays 302 #if defined( __nopointer ) 303 ALLOCATE( q(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 304 q_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 305 tq_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 306 #else 282 307 ALLOCATE( q_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 283 308 q_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 284 309 q_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 310 #endif 285 311 286 312 ! 287 313 !-- 3D-arrays needed for humidity only 288 314 IF ( humidity ) THEN 315 #if defined( __nopointer ) 316 ALLOCATE( vpt(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 317 #else 289 318 ALLOCATE( vpt_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 319 #endif 290 320 291 321 IF ( cloud_physics ) THEN 292 322 ! 293 323 !-- Liquid water content 324 #if defined( __nopointer ) 325 ALLOCATE ( ql(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 326 #else 294 327 ALLOCATE ( ql_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 328 #endif 295 329 ! 296 330 !-- Precipitation amount and rate (only needed if output is switched) … … 301 335 IF ( cloud_droplets ) THEN 302 336 ! 303 !-- Liquid water content, change in liquid water content, 304 !-- real volume of particles (with weighting), volume of particles 337 !-- Liquid water content, change in liquid water content 338 #if defined( __nopointer ) 339 ALLOCATE ( ql(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 340 ql_c(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 341 #else 305 342 ALLOCATE ( ql_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 306 ql_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 307 ql_v(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 343 ql_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 344 #endif 345 ! 346 !-- Real volume of particles (with weighting), volume of particles 347 ALLOCATE ( ql_v(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 308 348 ql_vp(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 309 349 ENDIF … … 316 356 ALLOCATE( saswsb(nysg:nyng,nxlg:nxrg), & 317 357 saswst(nysg:nyng,nxlg:nxrg) ) 358 #if defined( __nopointer ) 359 ALLOCATE( prho(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 360 rho(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 361 sa(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 362 sa_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 363 tsa_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 364 #else 318 365 ALLOCATE( prho_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & 319 366 rho_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & … … 324 371 rho => rho_1 ! routines calc_mean_profile and diffusion_e require 325 372 ! density to be apointer 373 #endif 326 374 IF ( humidity_remote ) THEN 327 375 ALLOCATE( qswst_remote(nysg:nyng,nxlg:nxrg)) … … 412 460 413 461 462 #if ! defined( __nopointer ) 414 463 ! 415 464 !-- Initial assignment of the pointers … … 433 482 sa => sa_1; sa_p => sa_2; tsa_m => sa_3 434 483 ENDIF 484 #endif 435 485 436 486 ! -
palm/trunk/SOURCE/modules.f90
r1004 r1010 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! pointer free version can be generated with cpp switch __nopointer 7 7 ! 8 8 ! Former revisions: … … 359 359 v_m_s, w_m_l, w_m_n, w_m_r, w_m_s 360 360 361 #if defined( __nopointer ) 362 REAL, DIMENSION(:,:,:), ALLOCATABLE, TARGET :: & 363 e, e_p, p, prho, pt, pt_p, q, q_p, ql, ql_c, ql_v, ql_vp, rho, sa, & 364 sa_p, te_m, tpt_m, tq_m, tsa_m, tu_m, tv_m, tw_m, u, u_p, v, v_p, & 365 vpt, w, w_p 366 #else 361 367 REAL, DIMENSION(:,:,:), ALLOCATABLE, TARGET :: & 362 368 e_1, e_2, e_3, p, prho_1, pt_1, pt_2, pt_3, q_1, q_2, q_3, ql_v, & … … 367 373 e, e_p, prho, pt, pt_p, q, q_p, ql, ql_c, rho, sa, sa_p, te_m, & 368 374 tpt_m, tq_m, tsa_m, tu_m, tv_m, tw_m, u, u_p, v, v_p, vpt, w, w_p 375 #endif 369 376 370 377 REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: rif_wall … … 1021 1028 1022 1029 CHARACTER (LEN=*), INTENT(IN) :: sk_char 1030 #if defined( __nopointer ) 1031 REAL, DIMENSION(:,:,:) :: sk 1032 #else 1023 1033 REAL, DIMENSION(:,:,:), POINTER :: sk 1024 1034 #endif 1025 1035 END SUBROUTINE advec_s_bc 1026 1036 -
palm/trunk/SOURCE/swap_timelevel.f90
r1002 r1010 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! cpp switch __nopointer added for pointer free version 7 7 ! 8 8 ! Former revisions: … … 46 46 IMPLICIT NONE 47 47 48 49 CALL cpu_log( log_point(28), 'swap_timelevel', 'start' )50 51 48 ! 52 49 !-- Incrementing timestep counter … … 55 52 ! 56 53 !-- Swap of variables 54 #if defined( __nopointer ) 55 CALL cpu_log( log_point(28), 'swap_timelevel (nop)', 'start' ) 56 57 u = u_p 58 v = v_p 59 w = w_p 60 pt = pt_p 61 IF ( .NOT. constant_diffusion ) THEN 62 e = e_p 63 ENDIF 64 IF ( ocean ) THEN 65 sa = sa_p 66 ENDIF 67 IF ( humidity .OR. passive_scalar ) THEN 68 q = q_p 69 ENDIF 70 71 CALL cpu_log( log_point(28), 'swap_timelevel (nop)', 'stop' ) 72 #else 73 CALL cpu_log( log_point(28), 'swap_timelevel', 'start' ) 74 57 75 SELECT CASE ( MOD( timestep_count, 2 ) ) 58 76 … … 94 112 95 113 CALL cpu_log( log_point(28), 'swap_timelevel', 'stop' ) 114 #endif 96 115 97 116 END SUBROUTINE swap_timelevel
Note: See TracChangeset
for help on using the changeset viewer.