source: palm/trunk/SOURCE/Makefile @ 1111

Last change on this file since 1111 was 1111, checked in by raasch, 9 years ago

New:
---

GPU porting of pres, swap_timelevel. Adjustments of openACC directives.
Further porting of poisfft, which now runs completely on GPU without any
host/device data transfer for serial an parallel runs (but parallel runs
require data transfer before and after the MPI transpositions).
GPU-porting of tridiagonal solver:
tridiagonal routines split into extermal subroutines (instead using CONTAINS),
no distinction between parallel/non-parallel in poisfft and tridia any more,
tridia routines moved to end of file because of probable bug in PGI compiler
(otherwise "invalid device function" is indicated during runtime).
(cuda_fft_interfaces, fft_xy, flow_statistics, init_3d_model, palm, poisfft, pres, prognostic_equations, swap_timelevel, time_integration, transpose)
output of accelerator board information. (header)

optimization of tridia routines: constant elements and coefficients of tri are
stored in seperate arrays ddzuw and tric, last dimension of tri reduced from 5 to 2,
(init_grid, init_3d_model, modules, palm, poisfft)

poisfft_init is now called internally from poisfft,
(Makefile, Makefile_check, init_pegrid, poisfft, poisfft_hybrid)

CPU-time per grid point and timestep is output to CPU_MEASURES file
(cpu_statistics, modules, time_integration)

Changed:


resorting from/to array work changed, work now has 4 dimensions instead of 1 (transpose)
array diss allocated only if required (init_3d_model)

pressure boundary condition "Neumann+inhomo" removed from the code
(check_parameters, header, poisfft, poisfft_hybrid, pres)

Errors:


bugfix: dependency added for cuda_fft_interfaces (Makefile)
bugfix: CUDA fft plans adjusted for domain decomposition (before they always
used total domain) (fft_xy)

  • Property svn:keywords set to Id
