Changeset 1010


Ignore:
Timestamp:
Sep 20, 2012 7:59:54 AM (12 years ago)
Author:
raasch
Message:

pointer free version can be generated with cpp switch nopointer

Location:
palm/trunk/SOURCE
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/advec_s_bc.f90

    r623 r1010  
    44! Current revisions:
    55! -----------------
    6 !
     6! cpp switch __nopointer added for pointer free version
    77!
    88! Former revisions:
     
    6969             tendenz, t1, t2, zaehler
    7070    REAL ::  fmax(2), fmax_l(2)
     71#if defined( __nopointer )
     72    REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  sk
     73#else
    7174    REAL, DIMENSION(:,:,:), POINTER ::  sk
     75#endif
    7276
    7377    REAL, DIMENSION(:,:), ALLOCATABLE ::  a0, a1, a12, a2, a22, immb, imme,  &
  • palm/trunk/SOURCE/advec_s_pw.f90

    r484 r1010  
    44! Current revisions:
    55! -----------------
    6 !
     6! cpp switch __nopointer added for pointer free version
    77!
    88! Former revisions:
     
    5757       INTEGER ::  i, j, k
    5858
     59#if defined( __nopointer )
     60       REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  sk
     61#else
    5962       REAL, DIMENSION(:,:,:), POINTER ::  sk
     63#endif
    6064 
    6165
     
    9498       INTEGER ::  i, j, k
    9599
     100#if defined( __nopointer )
     101       REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  sk
     102#else
    96103       REAL, DIMENSION(:,:,:), POINTER ::  sk
     104#endif
    97105
    98106
  • palm/trunk/SOURCE/advec_s_up.f90

    r982 r1010  
    44! Current revisions:
    55! -----------------
     6! cpp switch __nopointer added for pointer free version
    67!
    78! Former revisions:
     
    5455
    5556       REAL ::  ukomp, vkomp, wkomp
     57#if defined( __nopointer )
     58       REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  sk
     59#else
    5660       REAL, DIMENSION(:,:,:), POINTER ::  sk
     61#endif
    5762
    5863
     
    113118
    114119       REAL ::  ukomp, vkomp, wkomp
     120#if defined( __nopointer )
     121       REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  sk
     122#else
    115123       REAL, DIMENSION(:,:,:), POINTER ::  sk
     124#endif
    116125
    117126
  • palm/trunk/SOURCE/advec_ws.f90

    r889 r1010  
    44! Current revisions:
    55! ------------------
     6! cpp switch __nopointer added for pointer free version
    67!
    78! Former revisions:
     
    280281                   ibit7, ibit8, i_omp, j, k, k_mm, k_pp, k_ppp,  tn
    281282       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,   &
    289294                                                          swap_flux_x_local
    290        CHARACTER (LEN = *), INTENT(IN)    :: sk_char
     295       CHARACTER (LEN = *), INTENT(IN)    ::  sk_char
    291296
    292297!
     
    19301935       INTEGER ::  i, ibit0, ibit1, ibit2, ibit3, ibit4, ibit5, ibit6,        &
    19311936                   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
    19321940       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
    19401949
    19411950!
  • palm/trunk/SOURCE/buoyancy.f90

    r623 r1010  
    44! Currrent revisions:
    55! -----------------
    6 !
     6! cpp switch __nopointer added for pointer free version
    77!
    88! Former revisions:
     
    8181       INTEGER ::  i, j, k, pr, wind_component
    8282       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
    8488
    8589
     
    177181       INTEGER ::  i, j, k, pr, wind_component
    178182       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
    180188
    181189
     
    254262
    255263       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
    257269
    258270!
  • palm/trunk/SOURCE/diffusion_e.f90

    r1002 r1010  
    44! Current revisions:
    55! -----------------
    6 !
     6! cpp switch __nopointer added for pointer free version
    77!
    88! Former revisions:
     
    8080       REAL    ::  dvar_dz, l_stable, phi_m, var_reference
    8181
     82#if defined( __nopointer )
     83       REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  var
     84#else
    8285       REAL, DIMENSION(:,:,:), POINTER ::  var
     86#endif
    8387       REAL, DIMENSION(nzb+1:nzt,nys:nyn) ::  dissipation, l, ll
    8488 
     
    298302       REAL    ::  dvar_dz, l_stable, phi_m, var_reference
    299303
     304#if defined( __nopointer )
     305       REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  var
     306#else
    300307       REAL, DIMENSION(:,:,:), POINTER ::  var
     308#endif
    301309       REAL, DIMENSION(nzb+1:nzt) ::  dissipation, l, ll
    302310
  • palm/trunk/SOURCE/diffusion_s.f90

    r1002 r1010  
    44! Current revisions:
    55! ------------------
    6 !
     6! cpp switch __nopointer added for pointer free version
    77!
    88! Former revisions:
     
    7171       REAL    ::  wall_s_flux(0:4)
    7272       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
    7376       REAL, DIMENSION(:,:,:), POINTER ::  s
     77#endif
    7478
    7579       DO  i = nxl, nxr
     
    181185       REAL    ::  wall_s_flux(0:4)
    182186       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
    183190       REAL, DIMENSION(:,:,:), POINTER ::  s
     191#endif
    184192
    185193!
  • palm/trunk/SOURCE/init_3d_model.f90

    r1004 r1010  
    77! Current revisions:
    88! ------------------
    9 !
     9! cpp switch __nopointer added for pointer free version
    1010!
    1111! Former revisions:
     
    238238              z0h(nysg:nyng,nxlg:nxrg) )
    239239
    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),   &
    259277              w_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     278#endif
     279
    260280!
    261281!-- Following array is required for perturbation pressure within the iterative
     
    280300!
    281301!--    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
    282307       ALLOCATE( q_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), &
    283308                 q_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg), &
    284309                 q_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     310#endif
    285311
    286312!
    287313!--    3D-arrays needed for humidity only
    288314       IF ( humidity )  THEN
     315#if defined( __nopointer )
     316          ALLOCATE( vpt(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     317#else
    289318          ALLOCATE( vpt_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     319#endif
    290320
    291321          IF ( cloud_physics ) THEN
    292322!
    293323!--          Liquid water content
     324#if defined( __nopointer )
     325             ALLOCATE ( ql(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     326#else
    294327             ALLOCATE ( ql_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     328#endif
    295329!
    296330!--          Precipitation amount and rate (only needed if output is switched)
     
    301335          IF ( cloud_droplets )  THEN
    302336!
    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
    305342             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), &
    308348                        ql_vp(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    309349          ENDIF
     
    316356       ALLOCATE( saswsb(nysg:nyng,nxlg:nxrg), &
    317357                 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
    318365       ALLOCATE( prho_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg), &
    319366                 rho_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg),  &
     
    324371       rho  => rho_1  ! routines calc_mean_profile and diffusion_e require
    325372                      ! density to be apointer
     373#endif
    326374       IF ( humidity_remote )  THEN
    327375          ALLOCATE( qswst_remote(nysg:nyng,nxlg:nxrg))
     
    412460
    413461
     462#if ! defined( __nopointer )
    414463!
    415464!-- Initial assignment of the pointers
     
    433482       sa => sa_1;  sa_p => sa_2;  tsa_m => sa_3
    434483    ENDIF
     484#endif
    435485
    436486!
  • palm/trunk/SOURCE/modules.f90

    r1004 r1010  
    44! Current revisions:
    55! -----------------
    6 !
     6! pointer free version can be generated with cpp switch __nopointer
    77!
    88! Former revisions:
     
    359359          v_m_s, w_m_l, w_m_n, w_m_r, w_m_s
    360360
     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
    361367    REAL, DIMENSION(:,:,:), ALLOCATABLE, TARGET ::                             &
    362368          e_1, e_2, e_3, p, prho_1, pt_1, pt_2, pt_3, q_1, q_2, q_3, ql_v,     &
     
    367373          e, e_p, prho, pt, pt_p, q, q_p, ql, ql_c, rho, sa, sa_p, te_m,       &
    368374          tpt_m, tq_m, tsa_m, tu_m, tv_m, tw_m, u, u_p, v, v_p, vpt, w, w_p
     375#endif
    369376
    370377    REAL, DIMENSION(:,:,:,:), ALLOCATABLE ::  rif_wall
     
    10211028
    10221029          CHARACTER (LEN=*), INTENT(IN)   ::  sk_char
     1030#if defined( __nopointer )
     1031          REAL, DIMENSION(:,:,:) ::  sk
     1032#else
    10231033          REAL, DIMENSION(:,:,:), POINTER ::  sk
    1024 
     1034#endif
    10251035       END SUBROUTINE advec_s_bc
    10261036
  • palm/trunk/SOURCE/swap_timelevel.f90

    r1002 r1010  
    44! Current revisions:
    55! -----------------
    6 !
     6! cpp switch __nopointer added for pointer free version
    77!
    88! Former revisions:
     
    4646    IMPLICIT NONE
    4747
    48 
    49     CALL cpu_log( log_point(28), 'swap_timelevel', 'start' )
    50 
    5148!
    5249!-- Incrementing timestep counter
     
    5552!
    5653!-- 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
    5775    SELECT CASE ( MOD( timestep_count, 2 ) )
    5876
     
    94112
    95113    CALL cpu_log( log_point(28), 'swap_timelevel', 'stop' )
     114#endif
    96115
    97116 END SUBROUTINE swap_timelevel
Note: See TracChangeset for help on using the changeset viewer.