CC---PROGRAM TO GENERATE PERTURBED MESH C PROGRAM PERT SUBROUTINE ABQMAIN C INCLUDE 'ABA_PARAM.INC' DIMENSION ARRAY(513),JRRAY(NPRECD,513) EQUIVALENCE(ARRAY(1),JRRAY(1,1)) DIMENSION RB(5,41),LRUNIT(2,1) C C READ RADIAL EIGENVECTOR VALUES FROM FILE OUTPUT ON UNIT 8 C WRITE NODAL COORDINATES OF PERTURBED MESH TO UNIT 15 C CHARACTER*80 FNAME FNAME='bucklecylshell_stri3_n4' OPEN(UNIT=15,STATUS='NEW',FILE='CYLIN.NOD') NRU=1 LRUNIT(1,1)=8 LRUNIT(2,1)=2 LOUTF=2 CALL INITPF(FNAME,NRU,LRUNIT,LOUTF) JUNIT=8 CALL DBRNU(JUNIT) C N=4 DTHETA=180./DBLE(8*N) I=0 J=1 DO 100 K1=1,99999 CALL DBFILE(0,ARRAY,JRCD) IF(JRCD.NE.0) GO TO 900 KEY = JRRAY(1,2) IF(KEY.NE.101) GO TO 100 DELR=SQRT(ARRAY(4)**2+ARRAY(6)**2) I=I+1 IF(I.LE.5) GO TO 50 J=J+1 I=1 50 CONTINUE RB(I,J)=DELR 100 CONTINUE 900 CONTINUE C C ADD DIAGNOSTICS TO CHECK IF THE FILE WAS READ PROPERLY. C IF(I.EQ.0) THEN WRITE(6,*) ' ' WRITE(6,*) '***********************************************' WRITE(6,*) ' bucklecylshell_stri3_n4.fil NOT READ PROPERLY' WRITE(6,*) ' CHECK ASSIGNMENTS ' WRITE(6,*) '***********************************************' WRITE(6,*) ' ' GO TO 990 ENDIF THETA=0. NDST=10 SIGN=1. CALL NGEN(RB,SIGN,THETA,DTHETA,NDST,1,5) CALL NGEN(RB,-SIGN,THETA,DTHETA,NDST,4,1) 990 CONTINUE STOP END C SUBROUTINE NGEN(RB,SIGN,THETA,DTHETA,NDST,ISTRT,IEND) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION RB(5,41) C C P = PERTURBATION FACTOR (FRACTION OF CYLINDER THICKNESS) C RR = CYLINDER RADIUS C H = CYLINDER THICKNESS C P=0.01 RR=100. H=.25 ZDELT=10. NODE=NDST Z=0. INC=AINT(SIGN) DO 60 IROW=ISTRT,IEND,INC DO 50 JCOL=1,41 R=RR+RB(IROW,JCOL)*P*H*SIGN WRITE(15,10) NODE,R,THETA,Z 10 FORMAT(I5,3(',',F11.5)) NODE=NODE+10 Z=Z+ZDELT 50 CONTINUE NDST=NDST+1 NODE=NDST Z=0. THETA=THETA+DTHETA 60 CONTINUE RETURN END