File size: 15.4 KB
Line 
1#--------------------------------------------------------------------------------#
2# This file is part of PALM.
3#
4# PALM is free software: you can redistribute it and/or modify it under the terms
5# of the GNU General Public License as published by the Free Software Foundation,
6# either version 3 of the License, or (at your option) any later version.
7#
8# PALM is distributed in the hope that it will be useful, but WITHOUT ANY
9# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
10# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
11#
12# You should have received a copy of the GNU General Public License along with
13# PALM. If not, see <http://www.gnu.org/licenses/>.
14#
15# Copyright 1997-2012  Leibniz University Hannover
16#--------------------------------------------------------------------------------#
17#
18# WARNING: don't write filenames with extension .f90 in this header!!!!
19#
20# Current revisions:
21# ------------------
22# dependencies removed from init_pegrid
23# bugfix: dependency added for cuda_fft_interfaces
24#
25# Former revisions:
26# -----------------
27# $Id: Makefile 1111 2013-03-08 23:54:10Z raasch $
28#
29# 1106 2013-03-04 05:31:38Z raasch
30# +cuda_fft_interfaces
31#
32# 1053 2012-11-13 17:11:03Z hoffmann
33# +microphysics for two-moment cloud physics
34#
35# 1036 2012-10-22 13:43:42Z raasch
36# code put under GPL (PALM 3.9)
37#
38# 1001 2012-09-13 14:08:46Z raasch
39# -asselin_filter, advec_s|u|v|w_ups, spline_x|y|z
40#
41# 872 2012-03-29 15:57:54Z franke
42# lpm depends on modules
43#
44# 849 2012-03-15 10:35:09Z raasch
45# +lpm_advec, lpm_data_output_particles, lpm_droplet_collision,
46# lpm_droplet_condensation,
47# lpm_exchange_horiz, lpm_extend_particle_array, lpm_extend_tails,
48# lpm_extend_tail_array, lpm_init_sgs_tke, lpm_pack_arrays,
49# lpm_read_restart_file, lpm_release_set, lpm_sort_arrays,
50# lpm_write_exchange_statistics, lpm_write_restart_file
51# advec_particles renamed lpm,
52# init_particles renamed lpm_init,
53# user_advec_particles renamed user_lpm_advec,
54# particle_boundary_conds renamed lpm_boundary_conds,
55# set_particle_attributes renamed lpm_set_attributes
56# user_init_particles renamed user_lpm_init,
57# user_particle_attributes renamed user_lpm_set_attributes
58#
59# 828 2012-02-21 12:00:36Z raasch
60# init_particles depends on lpm_collision_kernels
61#
62# 825 2012-02-19 03:03:44Z raasch
63# wang_kernel renamed lpm_collision_kernels
64#
65# 790 2011-11-29 03:11:20Z raasch
66# +wang_kernel
67#
68# 667 2010-12-23 12:06:00Z suehring/gryschka
69# +advec_ws
70#
71# 421 2010-01-25 15:50:10Z raasch
72# comment line for simple install method added, which will be replaced
73# by an include command for preprocessor and compiler options when the simple
74# install process is used instead of mbuild/mrun,
75# +set_particle_attributes, set_slicer_attributes_dvrp
76# +subsidence
77#
78# 410 2009-12-04 17:05:40Z letzel
79# +data_output_mask, init_masks, user_data_output_mask
80#
81# 217 2008-12-09 18:00:48Z letzel
82# former file user_interface split into one file per subroutine
83# +init_coupling, message
84#
85# 151 2008-03-07 13:42:18Z raasch
86# +plant_canopy_model, inflow_turbulence
87# +surface_coupler
88#
89# 96 2007-06-04 08:07:41Z raasch
90# +eqn_state_seawater, init_ocean
91#
92# 82 2007-04-16 15:40:52Z raasch
93# +local_flush
94#
95# 58 2007-03-09 14:27:38Z raasch
96# default suffixes removed from the suffix list to avoid calling of m2c in
97# case of .mod files
98# +wall_fluxes, +particle_boundary_conds
99#
100# RCS Log replace by Id keyword, revision history cleaned up
101#
102# Revision 1.13  2006/08/04 14:45:31  raasch
103# +data_output_ptseries
104#
105# Revision 1.1  2002/06/11 13:42:20  raasch
106# Initial revision
107#
108#
109# Description:
110# ------------
111# Makefile for the parallelized LES model (PALM) to be used by the
112# shellscript "mrun"
113#------------------------------------------------------------------------------!
114
115PROG =  palm
116
117RCS =   advec_s_bc.f90 advec_s_pw.f90 advec_s_up.f90 advec_ws.f90 \
118        advec_u_pw.f90 advec_u_up.f90 advec_v_pw.f90 advec_v_up.f90 \
119        advec_w_pw.f90 advec_w_up.f90 average_3d_data.f90 boundary_conds.f90 \
120        buoyancy.f90 calc_liquid_water_content.f90 calc_precipitation.f90 \
121        calc_radiation.f90 calc_spectra.f90 check_for_restart.f90 \
122        check_open.f90 check_parameters.f90 close_file.f90 compute_vpt.f90 \
123        coriolis.f90 cpu_log.f90 cpu_statistics.f90 cuda_fft_interfaces.f90 \
124        data_log.f90 \
125        data_output_dvrp.f90 data_output_mask.f90 data_output_profiles.f90 \
126        data_output_ptseries.f90 data_output_spectra.f90 \
127        data_output_tseries.f90 data_output_2d.f90 data_output_3d.f90 \
128        diffusion_e.f90 diffusion_s.f90 diffusion_u.f90 diffusion_v.f90 \
129        diffusion_w.f90 diffusivities.f90 disturb_field.f90 \
130        disturb_heatflux.f90 eqn_state_seawater.f90 exchange_horiz.f90 \
131        exchange_horiz_2d.f90 fft_xy.f90 flow_statistics.f90 \
132        global_min_max.f90 header.f90 impact_of_latent_heat.f90 \
133        inflow_turbulence.f90 init_1d_model.f90 init_3d_model.f90 \
134        init_advec.f90 init_cloud_physics.f90 init_coupling.f90 init_dvrp.f90 \
135        init_grid.f90 init_masks.f90 init_ocean.f90 \
136        init_pegrid.f90 init_pt_anomaly.f90 init_rankine.f90 init_slope.f90 \
137        interaction_droplets_ptq.f90 local_flush.f90 local_getenv.f90 \
138        local_stop.f90 local_system.f90 local_tremain.f90 \
139        local_tremain_ini.f90 lpm.f90 lpm_advec.f90 lpm_boundary_conds.f90 \
140        lpm_calc_liquid_water_content.f90 lpm_collision_kernels.f90 \
141        lpm_data_output_particles.f90 lpm_droplet_collision.f90 \
142        lpm_droplet_condensation.f90 lpm_exchange_horiz.f90 \
143        lpm_extend_particle_array.f90 lpm_extend_tails.f90 \
144        lpm_extend_tail_array.f90 lpm_init.f90 lpm_init_sgs_tke.f90 \
145        lpm_pack_arrays.f90 lpm_read_restart_file.f90 lpm_release_set.f90 \
146        lpm_set_attributes.f90 lpm_sort_arrays.f90 \
147        lpm_write_exchange_statistics.f90 lpm_write_restart_file.f90 \
148        message.f90 microphysics.f90 modules.f90 netcdf.f90 package_parin.f90 \
149        palm.f90 parin.f90 plant_canopy_model.f90 poisfft.f90 \
150        poisfft_hybrid.f90 poismg.f90 prandtl_fluxes.f90 pres.f90 print_1d.f90 \
151        production_e.f90 prognostic_equations.f90 random_function.f90 \
152        random_gauss.f90 read_3d_binary.f90 read_var_list.f90 run_control.f90 \
153        set_slicer_attributes_dvrp.f90 singleton.f90 sor.f90 \
154        subsidence.f90 sum_up_3d_data.f90 \
155        surface_coupler.f90 swap_timelevel.f90 temperton_fft.f90 \
156        time_integration.f90 time_to_string.f90 timestep.f90 \
157        timestep_scheme_steering.f90 transpose.f90 user_3d_data_averaging.f90 \
158        user_actions.f90 user_additional_routines.f90 \
159        user_check_data_output.f90 user_check_data_output_pr.f90 \
160        user_check_parameters.f90 user_data_output_2d.f90 \
161        user_data_output_3d.f90 user_data_output_dvrp.f90 \
162        user_data_output_mask.f90 user_define_netcdf_grid.f90 \
163        user_dvrp_coltab.f90 user_header.f90 user_init.f90 \
164        user_init_3d_model.f90 user_init_grid.f90 \
165        user_init_plant_canopy.f90 user_last_actions.f90 user_lpm_advec.f90 \
166        user_lpm_init.f90 user_lpm_set_attributes.f90 user_module.f90 \
167        user_parin.f90 user_read_restart_data.f90 \
168        user_spectra.f90 user_statistics.f90 wall_fluxes.f90 \
169        write_3d_binary.f90 write_compressed.f90 write_var_list.f90
170
171OBJS =  advec_s_bc.o advec_s_pw.o advec_s_up.o advec_u_pw.o advec_u_up.o \
172        advec_ws.o advec_v_pw.o advec_v_up.o advec_w_pw.o advec_w_up.o \
173        average_3d_data.o boundary_conds.o buoyancy.o \
174        calc_liquid_water_content.o calc_precipitation.o calc_radiation.o \
175        calc_spectra.o check_for_restart.o check_open.o check_parameters.o \
176        close_file.o compute_vpt.o coriolis.o cpu_log.o cpu_statistics.o \
177        cuda_fft_interfaces.o data_log.o data_output_dvrp.o data_output_mask.o \
178        data_output_profiles.o data_output_ptseries.o \
179        data_output_spectra.o data_output_tseries.o data_output_2d.o \
180        data_output_3d.o diffusion_e.o diffusion_s.o diffusion_u.o \
181        diffusion_v.o diffusion_w.o diffusivities.o disturb_field.o \
182        disturb_heatflux.o eqn_state_seawater.o exchange_horiz.o \
183        exchange_horiz_2d.o fft_xy.o flow_statistics.o global_min_max.o \
184        header.o impact_of_latent_heat.o inflow_turbulence.o init_1d_model.o \
185        init_3d_model.o init_advec.o init_cloud_physics.o init_coupling.o \
186        init_dvrp.o init_grid.o init_masks.o init_ocean.o init_pegrid.o \
187        init_pt_anomaly.o init_rankine.o init_slope.o \
188        interaction_droplets_ptq.o local_flush.o local_getenv.o local_stop.o \
189        local_system.o local_tremain.o local_tremain_ini.o lpm.o lpm_advec.o \
190        lpm_boundary_conds.o lpm_calc_liquid_water_content.o \
191        lpm_collision_kernels.o lpm_data_output_particles.o \
192        lpm_droplet_collision.o lpm_droplet_condensation.o \
193        lpm_exchange_horiz.o lpm_extend_particle_array.o lpm_extend_tails.o \
194        lpm_extend_tail_array.o lpm_init.o lpm_init_sgs_tke.o \
195        lpm_pack_arrays.o lpm_read_restart_file.o lpm_release_set.o \
196        lpm_set_attributes.o lpm_sort_arrays.o lpm_write_exchange_statistics.o \
197        lpm_write_restart_file.o message.o microphysics.o modules.o netcdf.o \
198        package_parin.o palm.o parin.o plant_canopy_model.o poisfft.o \
199        poisfft_hybrid.o poismg.o prandtl_fluxes.o pres.o print_1d.o \
200        production_e.o prognostic_equations.o random_function.o random_gauss.o \
201        read_3d_binary.o read_var_list.o run_control.o \
202        set_slicer_attributes_dvrp.o singleton.o sor.o \
203        subsidence.o sum_up_3d_data.o surface_coupler.o \
204        swap_timelevel.o temperton_fft.o time_integration.o time_to_string.o \
205        timestep.o timestep_scheme_steering.o transpose.o \
206        user_3d_data_averaging.o user_actions.o user_additional_routines.o \
207        user_check_data_output.o user_check_data_output_pr.o \
208        user_check_parameters.o user_data_output_2d.o user_data_output_3d.o \
209        user_data_output_mask.o user_data_output_dvrp.o \
210        user_define_netcdf_grid.o user_dvrp_coltab.o user_header.o \
211        user_init.o user_init_3d_model.o user_init_grid.o \
212        user_init_plant_canopy.o user_last_actions.o user_lpm_advec.o \
213        user_lpm_init.o user_lpm_set_attributes.o user_module.o user_parin.o \
214        user_read_restart_data.o user_spectra.o user_statistics.o \
215        wall_fluxes.o write_3d_binary.o write_compressed.o write_var_list.o
216
217CC = cc
218CFLAGS = -O
219
220F90 =
221COPT =
222F90FLAGS =
223LDFLAGS =
224
225#to_be_replaced_by_include
226
227.SUFFIXES:
228.SUFFIXES: .o .f90
229
230
231all: $(PROG)
232
233$(PROG): $(OBJS)
234        $(F90) -o $(PROG) $(OBJS) $(LDFLAGS)
235
236clean:
237        rm -f $(PROG) $(OBJS) *.mod *.i *.lst
238
239.f90.o:
240        $(F90) $(F90FLAGS) $(COPT) -c $<
241
242
243
244advec_particles.o: modules.o
245advec_s_bc.o: modules.o
246advec_s_pw.o: modules.o
247advec_s_up.o: modules.o
248advec_u_pw.o: modules.o
249advec_u_up.o: modules.o
250advec_v_pw.o: modules.o
251advec_v_up.o: modules.o
252advec_ws.o: modules.o
253advec_w_pw.o: modules.o
254advec_w_up.o: modules.o
255average_3d_data.o: modules.o
256boundary_conds.o: modules.o
257buoyancy.o: modules.o
258calc_liquid_water_content.o: modules.o
259calc_precipitation.o: modules.o
260calc_radiation.o: modules.o
261calc_spectra.o: modules.o fft_xy.o
262check_for_restart.o: modules.o
263check_open.o: modules.o
264check_parameters.o: modules.o subsidence.o
265close_file.o: modules.o
266compute_vpt.o: modules.o
267coriolis.o: modules.o
268cpu_log.o: modules.o
269cpu_statistics.o: modules.o
270cuda_fft_interfaces.o: cuda_fft_interfaces.f90 modules.o
271data_log.o: modules.o
272data_output_dvrp.o: modules.o
273data_output_mask.o: modules.o
274data_output_profiles.o: modules.o
275data_output_ptseries.o: modules.o
276data_output_spectra.o: modules.o
277data_output_tseries.o: modules.o
278data_output_2d.o: modules.o
279data_output_3d.o: modules.o
280diffusion_e.o: modules.o
281diffusion_s.o: modules.o
282diffusion_u.o: modules.o wall_fluxes.o
283diffusion_v.o: modules.o wall_fluxes.o
284diffusion_w.o: modules.o wall_fluxes.o
285diffusivities.o: modules.o
286disturb_field.o: modules.o random_function.o
287disturb_heatflux.o: modules.o
288eqn_state_seawater.o: modules.o
289exchange_horiz.o: modules.o
290exchange_horiz_2d.o: modules.o
291fft_xy.o: cuda_fft_interfaces.o modules.o singleton.o temperton_fft.o
292flow_statistics.o: modules.o
293global_min_max.o: modules.o
294header.o: modules.o subsidence.o
295impact_of_latent_heat.o: modules.o
296inflow_turbulence.o: modules.o
297init_1d_model.o: modules.o
298init_3d_model.o: modules.o random_function.o advec_ws.o
299init_advec.o: modules.o
300init_cloud_physics.o: modules.o
301init_coupling.o: modules.o
302init_dvrp.o: modules.o
303init_grid.o: modules.o
304init_masks.o: modules.o
305init_ocean.o: modules.o eqn_state_seawater.o
306init_pegrid.o: modules.o
307init_pt_anomaly.o: modules.o
308init_rankine.o: modules.o
309init_slope.o: modules.o
310interaction_droplets_ptq.o: modules.o
311local_getenv.o: modules.o
312local_stop.o: modules.o
313local_tremain.o: modules.o
314local_tremain_ini.o: modules.o
315lpm.o: modules.o
316lpm_advec.o: modules.o
317lpm_boundary_conds.o: modules.o
318lpm_calc_liquid_water_content.o: modules.o
319lpm_collision_kernels.o: modules.o user_module.o
320lpm_data_output_particles.o: modules.o
321lpm_droplet_collision.o: modules.o lpm_collision_kernels.o
322lpm_droplet_condensation.o: modules.o lpm_collision_kernels.o
323lpm_exchange_horiz.o: modules.o
324lpm_extend_particle_array.o: modules.o
325lpm_extend_tails.o: modules.o
326lpm_extend_tail_array.o: modules.o
327lpm_init.o: modules.o lpm_collision_kernels.o random_function.o
328lpm_init_sgs_tke.o: modules.o
329lpm_pack_arrays.o: modules.o
330lpm_read_restart_file.o: modules.o
331lpm_release_set.o: modules.o random_function.o
332lpm_set_attributes.o: modules.o
333lpm_sort_arrays.o: modules.o
334lpm_write_exchange_statistics.o: modules.o
335lpm_write_restart_file.o: modules.o
336message.o: modules.o
337microphysics.o: modules.o
338modules.o: modules.f90
339netcdf.o: modules.o
340package_parin.o: modules.o
341palm.o: modules.o
342parin.o: modules.o
343plant_canopy_model.o: modules.o
344poisfft.o: modules.o fft_xy.o
345poisfft_hybrid.o: modules.o fft_xy.o
346poismg.o: modules.o
347prandtl_fluxes.o: modules.o
348pres.o: modules.o poisfft.o poisfft_hybrid.o
349print_1d.o: modules.o
350production_e.o: modules.o wall_fluxes.o
351prognostic_equations.o: modules.o advec_s_pw.o advec_s_up.o advec_u_pw.o \
352        advec_ws.o \
353        advec_u_up.o advec_v_pw.o advec_v_up.o advec_w_pw.o advec_w_up.o  \
354        buoyancy.o calc_precipitation.o calc_radiation.o coriolis.o \
355        diffusion_e.o diffusion_s.o diffusion_u.o diffusion_v.o diffusion_w.o \
356        eqn_state_seawater.o impact_of_latent_heat.o \
357        plant_canopy_model.o production_e.o \
358        subsidence.o user_actions.o \
359        microphysics.o
360random_gauss.o: random_function.o
361read_3d_binary.o: modules.o random_function.o
362read_var_list.o: modules.o
363run_control.o: modules.o
364set_slicer_attributes_dvrp.o: modules.o
365singleton.o: singleton.f90
366sor.o: modules.o
367subsidence.o: modules.o
368sum_up_3d_data.o: modules.o
369surface_coupler.o: modules.o
370swap_timelevel.o: modules.o
371temperton_fft.o: modules.o
372time_integration.o: modules.o prognostic_equations.o user_actions.o \
373        interaction_droplets_ptq.o
374timestep.o: modules.o
375timestep_scheme_steering.o: modules.o
376transpose.o: modules.o
377user_3d_data_averaging.o: modules.o user_module.o
378user_actions.o: modules.o user_module.o
379user_additional_routines.o: modules.o user_module.o
380user_check_data_output.o: modules.o user_module.o
381user_check_data_output_pr.o: modules.o user_module.o
382user_check_parameters.o: modules.o user_module.o
383user_data_output_2d.o: modules.o user_module.o
384user_data_output_3d.o: modules.o user_module.o
385user_data_output_mask.o: modules.o user_module.o
386user_data_output_dvrp.o: modules.o user_module.o
387user_define_netcdf_grid.o: modules.o user_module.o
388user_dvrp_coltab.o: modules.o user_module.o
389user_header.o: modules.o user_module.o
390user_init.o: modules.o user_module.o
391user_init_3d_model.o: modules.o user_module.o
392user_init_grid.o: modules.o user_module.o
393user_init_plant_canopy.o: modules.o user_module.o
394user_last_actions.o: modules.o user_module.o
395user_lpm_advec.o: modules.o user_module.o
396user_lpm_init.o: modules.o user_module.o
397user_lpm_set_attributes.o: modules.o user_module.o
398user_module.o: user_module.f90
399user_parin.o: modules.o user_module.o
400user_read_restart_data.o: modules.o user_module.o
401user_spectra.o: modules.o user_module.o
402user_statistics.o: modules.o user_module.o
403wall_fluxes.o: modules.o
404write_3d_binary.o: modules.o random_function.o
405write_compressed.o: modules.o
406write_var_list.o: modules.o
Note: See TracBrowser for help on using the repository browser.