1*----------------------------------------------------------------------- 2* USPACK AXIS (AUTO SCALING) S.Sakai 99/10/07 3*----------------------------------------------------------------------- 4* Copyright (C) 2000-2004 GFD Dennou Club. All rights reserved. 5*----------------------------------------------------------------------- 6 SUBROUTINE USAXSC(CSIDE) 7 8 CHARACTER CSIDE*(*), CS, CP*8 9 EXTERNAL LENZ 10 LOGICAL LMATCH, LOFF 11 12 IF(CSIDE.EQ.' ') RETURN 13 14 CALL SGQTRN(ITR) 15 CALL SGQVPT(VXMIN, VXMAX, VYMIN, VYMAX) 16 CALL SGQWND(UXMIN0, UXMAX0, UYMIN0, UYMAX0) 17 18 CALL UZRGET('XFACT' , XFACT ) 19 CALL UZRGET('XOFFSET', XOFFSET) 20 CALL UZRGET('YFACT' , YFACT ) 21 CALL UZRGET('YOFFSET', YOFFSET) 22 UXMIN = XFACT*UXMIN0 + XOFFSET 23 UXMAX = XFACT*UXMAX0 + XOFFSET 24 UYMIN = YFACT*UYMIN0 + YOFFSET 25 UYMAX = YFACT*UYMAX0 + YOFFSET 26 27 NCS = LENZ(CSIDE) 28 CALL UZLGET('LOFFSET', LOFF) 29 CALL UZLSET('LOFFSET', .TRUE.) 30 31 DO 100 I=1, NCS 32 CS = CSIDE(I:I) 33 CALL CUPPER(CS) 34 35 IF(CS.EQ.'T' .OR. CS.EQ.'B' .OR. CS.EQ.'H') THEN 36 IF(CS.EQ.'H') CS='U' 37 38 IF(ITR.EQ.1 .OR. ITR.EQ.2) THEN 39 CP = 'IROTLX'//CS 40 CALL UZIGET(CP, IROTA) 41 CALL USLGET('LMATCH' , LMATCH) 42 MODE = MOD(IROTA,2) 43 IF(LMATCH) MODE = 0 44 45 CALL USUSCU('X', UXMIN, UXMAX, VXMIN, VXMAX, MODE) 46 CALL USRGET('DXT', DXT) 47 CALL USRGET('DXL', DXL) 48 IF(CS.EQ.'U') CS='H' 49 CALL USAXDV(CS, DXT, DXL) 50 51 ELSEIF(ITR.EQ.3 .OR. ITR.EQ.4) THEN 52 CALL USUSCL('X', UXMIN, UXMAX, VXMIN, VXMAX) 53 CALL USIGET('NLBLX' , NLBL ) 54 CALL USIGET('NTICKSX', NTICKS) 55 CALL USIGET('ITYPEX' , ITYPEX) 56 57 CALL ULIGET('IXTYPE', IT ) 58 CALL ULISET('IXTYPE', ITYPEX) 59 CALL USAXLG(CS, NLBL, NTICKS) 60 CALL ULISET('IXTYPE', IT ) 61 ELSE 62 CALL MSGDMP('E', 'USXAXS', 'INVALID TRANSFORMATION NUMBER.') 63 ENDIF 64 65 66 ELSEIF(CS.EQ.'L' .OR. CS.EQ.'R' .OR. CS.EQ.'V') THEN 67 IF(CS.EQ.'V') CS='U' 68 69 IF(ITR.EQ.1 .OR. ITR.EQ.3) THEN 70 CP = 'IROTLY'//CS 71 CALL UZIGET(CP, IROTA) 72 CALL USLGET('LMATCH' , LMATCH) 73 MODE = MOD(IROTA+1,2) 74 IF(LMATCH) MODE = 0 75 76 CALL USUSCU('Y', UYMIN, UYMAX, VYMIN, VYMAX, MODE) 77 CALL USRGET('DYT', DYT) 78 CALL USRGET('DYL', DYL) 79 IF(CS.EQ.'U') CS='V' 80 CALL USAXDV(CS, DYT, DYL) 81 82 ELSEIF(ITR.EQ.2 .OR. ITR.EQ.4) THEN 83 CALL USUSCL('Y', UYMIN, UYMAX, VYMIN, VYMAX) 84 CALL USIGET('NLBLY' , NLBL ) 85 CALL USIGET('NTICKSY', NTICKS) 86 CALL USIGET('ITYPEY' , ITYPEY) 87 88 CALL ULIGET('IYTYPE', IT ) 89 CALL ULISET('IYTYPE', ITYPEY) 90 CALL USAXLG(CS, NLBL, NTICKS) 91 CALL ULISET('IYTYPE', IT ) 92 93 ELSE 94 CALL MSGDMP('E', 'USYAXS', 'INVALID TRANSFORMATION NUMBER.') 95 ENDIF 96 97 ENDIF 98 99 100 CONTINUE 100 101 CALL UZLSET('LOFFSET', LOFF) 102 END 103