Commit d339db1c96890ebdd5ed82bbadfcdb0563e10969

Authored by Jean-Philippe Bernard
1 parent 746b3ee2
Exists in master

improved

Docs/developers/Code_Structure_Flowcharts/dustem-wrapper_flow_chart1.drawio
1   -<mxfile host="Electron" modified="2024-03-08T09:54:39.832Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/17.2.1 Chrome/96.0.4664.174 Electron/16.1.0 Safari/537.36" etag="7JaPd0VAnYTZuhZhXUte" version="17.2.1" type="device" pages="5"><diagram id="IKMg62xr7mvPSjzlxw8D" name="Dustem_wrap_flow">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</diagram><diagram id="-igyU8uB8o-wUyM342J-" name="plugin_managment">7ZtRj5s4EIB/yz1EujvpVhiwgccm23Slu+oq7Z1u25eIgpNYSzAFZ5Pcr68JJgEbSJaFhKrpwxYPY2N7xt/YAxkZk9X2Q+xGy4/Ux8FI1/ztyLgf6TrQHJ3/l0p2mcQ2nEywiIkvlI6CR/I/zmsK6Zr4OCkpMkoDRqKy0KNhiD1WkrlxTDdltTkNyk+N3AVWBI+eG6jS/4jPlmIUunWUP2CyWOZPBkiMb+XmymIkydL16aYgMt6PjElMKcuuVtsJDtLJy+clqzetuXvoWIxDdlaFP/9irvNsew+fyLfxQg9NNP5DtPLiBmsxYH+dMLyakZCwWRSsFyS8i2IqhsB2+bzw0UTpJb/n4YRP8nizJAw/Rq6XijfcG7jMDcgi5EWP9xHHXPCCY0b47L4TN1bE99Mmx0lmee1OM2wTAXj8a/K7cxqyR/FwkGqzmD4fDGKkGiQIJjSg8b57xnQ64f+43CcxdwtC04dhN+EzNVYnLp8F3jm8LYjERH7AdIVZvOMq4u7BqMKrgSnKm6OP6EjIlgX/MITMFW65ODR9tBy/EMZ7hSH1OkPerKdaD5atd7DK1axnKNZTTIZD/13Ks9QegZskxOOTsWSrQExqTNehj9OHaLyEt4Q9Fa4/760DRel+W7h1v8sLIR/KU7FQqJUWj9X2pbxerUUSuo493DDsHOhuvMCsQU/MBvZLrFbtW7AfrDBfLotx4DLyUiZ8lU3FEz5Rwkd2cB8Ayu5jAsktsnGLWkUiyw0Z5YYcKDWUTYzSEPcDd1dQi1KFpL7DkrsDCBu7Ja8OWIor/CJ7/tHbDxZovwDMOnzF61CEoeRGspNxCKFrkwzWGdLlo39xGb5Zs9aawClbE8JrWxNdJi5ZQwtM8MzAZA4rMNmS/6CWgUmXIhzqKTABKdRAW2vsl6yPwCv1rQuEMruOgNwRXd44jmf8ROvFJEoBorNdhG8sPLlHt/Rrs9D5SVlonslCe1As1DVp6TttWSht0m3NuoP90BApXb5r3qnLNSykl2v0Q7g8OlTu1n9Els3nGHleNcuyygVl33K+ao1Lqj3lbO3alANqRvCtmOuaWCdJlPvnUFAkH9LstiiSY6LZE4jM6g6fm8ewnAtss0BtxvOWMnhNysC+esoAdJ/9vDxyBpailDMJVke7H2T3hBxpu3bqJCiNz7YvQZzaJKVHV9Ga4VmC/Rtx1LSWFLbMq78sA2qW8q3E6fB9i97jC5dzD3NwWDiT6aC1xJmcIHP6oZlM3xNpKlkdXQJmamr3tn1qsX1ycpZcD2bWULZPbSDYnmXn5uhzTx8Ky6TVjnSJQW23ZpYpeVhHMLOqt5J13ZLUHeMSMKvPue9BNttutzeWnc6xX/8oeEuyn4DZwLLs8vHQ0eXk+Nk4s2Sc9XTSlN8JOs08k/Wtjo+a3nNg0Idv5ItvPY2THfGM9azis8xff/+lhLTfRnA8gvd3SYQ9ZYmUl0AV0grrZU+ljFsAVuXG5/o+N55TMMDz6rw4+oog6oZMSI5tUN1lAavCr+UY2IZMDpj/M5tGH588Ohn/G/6tuZMvFRbpCEyggxPjKS4pYQWhsVFlw8nEcaZTJTTpbzt0aircmrx+IGwzdbvsg203alCB5HkbtRYwqXRdvbeYenDXz0VvbXZdMFDXbfLI02F5WB8CQTnH39Z1kfJ+sp+gbMmf1Hb8zWnlulBfO5R++5B+rXPLgFSkc5FZ5uIFDw2VdlTT8l3xbTDJ3Cb/PQ2nQbFJPjIA1PbAIH38osN+2IRkBDYTUxqd+SaQ8eLxB2KZ+vFndsb77w==</diagram><diagram id="VhkHcouieJL9I0J5Rexb" name="Phangs_fiting_SEDs">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</diagram><diagram id="ls9p14zF9e6sMFj8i8uX" name="Phangs_pluggins">7Vpbc5s6EP41fjkz9QAyYB4TJ0460/bkxKfT5MkjgwxqAHGEfOuvP8KImwDfartO6zw4aFkJab/9VruCDhgEywcKI+8zcZDf0RRn2QF3HU1TFUvj/xLJKpX0gZUKXIodoVQIRvgHynoK6Qw7KK4oMkJ8hqOq0CZhiGxWkUFKyaKqNiV+9akRdFFNMLKhX5d+ww7zxCo0s5A/Iux62ZNVQ6wvgJmyWEnsQYcsSiJw3wEDSghLr4LlAPmJ8TK7pP2GLXfziVEUsl069Icz59+X8Mvo20d28/xVvXucfP0gRplDfyYW7MxihoJx5M9cHI4jD4ZuPOYi34d0jGM6Fathq8xEfGFRchlRYqOY2/t24WGGRhG0E/GCOwaXQR+7IW/afLqIcsEcUYa5oW/EjQA7TjLkbZw6gdJVQL9nqHrx2+N3pyRkI/FwNdFmlLzl2IBEA/v+gPiErqcHhsMB/+NyB1PuIZgkD0Mw5ka7rdswMwifHFqWRMKmD4gEiNEVV8nu9gS+wsF10VwU3qIZQuaVPAUIGRQO6uYjFxjyCwHjHpBqNUhriKHQuUm4kcDhwzjGNreFxwJf2JSSWeig5CEKb6ElZi+l69c1OLpo3S1Lt+5WWSPkS3kpN9Jemp61i37rVtaxFZGYzKiNtrsyg9RFbIMeSPWQUyF+Hd8SgHoDfpmMIh8yPK+GiyZQxROeCOYrK9xHqbpPz5T8Il236FWmtzyQVR3IUKyuZVXHSm1TG4v7AlyV1KJEId59zn1l88wkdVWt6POLdAKFy+coHM4CsF9g49sHw+FsFlyjWzW6mRJ2SkN4658zvPXagKUIOmMUYB8VsHJ5xOmJ4iusFVg1mZJNu9ZZYdU3wmpPVOsK6p6gNqYipwL1Gb99fEXfBw/BU/D5y3/L6Y/v9w3ZZY7dGIdT0mVL1gqivfIxz0IoaIGxlK9M0nzl0yQXQPvNXWcxf88YHyaHKAVU1evgGMatNhweBwlDqyIB6kA0pYT9U+FQTwnvbU/tAuWv7hSzdh79RhCovxqD1oSEZ2TjBZwjH4Uu865BTQpqQApq50xA/pk/c8nyEdAPN649fTVXn54bgloNsv3qq5pBOQ9AbvrSncHAstb8qIKiHVqj8cYTopibJfGYat2mVuu2o5Rtm/aIrWWbyPsupGzT5bJNdrddyzZDGkjvSQO11GwH1EmN3nz004I/25u1d+nNhhRk5U1wV2fuSWcQqqmf1Znre6w90RTV+o3THHl77J0vzWmEoF6eX+PJbvFkk0dvjSf6RccT9b0GlNZTiWvSvk/SDn550m4cOyw1hRT10l6J7Bo9LisbyQ8jhfdYBwaPPOrk7x3M7m7hY+8XItI7wOywoXVmsr5+3DcijRQwz0EBpWte3IvB97mH1rxXLgx3pUH+KUU2kHEyGsjbvvxFwhb9LFM9KQ36F02D07GgV2fBpnPKKwsOZoE8ZXMLC6Qcl+8Gp2eBevRTzGN+JWKejgZ6nQabMv8LoUHNe/ua7L07E0HKPfgcz0IDbRsNJH2g/dRmwJvFp3WpevGBIrj/Hw==</diagram><diagram id="UJ_gMtkV_-GboZ4knRsY" name="dustem_make_sed_table">7Zrdc9soEMD/Gr90JhkhrK/HRKnvHtppZ9yZ6z15iIRlLpLQIRTL/esLRugLK25unOoy4zw4sIIF8dtdWOwFDLP6D4aK3Wca43RhW3G9gA8L2wYBCMQ/KTkoyQ2ElpIkjMRNq06wJj9wI9TNKhLjctCQU5pyUgyFEc1zHPGBDDFG98NmW5oORy1Qgg3BOkKpKf2LxHynpL7tdfI/MUl2emTgNm+cId24eZNyh2K674ngxwUMGaVclbI6xKlcPb0uqt9q4mk7MYZz/isdflgB+QRD4t3xrf+t+mf978G7gUrLM0qr5oWbyfKDXgGcx3dyIUUtSlFZkmgB73c8S4UAiCKjVR5jOYglargm/Huv/Lcs3zpN7aHuPXo46ErO2eF7v6J62Y6ud/2ONd1RzRXHBsJuTbTNIJZg/sJCgJaIsGVMMyzGEf32HXOn4bjr4dYyhlPEyfNwGqgxvaRV147wlRIxQdtq/OTG9VzVp3ETYC+toZKSVizCTb8+5bEqT89Jq4LBSJVaC0OVgIwOvWaFbFC+MGnPGo2kl2N6bkaPAPZ7iIKaha71WHSio12/wsaXho3HVclxtsnQE96UON5w9CisfWz4wmELWSwYjXApVuV+vyMcrwsUSfFeRDwhQylJcukbwuQwE4JnzDgRAeSueZCROJYq70sV3KxbC/pLFzjd51I83dKcr5vBpVuVnNGnNuZA2YKkaUhTyo7Tg6tVKP6EPCZMRD5C5WAYlbx1DDkTXL/sGqbJtza5NAzJUYKeU9juCa+AI4PrO0AP9etJOlMkSU74RrwbysorxiFGJxhhdMDcGN0pjBHNioofffKK8QxGXwtmw+hNYSwx38SIoyvDMwyX3tyu6BsMsz3bEn4No+fYBXBu/wsMdh9kDvXh9kV+0SEl4rzO4ATB3sn+UZ3sPz22AhQ9Jcfz/peKCzUtHcUSOCYX1723V6sLQQCeAcF0oFMM/LdioNPUyydQ4AIJ1Ln8yfAhQQu23tZ7EoZBcKQ49ENba/yKGRELKj3+lYmZymvOR6izCVxw2nR+UwK3BOPt2f6vCRywx0buO0NVEwncpfIlYE9t7PKYfd0Yzm3qJ2LS790YgHmr08+TtqQWOe/7zJa2W+xG0WmaRtSKveDRsi7F2R1x9ubnPHmzIU/g7xPwm7vrOLp6/tznODB5rbFngswGSRVXin2KS3+83c5+GgeTtxr6corkW3oFeSaqOu7sUXXyXkOBTKuE5O8urv6PNk539gtIYF57NIgV3U1d17cC5MIOy4gWbWL3jni/uePCMVVndqrmhcgU1ePZiKPkCvYXwL7h1z6i2n0BrvLX7ncE8ONP</diagram></mxfile>
2 1 \ No newline at end of file
  2 +<mxfile host="Electron" modified="2024-03-13T17:16:00.670Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/17.2.1 Chrome/96.0.4664.174 Electron/16.1.0 Safari/537.36" etag="jByJohe9QcgNhvBMCHPi" version="17.2.1" type="device" pages="5"><diagram id="IKMg62xr7mvPSjzlxw8D" name="Dustem_wrap_flow">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</diagram><diagram id="-igyU8uB8o-wUyM342J-" name="plugin_managment">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</diagram><diagram id="VhkHcouieJL9I0J5Rexb" name="Phangs_fiting_SEDs">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</diagram><diagram id="ls9p14zF9e6sMFj8i8uX" name="Phangs_pluggins">7Vpbc5s6EP41fjkz9QAyYB4TJ0460/bkxKfT5MkjgwxqAHGEfOuvP8KImwDfartO6zw4aFkJab/9VruCDhgEywcKI+8zcZDf0RRn2QF3HU1TFUvj/xLJKpX0gZUKXIodoVQIRvgHynoK6Qw7KK4oMkJ8hqOq0CZhiGxWkUFKyaKqNiV+9akRdFFNMLKhX5d+ww7zxCo0s5A/Iux62ZNVQ6wvgJmyWEnsQYcsSiJw3wEDSghLr4LlAPmJ8TK7pP2GLXfziVEUsl069Icz59+X8Mvo20d28/xVvXucfP0gRplDfyYW7MxihoJx5M9cHI4jD4ZuPOYi34d0jGM6Fathq8xEfGFRchlRYqOY2/t24WGGRhG0E/GCOwaXQR+7IW/afLqIcsEcUYa5oW/EjQA7TjLkbZw6gdJVQL9nqHrx2+N3pyRkI/FwNdFmlLzl2IBEA/v+gPiErqcHhsMB/+NyB1PuIZgkD0Mw5ka7rdswMwifHFqWRMKmD4gEiNEVV8nu9gS+wsF10VwU3qIZQuaVPAUIGRQO6uYjFxjyCwHjHpBqNUhriKHQuUm4kcDhwzjGNreFxwJf2JSSWeig5CEKb6ElZi+l69c1OLpo3S1Lt+5WWSPkS3kpN9Jemp61i37rVtaxFZGYzKiNtrsyg9RFbIMeSPWQUyF+Hd8SgHoDfpmMIh8yPK+GiyZQxROeCOYrK9xHqbpPz5T8Il236FWmtzyQVR3IUKyuZVXHSm1TG4v7AlyV1KJEId59zn1l88wkdVWt6POLdAKFy+coHM4CsF9g49sHw+FsFlyjWzW6mRJ2SkN4658zvPXagKUIOmMUYB8VsHJ5xOmJ4iusFVg1mZJNu9ZZYdU3wmpPVOsK6p6gNqYipwL1Gb99fEXfBw/BU/D5y3/L6Y/v9w3ZZY7dGIdT0mVL1gqivfIxz0IoaIGxlK9M0nzl0yQXQPvNXWcxf88YHyaHKAVU1evgGMatNhweBwlDqyIB6kA0pYT9U+FQTwnvbU/tAuWv7hSzdh79RhCovxqD1oSEZ2TjBZwjH4Uu865BTQpqQApq50xA/pk/c8nyEdAPN649fTVXn54bgloNsv3qq5pBOQ9AbvrSncHAstb8qIKiHVqj8cYTopibJfGYat2mVuu2o5Rtm/aIrWWbyPsupGzT5bJNdrddyzZDGkjvSQO11GwH1EmN3nz004I/25u1d+nNhhRk5U1wV2fuSWcQqqmf1Znre6w90RTV+o3THHl77J0vzWmEoF6eX+PJbvFkk0dvjSf6RccT9b0GlNZTiWvSvk/SDn550m4cOyw1hRT10l6J7Bo9LisbyQ8jhfdYBwaPPOrk7x3M7m7hY+8XItI7wOywoXVmsr5+3DcijRQwz0EBpWte3IvB97mH1rxXLgx3pUH+KUU2kHEyGsjbvvxFwhb9LFM9KQ36F02D07GgV2fBpnPKKwsOZoE8ZXMLC6Qcl+8Gp2eBevRTzGN+JWKejgZ6nQabMv8LoUHNe/ua7L07E0HKPfgcz0IDbRsNJH2g/dRmwJvFp3WpevGBIrj/Hw==</diagram><diagram id="UJ_gMtkV_-GboZ4knRsY" name="dustem_make_sed_table">7Zrdc9soEMD/Gr90JhkhrK/HRKnvHtppZ9yZ6z15iIRlLpLQIRTL/esLRugLK25unOoy4zw4sIIF8dtdWOwFDLP6D4aK3Wca43RhW3G9gA8L2wYBCMQ/KTkoyQ2ElpIkjMRNq06wJj9wI9TNKhLjctCQU5pyUgyFEc1zHPGBDDFG98NmW5oORy1Qgg3BOkKpKf2LxHynpL7tdfI/MUl2emTgNm+cId24eZNyh2K674ngxwUMGaVclbI6xKlcPb0uqt9q4mk7MYZz/isdflgB+QRD4t3xrf+t+mf978G7gUrLM0qr5oWbyfKDXgGcx3dyIUUtSlFZkmgB73c8S4UAiCKjVR5jOYglargm/Huv/Lcs3zpN7aHuPXo46ErO2eF7v6J62Y6ud/2ONd1RzRXHBsJuTbTNIJZg/sJCgJaIsGVMMyzGEf32HXOn4bjr4dYyhlPEyfNwGqgxvaRV147wlRIxQdtq/OTG9VzVp3ETYC+toZKSVizCTb8+5bEqT89Jq4LBSJVaC0OVgIwOvWaFbFC+MGnPGo2kl2N6bkaPAPZ7iIKaha71WHSio12/wsaXho3HVclxtsnQE96UON5w9CisfWz4wmELWSwYjXApVuV+vyMcrwsUSfFeRDwhQylJcukbwuQwE4JnzDgRAeSueZCROJYq70sV3KxbC/pLFzjd51I83dKcr5vBpVuVnNGnNuZA2YKkaUhTyo7Tg6tVKP6EPCZMRD5C5WAYlbx1DDkTXL/sGqbJtza5NAzJUYKeU9juCa+AI4PrO0AP9etJOlMkSU74RrwbysorxiFGJxhhdMDcGN0pjBHNioofffKK8QxGXwtmw+hNYSwx38SIoyvDMwyX3tyu6BsMsz3bEn4No+fYBXBu/wsMdh9kDvXh9kV+0SEl4rzO4ATB3sn+UZ3sPz22AhQ9Jcfz/peKCzUtHcUSOCYX1723V6sLQQCeAcF0oFMM/LdioNPUyydQ4AIJ1Ln8yfAhQQu23tZ7EoZBcKQ49ENba/yKGRELKj3+lYmZymvOR6izCVxw2nR+UwK3BOPt2f6vCRywx0buO0NVEwncpfIlYE9t7PKYfd0Yzm3qJ2LS790YgHmr08+TtqQWOe/7zJa2W+xG0WmaRtSKveDRsi7F2R1x9ubnPHmzIU/g7xPwm7vrOLp6/tznODB5rbFngswGSRVXin2KS3+83c5+GgeTtxr6corkW3oFeSaqOu7sUXXyXkOBTKuE5O8urv6PNk539gtIYF57NIgV3U1d17cC5MIOy4gWbWL3jni/uePCMVVndqrmhcgU1ePZiKPkCvYXwL7h1z6i2n0BrvLX7ncE8ONP</diagram></mxfile>
