copyright (C) 2001 MSC-RPN COMM %%%MC2%%% ***s/r getindx2 *subroutine getindx2 (varname,bus,deb,nm,initd) 71 implicit none * character*(*) varname character*1 bus integer deb,nm,initd * *AUTHOR Michel Desgagne Nov 1995 * *REVISION * *LANGUAGE Fortran 77 * *OBJECT (getindx2) * Obtain starting index "deb", length "nm" and init requirement * "init" for variable "varname" from bus "bus". * *FILES * *ARGUMENTS * NAMES I/O TYPE A/S DESCRIPTION * * varname I C S Name of the variable * bus I C S Bus (D,P,V,G) * deb O I S Starting index on bus * nm O I S Length of variable varname * init O I S Initialysation requirement (1=yes) * *IMPLICITES * #include "lesbus.cdk"
* *MODULES * ** integer i,init *------------------------------------------------------------------- if (bus.eq.'E') then do 5 i=1,enttop if (varname.eq.entnm(i)) then deb = entpar(i,1) nm = entpar(i,2) init= entpar(i,3) goto 601 endif 5 continue if (initd.lt.0) goto 601 write (6,910) varname,'BUSENT' endif * if (bus.eq.'D') then do 10 i=1,dyntop if (varname.eq.dynnm(i)) then deb = dynpar(i,1) nm = dynpar(i,2) init= dynpar(i,3) goto 601 endif 10 continue if (initd.lt.0) goto 601 write (6,910) varname,'BUSDYN' endif * if (bus.eq.'P') then do 20 i=1,pertop if (varname.eq.pernm(i)) then deb = perpar(i,1) nm = perpar(i,2) init= perpar(i,3) goto 601 endif 20 continue if (initd.lt.0) goto 601 write (6,910) varname,'BUSPER' endif * if (bus.eq.'V') then do 30 i=1,voltop if (varname.eq.volnm(i)) then deb = volpar(i,1) nm = volpar(i,2) init= volpar(i,3) goto 601 endif 30 continue if (initd.lt.0) goto 601 write (6,910) varname,'BUSVOL' endif * if (bus.eq.'G') then do 40 i=1,geotop if (varname.eq.geonm(i,1)) then deb = geopar(i,1) nm = geopar(i,2) init= geopar(i,3) goto 601 endif 40 continue write (6,910) varname,'BUSGEO' endif deb = -1 nm = 0 stop 601 continue if (initd.ge.0) initd = init 910 format (/1x,'===> ABORT IN GETINDX: COULD NOT FIND'/ $ 1x," VARIABLE '",a8,"' ON '",a6,"'."/) * *------------------------------------------------------------------- return end