
                  PROGRAM MONTECARLO					
                    IMPLICIT NONE
! Written by: Jafar Ghazanfarian
! Radiative heat transfer
! Calculation of shape factor for two prependicular plates 
!---------------------------------------------------------

INTEGER::COK,CTOTAL,CF,J,HH
!COK: No. of tries which are OK
!CTOTAL: Total No. of tries  

REAL*4:: R1,R2,R3,R4,A,X,Y,XP,YP,TETA,PHI,F,COKF,CTF,TANTETA
!F: View factor

PRINT*,'No. of total random number generation:';READ*,CF
PRINT*,'Enter depth'; READ*,A
COK=0 ; CTOTAL=0
     
DO WHILE(CF>=CTOTAL) 
 CALL RANDOM_NUMBER(R1)
 CALL RANDOM_NUMBER(R2)
 CALL RANDOM_NUMBER(R3)
 CALL RANDOM_NUMBER(R4)

 
 X=A*R1
 Y=R2
 PHI=3.14159*R3
 TANTETA=SQRT(1./R4-1.)

 XP=X+Y/TAN(PHI)
 YP=1.-Y/(SIN(PHI)*TANTETA)

  IF(XP<=A .AND. YP<=1. .AND. YP>=0 .AND. XP>=0 )THEN
     COK=COK+1
	 CTOTAL=CTOTAL+1
  ELSE
     CTOTAL=CTOTAL+1
  ENDIF

ENDDO

COKF=COK
CTF=CTOTAL
F=COKF/(CTF-1)   
PRINT*,'*******************'
PRINT*,'View factor is:',F/2 !Tell me why F/2?
PRINT*,'Percentage of deviation from cross string method (2D case ):', abs(F/2.-1.+sqrt(2.)/2)/(F/2.)*100,'%'
PRINT*,'*******************'
                   ENDPROGRAM MONTECARLO    			   

 

  