3 3 \ No newline at end of file
... ...
LabTools/IRAP/JPB/make_sed_phangs_tables.pro
... ... @@ -94,22 +94,30 @@ CASE use_grid_type OF
94 94 '(*!dustem_params).grains(0).mdust_o_mh',$ ;PAH0 mass fraction [1.e-4,1.e-1] 20 values
95 95 '(*!dustem_params).grains(1).mdust_o_mh' $ ;VSG mass fraction [1.e-4,1.e-1] 20 values
96 96 ]
97   - iv_min = [0.1,0. ,1.e-4,1.e-4]
  97 + ;iv_min = [0.1,0. ,1.e-4,1.e-4] ;does not run for values =0., because of use of pmin (division by initial value)
  98 + iv_min = [0.1,1.e-10 ,1.e-4,1.e-4]
98 99 iv_max = [100,0.02,1.e-1,1.e-1]
99 100 log=[1,0,1,1]
100   - fpd=['(*!dustem_params).gas.g0', $ ;gas.G0=-1 (not used)
101   - '(*!dustem_params).g0', $ ;g0=1 (not used)
102   - 'dustem_plugin_dl07_isrf_model_2', $ ;alpha=1
  101 + ;fpd=['(*!dustem_params).gas.g0', $ ;gas.G0=-1 (not used)
  102 + ; '(*!dustem_params).g0', $ ;g0=1 (not used)
  103 + ; 'dustem_plugin_dl07_isrf_model_2', $ ;alpha=1
  104 + ; 'dustem_plugin_dl07_isrf_model_4' $ ;Umax=1.e7
  105 + ; ]
  106 + ;fiv=[-1.,1.,2.,1.e7] ;This sets the fixed parameters
  107 + fpd=['dustem_plugin_dl07_isrf_model_2', $ ;alpha=1
103 108 'dustem_plugin_dl07_isrf_model_4' $ ;Umax=1.e7
104 109 ]
  110 + fiv=[2.,1.e7] ;This sets the fixed parameters
105 111 dustem_init,model=model
106 112 fortran_user=dustem_set_up_fortran(/random_name) ;use a random fortran number
107   - !dustem_verbose=0
108   - (*!dustem_params).KEYWORDS='quiet '+(*!dustem_params).KEYWORDS ;This makes Fortran be quiet too
  113 + !dustem_verbose=1
  114 + !quiet=0
  115 + !dustem_nocatch=1
  116 + ;!dustem_verbose=0
  117 + ;(*!dustem_params).KEYWORDS='quiet '+(*!dustem_params).KEYWORDS ;This makes Fortran be quiet too
109 118 ;=== select filters to be used for the grid
110 119 filters=[(*!dustem_filters).nircam.filter_names,(*!dustem_filters).miri.filter_names, $
111 120 (*!dustem_filters).iras.filter_names,(*!dustem_filters).pacs.filter_names,(*!dustem_filters).spire.filter_names]
112   - fiv=[-1.,1.,2.,1.e7] ;This sets the fixed parameters
113 121 ;define the number of free parameters in the grid and the grid fits table name
114 122 IF keyword_set(test) THEN BEGIN
115 123 iv_Nvalues=[2,2,3,3]
... ...
LabTools/IRAP/JPB/phangs_brute_force_fit_with_isrf_grid.pro
... ... @@ -35,6 +35,7 @@ PRO phangs_brute_force_fit_with_isrf_grid,source_name=source_name $
35 35 ; EXAMPLE:
36 36 ; phangs_brute_force_fit_with_isrf_grid,source_name='ngc0628',/normalize,/save
37 37 ; phangs_brute_force_fit_with_isrf_grid,source_name='ngc0628',/normalize,/save,/include_herschel,/fit_G0,/show_seds
  38 +; phangs_brute_force_fit_with_isrf_grid,source_name='ngc0628',/normalize,/save,/include_herschel,/fit_G0,/force_Mathis
38 39 ; MODIFICATION HISTORY:
39 40 ; written by Jean-Philippe Bernard
40 41 ;-
... ... @@ -266,8 +267,11 @@ FOR isrf_class=class_min,class_max DO BEGIN
266 267 vid=ind_class[vvid]
267 268 G0=interpol(ISRFs[*,vid],isrf_wavelengths,1.0)/Mathis_1mic
268 269 G0s_predicted[vid]=G0
269   - G0=G0*10. ;This is a test
270   - IF not keyword_set(force_mathis) AND not keyword_set(fit_G0) THEN BEGIN
  270 + ;G0=G0*10. ;This is a test
  271 + ;IF not keyword_set(force_mathis) AND not keyword_set(fit_G0) THEN BEGIN
  272 + ; fixed_parameters_values=[G0]
  273 + ; ENDIF
  274 + IF not keyword_set(fit_G0) THEN BEGIN
271 275 fixed_parameters_values=[G0]
272 276 ENDIF
273 277 sed=*seds_ptr[vid]
... ... @@ -307,7 +311,8 @@ FOR isrf_class=class_min,class_max DO BEGIN
307 311 print,params_hit
308 312 stop
309 313 ENDIF
310   - IF not keyword_set(force_mathis) AND not keyword_set(fit_G0) THEN BEGIN
  314 + ;IF not keyword_set(force_mathis) AND not keyword_set(fit_G0) THEN BEGIN
  315 + IF not keyword_set(fit_G0) THEN BEGIN
311 316 G0s[vid]=G0
312 317 ENDIF ELSE BEGIN
313 318 G0s[vid]=weighted_params[0]
... ... @@ -326,21 +331,21 @@ FOR isrf_class=class_min,class_max DO BEGIN
326 331 ;print,params[0],params[1],params[2],fact,chi2
327 332 ENDIF
328 333 ENDFOR
329   - ind=where(vor_class EQ isrf_class,Nvor_class)
  334 + ;ind=where(vor_class EQ isrf_class,Nvor_class)
330 335 st[isrf_class].Nvor=Nvor_class
331 336 st[isrf_class].isrf_class=isrf_class
332   - st[isrf_class].min_G0=la_min(G0s[ind])
333   - st[isrf_class].med_G0=la_median(G0s[ind])
334   - st[isrf_class].max_G0=la_max(G0s[ind])
335   - st[isrf_class].min_Ypah=la_min(Ypahs[ind])
336   - st[isrf_class].med_Ypah=la_median(Ypahs[ind])
337   - st[isrf_class].max_Ypah=la_max(Ypahs[ind])
338   - st[isrf_class].min_Yvsg=la_min(Yvsgs[ind])
339   - st[isrf_class].med_Yvsg=la_median(Yvsgs[ind])
340   - st[isrf_class].max_Yvsg=la_max(Yvsgs[ind])
341   - st[isrf_class].min_chi2=la_min(chi2s[ind])
342   - st[isrf_class].med_chi2=la_median(chi2s[ind])
343   - st[isrf_class].max_chi2=la_max(chi2s[ind])
  337 + st[isrf_class].min_G0=la_min(G0s[ind_class])
  338 + st[isrf_class].med_G0=la_median(G0s[ind_class])
  339 + st[isrf_class].max_G0=la_max(G0s[ind_class])
  340 + st[isrf_class].min_Ypah=la_min(Ypahs[ind_class])
  341 + st[isrf_class].med_Ypah=la_median(Ypahs[ind_class])
  342 + st[isrf_class].max_Ypah=la_max(Ypahs[ind_class])
  343 + st[isrf_class].min_Yvsg=la_min(Yvsgs[ind_class])
  344 + st[isrf_class].med_Yvsg=la_median(Yvsgs[ind_class])
  345 + st[isrf_class].max_Yvsg=la_max(Yvsgs[ind_class])
  346 + st[isrf_class].min_chi2=la_min(chi2s[ind_class])
  347 + st[isrf_class].med_chi2=la_median(chi2s[ind_class])
  348 + st[isrf_class].max_chi2=la_max(chi2s[ind_class])
344 349 write_xcat,st,'/tmp/essai.xcat'
345 350 ENDIF ELSE BEGIN
346 351 message,'No Voronoi bins found with ISRF class '+strtrim(isrf_class,2),/continue
... ... @@ -399,27 +404,6 @@ restore,file_save,/verb
399 404 file_save=data_dir+use_source_name+'_DBP90_JWST_G0_YPAH_YVSG_maps_with-ISRFclasses'+norm_str+mathis_str+'.sav'
400 405 restore,file_save,/verb
401 406  
402   -;===== compute some results statistics
403   -one_st={isrf_class:0L,min_G0:0.,med_G0:0.,max_G0:0.,min_Ypah:0.,med_Ypah:0.,max_Ypah:0.,min_Yvsg:0.,med_Yvsg:0.,max_Yvsg:0.,min_chi2:0.,med_chi2:0.,max_chi2:0.}
404   -;Nisrf_class=class_max-class_min+1
405   -st=replicate(one_st,30)
406   -FOR isrf_class=class_min,class_max DO BEGIN
407   - ind=where(vor_class EQ isrf_class,Nvor_class)
408   - st[isrf_class].isrf_class=isrf_class
409   - st[isrf_class].min_G0=la_min(G0s[ind])
410   - st[isrf_class].med_G0=la_median(G0s[ind])
411   - st[isrf_class].max_G0=la_max(G0s[ind])
412   - st[isrf_class].min_Ypah=la_min(Ypahs[ind])
413   - st[isrf_class].med_Ypah=la_median(Ypahs[ind])
414   - st[isrf_class].max_Ypah=la_max(Ypahs[ind])
415   - st[isrf_class].min_Yvsg=la_min(Yvsgs[ind])
416   - st[isrf_class].med_Yvsg=la_median(Yvsgs[ind])
417   - st[isrf_class].max_Yvsg=la_max(Yvsgs[ind])
418   - st[isrf_class].min_chi2=la_min(chi2s[ind])
419   - st[isrf_class].med_chi2=la_median(chi2s[ind])
420   - st[isrf_class].max_chi2=la_max(chi2s[ind])
421   -ENDFOR
422   -
423 407 stop
424 408  
425 409 cleanplot
... ... @@ -435,7 +419,7 @@ cgplot,xv,res,psym=10,title=&#39;ISRF class histogram&#39;,xtit=&#39;class&#39;,ytit=&#39;Number&#39;,/y
435 419 win=0L
436 420 window,win,xsize=700,ysize=900 & win=win+1
437 421 !p.multi=[0,1,3]
438   -ind=where(G0s NE la_undef() and G0s GT 0)
  422 +ind=where(G0s NE la_undef() and G0s GT 0,Nbins=100)
439 423 res=histogram(G0s[ind],locations=xv)
440 424 cgplot,xv,res,psym=10,title='G0s histogram',xtit='G0',ytit='Number',/ylog,yrange=[1,max(res)],/ysty
441 425  
... ... @@ -454,6 +438,12 @@ win=0L
454 438 window,win,xsize=800,ysize=900 & win=win+1
455 439 imrange=[-4.5,-2.5]
456 440 ;image_cont20,G0_map,Href,/square,imrange=[-2,40],axis_color_table=1,image_color_table='jpbloadct',/silent,off_bar=obp,title='G0'
  441 +image_cont20,la_log10(G0_predicted_map),Href,/square,imrange=imrange,axis_color_table=1,image_color_table='jpbloadct',/silent,off_bar=obp,title='log10(G0_predicted)'
  442 +
  443 +window,win,xsize=800,ysize=900 & win=win+1
  444 +imrange=[-4.5,-2.5]
  445 +imrange=[-4.,-2.5]+3 ;with Herschel data
  446 +;image_cont20,G0_map,Href,/square,imrange=[-2,40],axis_color_table=1,image_color_table='jpbloadct',/silent,off_bar=obp,title='G0'
457 447 image_cont20,la_log10(G0_map),Href,/square,imrange=imrange,axis_color_table=1,image_color_table='jpbloadct',/silent,off_bar=obp,title='log10(G0)'
458 448  
459 449 window,win,xsize=800,ysize=900 & win=win+1
... ... @@ -464,12 +454,13 @@ image_cont20,la_log10(Ypah_map),Href,/square,imrange=imrange,axis_color_table=1,
464 454  
465 455 window,win,xsize=800,ysize=900 & win=win+1
466 456 ;imrange=[-4.,-3.]+0.5 ;normalize=1
467   -imrange=[-4.5,-2.]+0.4 ;normalize=1
  457 +;imrange=[-4.5,-2.]+0.4 ;normalize=1
468 458 ;imrange=[-2.2,-1.6] ;normalize=0
  459 +imrange=[-4,-2.]+0.4
469 460 image_cont20,la_log10(YVSG_map),Href,/square,imrange=imrange,axis_color_table=1,image_color_table='jpbloadct',/silent,off_bar=obp,title='log10(Yvsg)'
470 461  
471 462 window,win,xsize=800,ysize=900 & win=win+1
472   -imrange=[2,7]+1
  463 +imrange=[2,4]
473 464 image_cont20,la_log10(chi2_map),Href,/square,imrange=imrange,axis_color_table=1,image_color_table='jpbloadct',/silent,title='log10(Chi2)',off_bar=obp
474 465  
475 466 window,win,xsize=800,ysize=900 & win=win+1
... ... @@ -493,17 +484,27 @@ imrange=0
493 484 imrange=[-2.0,-1.45]
494 485 image_cont20,la_log10(la_mul(Ypah_map,fact_map)),Href,/square,imrange=imrange,axis_color_table=1,image_color_table='jpbloadct',/silent,title='Ypah *fact',off_bar=obp
495 486  
  487 +window,win,xsize=800,ysize=900 & win=win+1
  488 +rap_G0=la_div(G0_map,G0_predicted_map) & tit='log(G0/G0_predicted)'
  489 +;rap_G0=la_power(la_div(G0_map,G0_predicted_map),0.5) & tit='log(distance star-dust)'
  490 +imrange=0
  491 +image_cont20,la_log10(rap_G0),Href,/square,imrange=imrange,axis_color_table=1,image_color_table='jpbloadct',/silent,title=tit,off_bar=obp
  492 +
496 493 ;=== other plots
497 494 NH_range=[0.1,1000.]
498   -G0_range=[1.e-5,0.1]
  495 +G0_range=[0.1,10]
  496 +G0_range_pred=[0.001,10]/10000.
499 497 Ypah_range=[8.e-5,2.e-1]
500 498 Yvsg_range=[8.e-5,2.e-1]
501 499 chi2_range=[1.e3,1.e7]
502 500  
503 501 window,win,xsize=800,ysize=900 & win=win+1
  502 +cgplot,G0s_predicted,G0s,/xlog,/ylog,xrange=G0_range_pred,/xsty,yrange=G0_range,/ysty,psym=3,xtit='G0 predicted',ytit='G0'
  503 +
  504 +window,win,xsize=800,ysize=900 & win=win+1
504 505 !p.multi=[0,1,3]
505   -cgplot,G0s,Ypahs,/xlog,/ylog,xr=[1.e-5,1.e-2],/xsty,psym=3,xtit='G0',ytit='Ypah'
506   -cgplot,G0s,Yvsgs,/xlog,/ylog,xr=[1.e-5,1.e-2],/xsty,psym=3,xtit='G0',ytit='Yvsg'
  506 +cgplot,G0s,Ypahs,/xlog,/ylog,xr=G0_range,/xsty,psym=3,xtit='G0',ytit='Ypah'
  507 +cgplot,G0s,Yvsgs,/xlog,/ylog,xr=G0_range,/xsty,psym=3,xtit='G0',ytit='Yvsg'
507 508 cgplot,Yvsgs,Ypahs,/xlog,/ylog,xr=[1.e-4,1.e-1],yr=[1.e-4,1.e-1],/xsty,psym=3,xtit='Yvsg',ytit='Ypah'
508 509  
509 510 window,win,xsize=800,ysize=900 & win=win+1
... ...
LabTools/IRAP/JPB/srun/make_phangs_grids.pro
... ... @@ -6,7 +6,7 @@ PRO make_phangs_grids,bidon
6 6 ;=== To be run on titan using something like this:
7 7 ;srun -pn51 -J Pg06 -o {$phangs_srundir}/make_phangs_grids07.log /home/soft/exelis/idl83/bin/idl {$phangs_srundir}/make_phangs_grids.pro &
8 8 ;=== To be run on alma1 using something like this:
9   -;nohup /usr/local/harris/idl87/bin/idl < {$phangs_srundir}/make_phangs_grids.pro >& {$phangs_srundir}/make_phangs_grids5.log &
  9 +;nohup /usr/local/harris/idl87/bin/idl < {$phangs_srundir}/make_phangs_grids.pro >& {$phangs_srundir}/make_phangs_grids7.log &
10 10 ;ssh jbernard@localhost -p2223 "nohup /usr/local/harris/idl87/bin/idl < {$phangs_srundir}/make_phangs_grids.pro >& {$phangs_srundir}/make_phangs_grids.log &"
11 11 ;=== check progress using:
12 12 ;tail -20 {$phangs_srundir}/make_phangs_grids19.log
... ... @@ -19,7 +19,9 @@ t0=systime(/sec)
19 19  
20 20 bidon=1
21 21  
22   -;make grid
  22 +;make grid
  23 +;=== This is for DBP90 a la DL07
  24 +make_sed_phangs_tables,grid_type=3,/test,/show_seds
23 25 ;make_sed_phangs_tables,/test,grid_type=2,/show_seds,isrf_class=15
24 26 ;make_sed_phangs_tables,grid_type=2,isrf_class=30 ;titan Pg30. Canceled. Class does not exist
25 27 ;make_sed_phangs_tables,grid_type=2,isrf_class=29 ;titan Pg29
... ... @@ -45,7 +47,7 @@ bidon=1
45 47 ;make_sed_phangs_tables,grid_type=2,isrf_class=10
46 48 ;make_sed_phangs_tables,grid_type=2,isrf_class=9
47 49 ;make_sed_phangs_tables,grid_type=2,isrf_class=8
48   -make_sed_phangs_tables,grid_type=2,isrf_class=7 ;doing on alma1
  50 +;make_sed_phangs_tables,grid_type=2,isrf_class=7 ;doing on alma1
49 51 ;make_sed_phangs_tables,grid_type=2,isrf_class=6 ;titan, redoing on mac
50 52 ;make_sed_phangs_tables,grid_type=2,isrf_class=5 ;doing on alma1
51 53 ;make_sed_phangs_tables,grid_type=2,isrf_class=4 ;titan, redoing on alma1
... ...
src/idl/dustem_compute_sed.pro
... ... @@ -67,10 +67,15 @@ IF keyword_set(help) THEN BEGIN
67 67 goto,the_end
68 68 ENDIF
69 69  
  70 +;stop
  71 +
70 72 IF not keyword_set(st) and not keyword_set(input_spec) THEN BEGIN
  73 + ;==== JPB: This division leads to NaN for initial values at 0 !!
71 74 dustem_activate_plugins,p_dim/(*(*!dustem_fit).param_init_values),st=st,use_previous_fortran=use_previous_fortran
72 75 ENDIF
73 76  
  77 +;stop
  78 +
74 79 IF not keyword_set(input_spec) THEN BEGIN
75 80 ; Convert into MJy/sr/1d20
76 81 fact = 1.e4*(*!dustem_HCD)/(4.*!pi)/(3.e8/1.e-6/st.sed.wav)*1.e20/1.e7 ;this is correct despite the way it is presented (1.e4/1e.7*1e.20=1.e17 which is the factor to convert from ergs to Mega Janskys)
... ... @@ -90,7 +95,7 @@ IF not keyword_set(input_spec) THEN BEGIN
90 95 ENDIF
91 96 ENDFOR
92 97 ENDIF
93   -endif
  98 +ENDIF
94 99  
95 100 if keyword_set(input_spec) then begin
96 101 SED_spec=input_spec
... ... @@ -98,7 +103,7 @@ if keyword_set(input_spec) then begin
98 103 endif
99 104  
100 105 ;------------------------------------------
101   -
  106 +;stop
102 107 IF not isarray(SED_spec) THEN stop
103 108  
104 109 ;COMPUTE THE MODEL SED
... ...
src/idl/dustem_make_sed_table.pro
... ... @@ -160,34 +160,16 @@ FOR i=0L,Nc-1 DO BEGIN
160 160 print,'fixed_parameter_values=',fiv
161 161 ;stop
162 162 ;=== initialise all this information into dustemwrap's brain
  163 + dustem_init_params,model,pd,pval,fpd=fpd,fiv=fiv,pol=use_polarisation,/force_reset
163 164 ;stop
164   - ;dustem_init_params,model,pd,pval,fpd=fpd,fiv=fpval,pol=use_polarisation
165   - dustem_init_params,model,pd,pval,fpd=fpd,fiv=fiv,pol=use_polarisation
166 165  
167 166 ;=== compute the predicted SED and extinction curve for the dust-model
168 167 ;=== and any plugins
169 168 dustem_Ised=dustem_compute_sed(pval,st=dummy)
170 169 dustem_Qsed=dustem_Ised*0.
171 170 dustem_Used=dustem_Ised*0.
172   - ; uncomment following lines if running a polarisation model and you
173   - ;want predictions of QU
174   - ;toto=dustem_compute_stokes(pval,st=dummy) ;this procedure also allows for the extraction of the spectra
175   - ;dustem_qsed = toto[0]
176   - ;dustem_used = toto[1]
177   -
178   - ;This is for extinction. Not used at the moment.
179   - ;dustem_iext=dustem_compute_ext(pval,st=dummy)
180   - ;dustem_Qext=dustem_Iext*0.
181   - ;dustem_Uext=dustem_Iext*0.
182   - ; uncomment following lines if running a polarisation model and you
183   - ;want predictions of QU
184   - ;toto=dustem_compute_stokext(pval,st=dummy) ;this procedure also allows for the extraction of the spectra
185   - ;dustem_qext = toto[0]
186   - ;dustem_uext = toto[1]
187 171  
188 172 ;== Now we have a predicted SED (I), we fill up a structure that we
189   - ;== will write to the sed_outfile
190   - ;== if you
191 173 sed.stokesI=dustem_Ised
192 174 sed.stokesQ=dustem_Qsed
193 175 sed.stokesU=dustem_Used
... ... @@ -215,7 +197,7 @@ FOR i=0L,Nc-1 DO BEGIN
215 197 ENDIF
216 198 ;stop
217 199 ENDFOR
218   -;stop
  200 +stop
219 201  
220 202 str='one_sed={'
221 203 FOR i=0L,Nparams-1 DO BEGIN
... ... @@ -232,7 +214,7 @@ ENDFOR
232 214 str=str+'total:0.d0}'
233 215 toto=execute(str)
234 216  
235   -;stop
  217 +stop
236 218 Noffset=1
237 219 IF use_polarization EQ 1 THEN Noffset=3
238 220 seds_array=replicate(one_sed,Nc)
... ...
src/idl/dustem_param_range2param_values.pro
1   -FUNCTION dustem_param_range2param_values,iv_min,iv_max,iv_Nvalues,Nc=Nc,log=log
  1 +FUNCTION dustem_param_range2param_values,iv_min,iv_max,iv_Nvalues,Nc=Nc,log=log,help=help
  2 +
  3 +
  4 +;+
  5 +; NAME:
  6 +; dustem_param_range2param_values
  7 +; PURPOSE:
  8 +; computes sets (combinations) of dustem parameter values with no duplicate combination, based on min-max values for each parameter
  9 +; CATEGORY:
  10 +; Dustem
  11 +; CALLING SEQUENCE:
  12 +; params_set=dustem_param_range2param_values(iv_min,iv_max,iv_Nvalues[,Nc=][,log=])
  13 +; INPUTS:
  14 +; iv_min : minimum values of parameters (array of Npar values)
  15 +; iv_max : maximum values of parameters (array of Npar values)
  16 +; iv_Nvalues : Number of individual parameter cvalues needed (array of Npar values)
  17 +; OPTIONAL INPUT PARAMETERS:
  18 +; log : array indicating which parameter should be sampled in log scale (1) or linear scale (0). Default is linear for all parameters
  19 +; OUTPUTS:
  20 +; params_set :array of pointers containing parameter values (has Nc elements each pointing to an array of Npar values)
  21 +; OPTIONAL OUTPUT PARAMETERS:
  22 +; Nc : nmeber of parameter combinations
  23 +; ACCEPTED KEY-WORDS:
  24 +; help : If set, print this help
  25 +; COMMON BLOCKS:
  26 +; None
  27 +; SIDE EFFECTS:
  28 +; None
  29 +; RESTRICTIONS:
  30 +;
  31 +; PROCEDURE:
  32 +; None
  33 +; EXAMPLES
  34 +; res=dustem_param_range2param_values([0,2.],[8.,3.e1],[9,5],Nc=Nc,log=[0,1])
  35 +; print,*res[13]
  36 +; 4.00000 3.93598
  37 +; MODIFICATION HISTORY:
  38 +; Written by J.-Ph. Bernard (2023)
  39 +; Evolution details on the DustEMWrap gitlab.
  40 +; See http://dustemwrap.irap.omp.eu/ for FAQ and help.
  41 +;-
  42 +
  43 +IF keyword_set(help) THEN BEGIN
  44 + doc_library,'dustem_param_range2param_values'
  45 + ivs=0.
  46 + goto,the_end
  47 +ENDIF
2 48  
3 49 Nparams=n_elements(iv_min)
4 50  
... ... @@ -9,7 +55,7 @@ FOR i=0L,Nparams-1 DO Nc=Nc*iv_Nvalues[i]
9 55 ;compute parameters possible values
10 56 par_values=ptrarr(Nparams)
11 57 FOR i=0L,Nparams-1 DO BEGIN
12   - vv=range_gen(iv_Nvalues[i],[iv_min[i],iv_max[i]],log=log)
  58 + vv=range_gen(iv_Nvalues[i],[iv_min[i],iv_max[i]],log=log[i])
13 59 par_values[i]=ptr_new(vv)
14 60 ENDFOR
15 61 ;=== compute combinations
... ... @@ -26,5 +72,7 @@ FOR i=0L,Nc-1 DO BEGIN
26 72 ;stop
27 73 ENDFOR
28 74  
  75 +the_end:
29 76 RETURN,ivs
  77 +
30 78 END
31 79 \ No newline at end of file
... ...
src/idl/dustem_plugin_phangs_stellar_isrf.pro
... ... @@ -84,8 +84,11 @@ IF keyword_set(paramtag) THEN BEGIN
84 84 ENDIF
85 85  
86 86 use_object_distance=1. ;MPc
87   -use_object_thickness=1. ;kPc
88   -use_omega_ratio=((use_object_thickness/2.)/(use_object_distance*1.e6))^2
  87 +use_object_thickness=1. ;Pc
  88 +IF keyword_set(object_distance) THEN use_object_distance=object_distance
  89 +IF keyword_set(object_thickness) THEN use_object_thickness=object_thickness
  90 +
  91 +use_omega_ratio=((use_object_thickness/2.*1.e3)/(use_object_distance*1.e6))^2
89 92 ;This factor is to go from Inu_stars in MJy/sr to 4*pi*Iisrf in ergs/s/cm2/Hz
90 93 use_factor=4.*!pi*1.e-20*1.e7*1.e4*use_omega_ratio
91 94  
... ...
src/idl/dustem_set_params.pro
... ... @@ -61,7 +61,12 @@ IF count EQ n_elements(*(*!dustem_fit).param_descs) THEN BEGIN
61 61 goto,the_end
62 62 ENDIF
63 63  
  64 +;stop
64 65 Nparams=n_elements(*(*!dustem_fit).param_descs)
  66 +IF n_elements(params) NE Nparams THEN BEGIN
  67 + message,'Inconsistent number of parameters passed',/info
  68 + stop
  69 +ENDIF
65 70  
66 71 ;Trimmed JPB on 08 March 2024
67 72 ;dustem_set_func_ind,*(*!dustem_fit).param_descs,params
... ... @@ -93,6 +98,7 @@ FOR i=0L,Nparams-1 DO BEGIN
93 98 ENDCASE
94 99 ENDFOR
95 100  
  101 +;==== This writes the input files for the fortran
96 102 dustem_write_all,*!dustem_params,!dustem_dat
97 103  
98 104 the_end:
... ...
src/idl/dustem_set_up_fortran.pro
... ... @@ -101,11 +101,13 @@ message,&#39;Issuing &#39;+str,/cont
101 101 spawn,str
102 102  
103 103 ;2/ compile dustem
104   -str='rm '+!DUSTEM_SOFT_DIR+'/src/*.o'
  104 +;str='rm '+!DUSTEM_SOFT_DIR+'/src/*.o'
  105 +str='rm '+!DUSTEM_SOFT_DIR+'/src/DM_constants.o'
105 106 message,'Issuing '+str,/cont
106 107 spawn,str
107 108  
108   -str='rm '+!DUSTEM_SOFT_DIR+'/src/*.mod'
  109 +;str='rm '+!DUSTEM_SOFT_DIR+'/src/*.mod'
  110 +str='rm '+!DUSTEM_SOFT_DIR+'/src/DM_constants.mod'
109 111 message,'Issuing '+str,/cont
110 112 spawn,str
111 113  
... ...