Thank you very much. Now it is working fine.
On 2018-04-23 19:02, Giuseppe Battistoni wrote:
> Dear ArghyaC
> there were two problems:
> 1) all DIMENSION and DATA statements have to be placed
> before any other operative instructions, i.e. at the beginning of the
> routine.
> 2) starting from DIMENSION CENTERS(5) there were a few lines
> which were not correctly indented. In fortran the instruction
> has to begin in column 7
>
> In attachment the corrected routine
> G.B.
>
> On 23/04/2018 14:43, arghyac_at_barc.gov.in wrote:
>> On 2017-09-16 14:15, Andrea Fontana wrote:
>>> Hello Arghya,
>>> the idea is to save the x coordinates of the five centers in the
>>> array CENTERS and then to randomly generate the index in the interval
>>> 1:5 to select a random center among the five. The array looks like:
>>>
>>> ARRAY(1) = -10.
>>> ARRAY(2) = -5.
>>> ARRAY(3) = 0.
>>> ARRAY(4) = 5.
>>> ARRAY(5) = 10.
>>>
>>> Actually, if you check in the manual of FLUKA, FLRNDM returns a
>>> uniform random number in the interval [0,1), i.e. with 1 excluded:
>>> so it would be better to write 1+5*FLRNDM(XDUMMY) to have a random
>>> index among 1,2,3,4,5.
>>>
>>> In Fortran you can use the implicit type declaration (as in the FLUKA
>>> user routines) and so you can skip both REAL*4 or REAL*8 instructions
>>> and simply write a DIMENSION instruction. FLRNDM returns a 64-bit
>>> number and the conversion is done automatically: in your case I
>>> think
>>> this is not relevant since you round your numbers...
>>>
>>> So a better version of the code is:
>>>
>>> DIMENSION CENTERS(5)
>>> DATA CENTERS/-10.,-5.,0.,5.,10./
>>>
>>> INDEX = FLOOR(1+5*FLRNDM(XDUMMY))
>>> X0 = CENTERS(INDEX)
>>>
>>> CALL RACO(TXX, TYY, TZZ)
>>>
>>> RADIUS = R*FLRNDM(XDUMMY)
>>> XFLK (NPFLKA) = X0 + RADIUS*TXX
>>> YFLK (NPFLKA) = RADIUS*TYY
>>> ZFLK (NPFLKA) = RADIUS*TZZ
>>>
>>> I hope that now it is more clear. Please test it in your simulation
>>> and let us know in case of other doubts.
>>>
>>> Best regards,
>>> Andrea
>>>
>>>> On 2017-09-15 20:10, Andrea Fontana wrote:
>>>>> Dear Arghya,
>>>>> Â what about choosing randomly among the 5 sphere centers?
>>>>> Let us say with a code like:
>>>>>
>>>>> Â Â Â Â Â REAL*4 CENTERS(5), X0
>>>>> Â Â Â Â Â DATA CENTERS/-10.,-5.,0.,5.,10./
>>>>>
>>>>> Â Â Â Â Â X0 = CENTERS(FLOOR(6*FLRNDM(XDUMMY)))
>>>>>
>>>>> where X0 is the center of your current sphere and then:
>>>>>
>>>>> Â Â Â CALL RACO(TXX, TYY, TZZ)
>>>>> Â Â Â RADIUS = R*FLRNDM(XDUMMY)
>>>>> Â Â Â XFLK (NPFLKA) = X0 + RADIUS*TXX
>>>>> Â Â Â YFLK (NPFLKA) = RADIUS*TYY
>>>>> Â Â Â ZFLK (NPFLKA) = RADIUS*TZZ
>>>>>
>>>>> You have to generate 5 times histories, but the result should be
>>>>> the one you are looking for. I hope this helps.
>>>>>
>>>>> Kind regards,
>>>>> Andrea
>>>>>
>>>>> Il 15/09/2017 14:15, arghyac_at_barc.gov.in ha scritto:
>>>>>> Dear Experts,
>>>>>>
>>>>>> Â Â I need to simulate 5 spherical sources with different spatial
>>>>>> co-ordinate in a single source.f card.
>>>>>>
>>>>>> Â Â I model one sphere (centre at (0,0,0) in source.f card as
>>>>>> follows
>>>>>>
>>>>>> *particle corodinate
>>>>>> Â Â Â CALL RACO(TXX, TYY, TZZ)
>>>>>> Â Â Â RADIUS = R*FLRNDM(XDUMMY)
>>>>>> Â Â Â XFLK (NPFLKA) = RADIUS*TXX
>>>>>> Â Â Â YFLK (NPFLKA) = RADIUS*TYY
>>>>>> Â Â Â ZFLK (NPFLKA) = RADIUS*TZZ
>>>>>>
>>>>>> I guess I need to edit XFLK (NPFLKA), YFLK (NPFLKA), ZFLK
>>>>>> (NPFLKA) to
>>>>>> sample 5 spherical sources in single subroutine.
>>>>>> Co-ordinate of other 4 sphere's centre are (-10,0,0),
>>>>>> (-5,0,0),(5,0,0)
>>>>>> and (10,0,0). radius of each = 1.5 cm.
>>>>>>
>>>>>> Now how to sample other spheres here or how to edit it to
>>>>>> accommodate
>>>>>> all the 5 sources at the same time.
>>>>>>
>>>>>> Kindly give some suggestions.
>>>>>>
>>>>>> Thanking you in advance.
>>>>>>
>>>>>> With regards,
>>>>>> Arghya
>>>>>>
>>>>>> __________________________________________________________________________
>>>>>> You can manage unsubscription from this mailing list at
>>>>>> https://www.fluka.org/fluka.php?id=acc_info
>>>>>>
>>>> Dear Sir/Madam,
>>>> Thank you very much for quick reply.
>>>> I am beginner and not much excellence in Fortran programming. So
>>>> I
>>>> have few doubts. Kindly reply me.
>>>>
>>>> I need to choose all 5 sources randomly with equal probability
>>>> i.e as
>>>> if detector are exposed by all 5 sources simultaneously.
>>>>
>>>> Since I am using 64 bit computer,
>>>> can I use REAL*8 instead of REAL*4
>>>> CENTERS(5) and below that declared centers values as DATA
>>>> CENTERS/-10.,-5.,0.,5.,10./
>>>>
>>>> Then use X0 = CENTERS(FLOOR(6*FLRNDM(XDUMMY)))
>>>> here FLOOR(6*FLRNDM(XDUMMY) will produce integer number
>>>> 0,1,2,3,4,5,6
>>>> I am not getting how it will produce -5 and -10 and 10
>>>> co-ordinates ?
>>>> and why FLRNDM(XDUMMY) is multiplied by 6 only.
>>>>
>>>> Thanking you in advance
>>>>
>>>> __________________________________________________________________________
>>>> You can manage unsubscription from this mailing list at
>>>> https://www.fluka.org/fluka.php?id=acc_info
>>>>
>>>>
>>
>>
>> Dear FLUKA experts,
>>
>> As discussed earlier, I am trying to model 5 spherical source
>> using source.f card but not able to compile it.
>>
>> During compilation, it is giving following error
>>
>>
>> tarted 2018.04.23 18:19:50
>>>>> Compiling: /home/arghya/fluka/flutil/fff -b -N multi.f
>> multi.f:204:24:
>>
>> DIMENSION CENTERS(5)
>> 1
>> Error: Invalid character in name at (1)
>> Ended: 2018.04.23 18:19:50
>>
>> Error compiling
>> Error: compiling file: multi.f
>> No object generated
>>
>>
>>
>> Please find attached source.f card also.
>>
>> Kindly suggest me some solutions.
>>
>> Thanking you in advance.
>>
>> with regards
>> ArghyaC
__________________________________________________________________________
You can manage unsubscription from this mailing list at
https://www.fluka.org/fluka.php?id=acc_info
Received on Sun Apr 29 2018 - 21:23:05 CEST