PROGRAM SETPOLAR C====================================================================== C DATA ASSEMBLY PROGRAM FOR APPLICATION: POLAR1D.FOR C EIJI FUKUMORI 11-FEB-2022 C X(I) = RADIUS OF POLAR COORDINATE C CHARGE(I) = CHARGE SUCH AS CURRENT INTO THE CENTER WIRE OF COAXIAL C IBTYPE(1) = BOUNDARY CONDITION AT R=0 2 FOR NEUMANN C IBTYPE(2) = BOUNDARY CONDITION AT R=RADIUSB 1 FOR DICHILET C BV(I) = BOUNDARY VALUES C NODEX(I,J) = REPRESENTS ELEMENT CONFIGURATION C====================================================================== IMPLICIT REAL*8 ( A-H , O-Z ) PARAMETER ( MXND=3,MXE=20000, MXN=MXE+1, ND=2 ) DIMENSION NODEX(MXE,MXND),CHARGE(MXE),X(MXN),IBTYPE(2),BV(2) C---------- INFORMATION OF COAXIAL CABLE DIMENSION C-------------------- RADIUSA: RADIUS OF THE CENTER CONDUCTOR C-------------------- RADIUSB: RADIUS OF BRAIDED CONDUCTOR RADIUSA = 0.7D0 RADIUSB = 2.4D0 WRITE (*,*) 'RADIUS A=', RADIUSA WRITE (*,*) 'RADIUS B=', RADIUSB C---------- BOUNDARY CONDITIONS IBTYPE(1) = 2 IBTYPE(2) = 1 BV(1) = 0.D0 BV(2) = 0.D0 C---------- VALUE OF CHARGE INTO THE CENTER CONDUCTOR PI = 4.D0*DATAN (1.D0) Q = 1.D0/(2.D0*PI*RADIUSA) WRITE (*,*) 'UNIFORM ELECTRICAL CHARGE(Q(R=0 TO A))=',Q WRITE (*,*) 'BOUNDARY CONDITION AT R=0 IS NEUMANN TYPE' WRITE (*,*) 'BOUNDARY VALUE IS ', BV(1) WRITE (*,*) 'BOUNDARY CONDITION AT R=B IS DIRICHLET TYPE' WRITE (*,*) 'BOUNDARY VALUE IS ', BV(2) C---------------------------------------------------------- C--------- NE1 = NUMBER OF ELEMENTS WHERE CHARGE APPLIED C--------- NE2 = NO CHARGE ZONE NE1 = 10 NE2 = 30 NE = NE1 + NE2 WRITE (*,*) 'NUMBER OF ELEMENTS IN CHARGE ZONE NE1=', NE1 WRITE (*,*) 'NUMBER OF ELEMENTS IN NO-CHARGE ZONE NE2=', NE2 C------- NODAL NUMBER ASSIGNMENT---------- C--------------- CHARGE ZONE DO I = 1 , NE1 CHARGE(I) = Q DO J = 1 , ND NODE = I - 1 + J NODEX(I,J) = NODE END DO END DO C--------------- NO CHARGE ZONE ---------- DO I = 1+NE1 , NE1+NE2 CHARGE(I) = 0.D0 DO J = 1 , ND NODE = I - 1 + J NODEX(I,J) = NODE END DO END DO C--------------NODAL COORDINATE-------------- C------------ CHARGE ZONE NNODE1 = NE1 + 1 DX = RADIUSA / NE1 NNODE = 0 DO I = 1 , NNODE1 NNODE = NNODE + 1 X(NNODE) = ( I - 1 ) * DX END DO C------------ NO CHARGE ZONE NNODE2 = NE2 DX = ( RADIUSB - RADIUSA ) / NE2 DO I = 1 , NNODE2 NNODE = NNODE + 1 X(NNODE) = I*DX + RADIUSA END DO C------- WRITING DATA INTO INPUT FILE OPEN ( 1,FILE='POLAR.DAT', STATUS="UNKNOWN") WRITE(1,*) NE DO I = 1 , NE WRITE(1,*) I, (NODEX(I,J),J=1,ND), CHARGE(I) END DO DO I = 1 , NNODE WRITE(1,*) I, X(I) END DO WRITE(1,*) IBTYPE(1), BV(1) WRITE(1,*) IBTYPE(2), BV(2) CLOSE (1) STOP END