Warning: Trying to access array offset on value of type null in /home/site/wwwroot/lib/plugins/move/action/rename.php on line 42

Warning: Cannot modify header information - headers already sent by (output started at /home/site/wwwroot/lib/plugins/move/action/rename.php:42) in /home/site/wwwroot/inc/Action/Export.php on line 106

Warning: Cannot modify header information - headers already sent by (output started at /home/site/wwwroot/lib/plugins/move/action/rename.php:42) in /home/site/wwwroot/inc/Action/Export.php on line 106

Warning: Cannot modify header information - headers already sent by (output started at /home/site/wwwroot/lib/plugins/move/action/rename.php:42) in /home/site/wwwroot/inc/Action/Export.php on line 106
====== Out_with_suffix ====== Description: Versatile output macro for multipattern .inp files. Comment: In complex input files with many diffraction patterns (e.g. parametric ones), a different output is needed for e.g. each temperature.\\ Assuming there is consistent naming of parameters of interest, this can be done easier by using a macro for the output, in which the suffixes of the parameter names can be easily changed. Contributed by: Martin Fisch xdd Scan_100.raw ' measured at 100 °C str phase_name "PhaseX" a lp_a_Phase_X_100 5 b lp_b_Phase_X_100 5 c lp_c_Phase_X_100 5 scale scale_PhaseX_100 0.00001 ..... out Output.txt append Out(Get(xdd_path_name, "\n%s\t") Out( lp_a_Phase_X_100 , "%11.5f\t", "%11.5f\t") Out( lp_b_Phase_X_100 , "%11.5f\t", "%11.5f\t") Out( lp_c_Phase_X_100 , "%11.5f\t", "%11.5f\t") ..... xdd Scan_200.raw ' measured at 200 °C str phase_name "PhaseX" a lp_a_Phase_X_200 6 b lp_b_Phase_X_200 6 c lp_c_Phase_X_200 6 scale scale_PhaseX_200 0.00001 ..... out Output.txt append Out(Get(xdd_path_name, "\n%s\t") Out( lp_a_Phase_X_200 , "%11.5f\t", "%11.5f\t") Out( lp_b_Phase_X_200 , "%11.5f\t", "%11.5f\t") Out( lp_c_Phase_X_200 , "%11.5f\t", "%11.5f\t") ..... xdd ..... Is a lot easier by using a macro: xdd Scan_100.raw ' measured at 100 °C str phase_name "PhaseX" a lp_a_Phase_X_100 5 b lp_b_Phase_X_100 5 c lp_c_Phase_X_100 5 scale scale_PhaseX_100 0.00001 ..... Out_with_suffix(100) xdd Scan_200.raw ' measured at 200 °C str phase_name "PhaseX" a lp_a_Phase_X_200 6 b lp_b_Phase_X_200 6 c lp_c_Phase_X_200 6 scale scale_PhaseX_200 0.00001 ..... Out_with_suffix(200) xdd ..... macro Out_with_suffix(suffix) { out Output.txt append Out(Get(xdd_path_name, "\n%s\t") Out( lp_a_Phase_X_##suffix , "%11.5f\t", "%11.5f\t") Out( lp_b_Phase_X_##suffix , "%11.5f\t", "%11.5f\t") Out( lp_c_Phase_X_##suffix , "%11.5f\t", "%11.5f\t") '..... add more ..... } In case phases appear/disappear with changing conditions, adding a condition as e.g. macro Out_with_suffix(suffix) { out Output.txt append Out(Get(xdd_path_name, "\n%s\t") if And( (Prm_There(scale_PhaseX_##suffix), scale_PhaseX_##suffix > 0) { Out( lp_a_Phase_X_##suffix , "%11.5f\t", "%11.5f\t") Out( lp_b_Phase_X_##suffix , "%11.5f\t", "%11.5f\t") Out( lp_c_Phase_X_##suffix , "%11.5f\t", "%11.5f\t") '..... } else { Out_String("\t\t\t\t\t\t") } if And( (Prm_There(scale_PhaseY_##suffix), scale_PhaseY_##suffix > 0) { Out( lp_a_Phase_Y_##suffix , "%11.5f\t", "%11.5f\t") Out( lp_b_Phase_Y_##suffix , "%11.5f\t", "%11.5f\t") Out( lp_c_Phase_Y_##suffix , "%11.5f\t", "%11.5f\t") '..... } else { Out_String("\t\t\t\t\t\t") } } will only write the values to a file if the phase is actually there (or more precisely, if its scale factor is there and > 0). \\ If the phase is not there, the empty values will be replaced by tabs in order to allow easy editing of Output.txt in e.g. Excel.