INFO: No output directory specified (--dir) INFO: Using directory: "NCrystal_example_20260318_021036" INFO: Regenerating c-file: NCrystal_example.c DEBUG: CMD: /u/data/pkwi/McStas/mcstas/3.x-dev/bin/mcstas -t -o ./NCrystal_example.c NCrystal_example.instr CFLAGS= @NCRYSTALFLAGS@ -DFUNNEL ----------------------------------------------------------- Generating single GPU kernel or single CPU section layout: -> SPLIT N at component monochromator -> SPLIT N at component powder_sample ----------------------------------------------------------- Generating GPU/CPU -DFUNNEL layout: Component monochromator is NOACC, CPUONLY=1 -> FUNNEL mode enabled, SPLIT within buffer. -> SPLIT within buffer at component monochromator -> GPU kernel from component mono_out Component powder_sample is NOACC, CPUONLY=1 -> FUNNEL mode enabled, SPLIT within buffer. -> SPLIT within buffer at component powder_sample -> GPU kernel from component powder_pattern_detc ----------------------------------------------------------- DEBUG: CMD: /u/data/pkwi/McStas/mcstas/3.x-dev/bin/mcstas finished INFO: Recompiling: ./NCrystal_example.out --> launching cmd: ncrystal-config --show buildflags DEBUG: CMD: nvc -o ./NCrystal_example.out ./NCrystal_example.c -lm -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib -Wl,-rpath-link,/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib -L/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib -mtune=haswell -fPIC -O2 -isystem /u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/include -DUSE_MPI -lmpi -Wl,-rpath,/opt/nvidia/hpc_sdk/Linux_x86_64/25.9/comm_libs/12.9/openmpi4/openmpi-4.1.5/lib -L,/opt/nvidia/hpc_sdk/Linux_x86_64/25.9/comm_libs/12.9/openmpi4/openmpi-4.1.5/lib -I/opt/nvidia/hpc_sdk/Linux_x86_64/25.9/comm_libs/12.9/openmpi4/openmpi-4.1.5/include -fast -Minfo=accel -acc=gpu -gpu=mem:managed -DOPENACC -Wl,-rpath,/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib -Wl,/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib/libNCrystal.so -I/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/include -DFUNNEL "./NCrystal_example.c", line 88: warning: Routine "mcgenstate" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] _class_particle mcgenstate(void); ^ Remark: individual warnings can be suppressed with "--diag_suppress " "./NCrystal_example.c", line 90: warning: Routine "mcsetstate" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] _class_particle mcsetstate(double x, double y, double z, double vx, double vy, double vz, ^ "./NCrystal_example.c", line 93: warning: Routine "mcgetstate" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] _class_particle mcgetstate(_class_particle mcneutron, double *x, double *y, double *z, ^ "./NCrystal_example.c", line 107: warning: Routine "particle_getvar" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double particle_getvar(_class_particle *p, char *name, int *suc); ^ "./NCrystal_example.c", line 111: warning: Routine "str_comp" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] int str_comp(char *str1, char *str2); ^ "./NCrystal_example.c", line 139: warning: Routine "particle_getvar_void" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] void* particle_getvar_void(_class_particle *p, char *name, int *suc); ^ "./NCrystal_example.c", line 111: warning: Routine "str_comp" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] int str_comp(char *str1, char *str2); ^ "./NCrystal_example.c", line 168: warning: Routine "particle_setvar_void" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] int particle_setvar_void(_class_particle *, char *, void*); ^ "./NCrystal_example.c", line 190: warning: Routine "particle_setvar_void_array" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] int particle_setvar_void_array(_class_particle *, char *, void*, int); ^ "./NCrystal_example.c", line 201: warning: Routine "particle_restore" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] void particle_restore(_class_particle *p, _class_particle *p0); ^ "./NCrystal_example.c", line 212: warning: Routine "particle_getuservar_byid" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double particle_getuservar_byid(_class_particle *p, int id, int *suc){ ^ "./NCrystal_example.c", line 222: warning: Routine "particle_uservar_init" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] void particle_uservar_init(_class_particle *p){ ^ "./NCrystal_example.c", line 289: warning: Routine "noprintf" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] int noprintf(); ^ "./NCrystal_example.c", line 291: warning: Routine "str_len" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] size_t str_len(const char *s); ^ "./NCrystal_example.c", line 642: warning: Routine "mcget_ncount" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] unsigned long long int mcget_ncount(void); /* wrapper to set mcncount */ ^ "./NCrystal_example.c", line 863: warning: Routine "_randnorm2" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _randnorm2(randstate_t* state); ^ "./NCrystal_example.c", line 880: warning: Routine "kiss_srandom" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] uint64_t *kiss_srandom(uint64_t state[7], uint64_t seed); ^ "./NCrystal_example.c", line 882: warning: Routine "kiss_random" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] uint64_t kiss_random(uint64_t state[7]); ^ "./NCrystal_example.c", line 890: warning: Routine "_rand01" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _rand01(randstate_t* state); ^ "./NCrystal_example.c", line 892: warning: Routine "_randpm1" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _randpm1(randstate_t* state); ^ "./NCrystal_example.c", line 894: warning: Routine "_rand0max" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _rand0max(double max, randstate_t* state); ^ "./NCrystal_example.c", line 896: warning: Routine "_randminmax" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _randminmax(double min, double max, randstate_t* state); ^ "./NCrystal_example.c", line 898: warning: Routine "_randtriangle" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _randtriangle(randstate_t* state); ^ "./NCrystal_example.c", line 994: warning: Routine "coords_set" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_set(MCNUM x, MCNUM y, MCNUM z); ^ "./NCrystal_example.c", line 996: warning: Routine "coords_get" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_get(Coords a, MCNUM *x, MCNUM *y, MCNUM *z); ^ "./NCrystal_example.c", line 998: warning: Routine "coords_add" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_add(Coords a, Coords b); ^ "./NCrystal_example.c", line 1000: warning: Routine "coords_sub" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_sub(Coords a, Coords b); ^ "./NCrystal_example.c", line 1002: warning: Routine "coords_neg" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_neg(Coords a); ^ "./NCrystal_example.c", line 1004: warning: Routine "coords_scale" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_scale(Coords b, double scale); ^ "./NCrystal_example.c", line 1006: warning: Routine "coords_sp" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double coords_sp(Coords a, Coords b); ^ "./NCrystal_example.c", line 1008: warning: Routine "coords_xp" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_xp(Coords b, Coords c); ^ "./NCrystal_example.c", line 1010: warning: Routine "coords_len" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double coords_len(Coords a); ^ "./NCrystal_example.c", line 4625: warning: variable "num" was declared but never referenced [declared_but_not_referenced] int num = 3; ^ "./NCrystal_example.c", line 5080: warning: variable "randstate" was declared but never referenced [declared_but_not_referenced] randstate_t randstate[7]; ^ "./NCrystal_example.c", line 4999: warning: variable "newlen" was declared but never referenced [declared_but_not_referenced] long newlen = 0; ^ "./NCrystal_example.c", line 6326: warning: variable "status" was set but never used [set_but_not_used] int status; ^ "./NCrystal_example.c", line 7064: warning: missing return statement at end of non-void function "ncrystalsample_surfintersect" [implicit_return_from_non_void_function] } ^ "./NCrystal_example.c", line 7316: warning: variable "tc2" was set but never used [set_but_not_used] Coords tc1, tc2; ^ "./NCrystal_example.c", line 7304: warning: variable "current_setpos_index" was declared but never referenced [declared_but_not_referenced] int current_setpos_index = 1; ^ "./NCrystal_example.c", line 7361: warning: variable "current_setpos_index" was declared but never referenced [declared_but_not_referenced] int current_setpos_index = 2; ^ "./NCrystal_example.c", line 7432: warning: variable "current_setpos_index" was declared but never referenced [declared_but_not_referenced] int current_setpos_index = 3; ^ "./NCrystal_example.c", line 7481: warning: variable "current_setpos_index" was declared but never referenced [declared_but_not_referenced] int current_setpos_index = 4; ^ "./NCrystal_example.c", line 7549: warning: variable "current_setpos_index" was declared but never referenced [declared_but_not_referenced] int current_setpos_index = 5; ^ "./NCrystal_example.c", line 7598: warning: variable "current_setpos_index" was declared but never referenced [declared_but_not_referenced] int current_setpos_index = 6; ^ "./NCrystal_example.c", line 7666: warning: variable "current_setpos_index" was declared but never referenced [declared_but_not_referenced] int current_setpos_index = 7; ^ "./NCrystal_example.c", line 8068: warning: incompatible redefinition of macro "exit" (declared at line 621) [bad_macro_redef] #define exit(...) noprintf() ^ "./NCrystal_example.c", line 8080: warning: Routine "class_Progress_bar_trace" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] void class_Progress_bar_trace(_class_Progress_bar *_comp ^ "./NCrystal_example.c", line 8159: warning: Routine "class_Source_div_trace" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] void class_Source_div_trace(_class_Source_div *_comp ^ "./NCrystal_example.c", line 8416: warning: Routine "class_Cyl_monitor_trace" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] void class_Cyl_monitor_trace(_class_Cyl_monitor *_comp ^ "./NCrystal_example.c", line 8432: warning: variable "j" was declared but never referenced [declared_but_not_referenced] int i, j; ^ "./NCrystal_example.c", line 8877: warning: variable "_particle_save" was declared but never referenced [declared_but_not_referenced] _class_particle _particle_save; ^ "./NCrystal_example.c", line 9665: warning: variable "t" was declared but never referenced [declared_but_not_referenced] time_t t; ^ "./NCrystal_example.c", line 9666: warning: variable "ct" was set but never used [set_but_not_used] clock_t ct; ^ "./NCrystal_example.c", line 1502: warning: variable "mcstartdate" was set but never used [set_but_not_used] static long mcstartdate = 0; /* start simulation time */ ^ "./NCrystal_example.c", line 2971: warning: function "strcpy_valid" was declared but never referenced [declared_but_not_referenced] static char *strcpy_valid(char *valid, char *original) ^ mcgenstate: 100, Generating acc routine seq Generating NVIDIA GPU code particle_getvar: 114, Generating acc routine seq Generating NVIDIA GPU code particle_getvar_void: 146, Generating acc routine seq Generating NVIDIA GPU code particle_setvar_void: 170, Generating acc routine seq Generating NVIDIA GPU code particle_setvar_void_array: 192, Generating acc routine seq Generating NVIDIA GPU code particle_restore: 203, Generating acc routine seq Generating NVIDIA GPU code particle_getuservar_byid: 212, Generating acc routine seq Generating NVIDIA GPU code particle_uservar_init: 222, Generating acc routine seq Generating NVIDIA GPU code noprintf: 1550, Generating acc routine seq Generating NVIDIA GPU code str_comp: 1554, Generating acc routine seq Generating NVIDIA GPU code str_len: 1563, Generating acc routine seq Generating NVIDIA GPU code mcget_ncount: 4243, Generating acc routine seq Generating NVIDIA GPU code coords_set: 4677, Generating acc routine seq Generating NVIDIA GPU code coords_get: 4688, Generating acc routine seq Generating NVIDIA GPU code coords_add: 4697, Generating acc routine seq Generating NVIDIA GPU code coords_sub: 4709, Generating acc routine seq Generating NVIDIA GPU code coords_neg: 4721, Generating acc routine seq Generating NVIDIA GPU code coords_scale: 4731, Generating acc routine seq Generating NVIDIA GPU code coords_sp: 4741, Generating acc routine seq Generating NVIDIA GPU code coords_xp: 4749, Generating acc routine seq Generating NVIDIA GPU code coords_len: 4759, Generating acc routine seq Generating NVIDIA GPU code coords_print: 4781, Generating acc routine seq Generating NVIDIA GPU code coords_norm: 4788, Generating acc routine seq Generating NVIDIA GPU code rot_set_rotation: 4834, Generating acc routine seq Generating NVIDIA GPU code rot_test_identity: 4869, Generating acc routine seq Generating NVIDIA GPU code rot_mul: 4880, Generating acc routine seq Generating NVIDIA GPU code rot_copy: 4897, Generating acc routine seq Generating NVIDIA GPU code rot_transpose: 4908, Generating acc routine seq Generating NVIDIA GPU code rot_apply: 4924, Generating acc routine seq Generating NVIDIA GPU code vec_prod_func: 4953, Generating acc routine seq Generating NVIDIA GPU code scalar_prod: 4964, Generating acc routine seq Generating NVIDIA GPU code norm_func: 4968, Generating acc routine seq Generating NVIDIA GPU code sort_absorb_last: 5003, Generating present(particles[:buffer_len],pbuffer[:buffer_len]) Generating implicit firstprivate(tidx) Generating NVIDIA GPU code 5010, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 5019, #pragma acc loop seq 5003, Generating implicit copy(lens[:]) [if not already present] 5010, Generating implicit firstprivate(ll,l) 5021, Accelerator restriction: induction variable live-out from loop: i 5022, Accelerator restriction: induction variable live-out from loop: i 5023, Accelerator restriction: induction variable live-out from loop: i 5024, Accelerator restriction: induction variable live-out from loop: i 5026, Accelerator restriction: induction variable live-out from loop: j 5027, Accelerator restriction: induction variable live-out from loop: j 5028, Accelerator restriction: induction variable live-out from loop: j 5029, Accelerator restriction: induction variable live-out from loop: j 5051, Generating present(pbuffer[:buffer_len]) Generating implicit firstprivate(tidx) Generating NVIDIA GPU code 5055, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 5058, #pragma acc loop seq 5051, Generating implicit copyin(lens[:]) [if not already present] Generating implicit copy(particles[:]) [if not already present] Generating implicit copyin(los[:]) [if not already present] 5058, Generating implicit firstprivate(l) 5075, Generating present(particles[:buffer_len]) Generating implicit firstprivate(accumlen,tidx,mult) Generating NVIDIA GPU code 5079, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 5086, #pragma acc loop seq 5075, Local memory used for targetbuffer,sourcebuffer mccoordschange: 5145, Generating acc routine seq Generating NVIDIA GPU code mccoordschange_polarisation: 5176, Generating acc routine seq Generating NVIDIA GPU code normal_vec: 5193, Generating acc routine seq Generating NVIDIA GPU code solve_2nd_order: 5292, Generating acc routine seq Generating NVIDIA GPU code _randvec_target_circle: 5376, Generating acc routine seq Generating NVIDIA GPU code _randvec_target_rect_angular: 5442, Generating acc routine seq Generating NVIDIA GPU code _randvec_target_rect_real: 5519, Generating acc routine seq Generating NVIDIA GPU code kiss_srandom: 5791, Generating acc routine seq Generating NVIDIA GPU code kiss_random: 5803, Generating acc routine seq Generating NVIDIA GPU code _hash: 5835, Generating acc routine seq Generating NVIDIA GPU code _randnorm2: 5876, Generating acc routine seq Generating NVIDIA GPU code _randtriangle: 5887, Generating acc routine seq Generating NVIDIA GPU code _rand01: 5892, Generating acc routine seq Generating NVIDIA GPU code _randpm1: 5900, Generating acc routine seq Generating NVIDIA GPU code _rand0max: 5908, Generating acc routine seq Generating NVIDIA GPU code _randminmax: 5915, Generating acc routine seq Generating NVIDIA GPU code mcsetstate: 6595, Generating acc routine seq Generating NVIDIA GPU code mcgetstate: 6635, Generating acc routine seq Generating NVIDIA GPU code inside_rectangle: 6695, Generating acc routine seq Generating NVIDIA GPU code box_intersect: 6712, Generating acc routine seq Generating NVIDIA GPU code cylinder_intersect: 6827, Generating acc routine seq Generating NVIDIA GPU code sphere_intersect: 6882, Generating acc routine seq Generating NVIDIA GPU code init: 8038, Generating update device(_monochromator_var,_source_var,_powder_sample_var,_instrument_var,_mono_out_var,_mono_arm_var,_powder_pattern_detc_var,_origin_var) class_Progress_bar_trace: 8081, Generating acc routine seq Generating NVIDIA GPU code class_Source_div_trace: 8160, Generating acc routine seq Generating NVIDIA GPU code class_Cyl_monitor_trace: 8417, Generating acc routine seq Generating NVIDIA GPU code raytrace_all_funnel: 8787, Generating present(particles[:livebatchsize]) Generating implicit firstprivate(livebatchsize) Generating NVIDIA GPU code 8791, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 8791, Generating implicit firstprivate(mpi_node_rank,_particle,ncount,seed) 8800, Generating present(particles[:livebatchsize]) Generating implicit firstprivate(livebatchsize) Generating NVIDIA GPU code 8805, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 8800, Local memory used for .inl_.inl_c_1977_9328,.inl_.inl_.inl_b_1951_1983_9333,.inl_.inl_.inl_.X2142_1950_1982_9332,.inl_.inl_b_1973_9327,.inl_.inl_c_1966_9317,.inl_.inl_.inl_b_1951_1972_9322,.inl_.inl_.inl_.X2142_1950_1971_9321,.inl_.inl_b_1962_9316,.inl_.inl_.X2126_1961_9311,.inl_.inl_c_1958_9310,.inl_c_9343,.inl_.inl_b_1957_9308,.inl_.inl_.X2142_1956_9307,.inl_b_9300,.inl_.X2125_9299,.inl_.X2126_9294,.inl_c_9302,.inl_.X2124_9290,.inl_a_9286,_particle_save,.inl_c_9354,.inl_.inl_c_1966_9369,.inl_.inl_.inl_b_1951_1972_9374,.inl_.inl_.inl_.X2142_1950_1971_9373,.inl_.inl_b_1962_9368,.inl_.inl_c_1958_9362,.inl_.inl_.inl_.X2142_1950_1982_9384,.inl_.inl_.X2142_1956_9359,.inl_.inl_b_1957_9360,.inl_.X2126_9346,.inl_.inl_b_1973_9379,.inl_c_9291,.inl_.inl_.inl_b_1951_1983_9385,.inl_.inl_.X2126_1961_9363,.inl_a_9338,.inl_.X2124_9342,.inl_.X2125_9351,.inl_b_9352,.inl_.inl_c_1977_9380 8872, Generating present(particles[:livebatchsize]) Generating implicit firstprivate(livebatchsize) Generating NVIDIA GPU code 8875, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 8912, Generating present(particles[:livebatchsize]) Generating implicit firstprivate(livebatchsize) Generating NVIDIA GPU code 8915, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 8912, Local memory used for _particle_save,.inl_c_9504,.inl_.inl_c_1966_9519,.inl_.inl_.inl_b_1951_1972_9524,.inl_.inl_.inl_.X2142_1950_1971_9523,.inl_.inl_b_1962_9518,.inl_.inl_c_1958_9512,.inl_.inl_.inl_.X2142_1950_1982_9534,.inl_.inl_.X2142_1956_9509,.inl_.inl_b_1957_9510,.inl_.X2126_9496,.inl_.inl_b_1973_9529,.inl_c_9493,.inl_.inl_.inl_b_1951_1983_9535,.inl_.inl_.X2126_1961_9513,.inl_a_9488,.inl_.X2124_9492,.inl_.X2125_9501,.inl_b_9502,.inl_.inl_c_1977_9530 finally: 9186, Generating update self(_monochromator_var,_source_var,_powder_sample_var,_instrument_var,_mono_out_var,_mono_arm_var,_powder_pattern_detc_var,_origin_var) mcenabletrace: 6035, Generating update device(mcdotrace) DEBUG: CMD: nvc finished INFO: ===