subroutine getmod c c this routine loads complete irpa and imsh arrays for c a whole 8 second block of data. c it gets the decoded word 7 flags from the /i7flgs/ common c block, which must be defined by a call to deffgs. c c v1.0 jfe johnson 23 jul 82 c v1.1 jfej 9 sep 82 expanded /i7flgs/ to include all flags c v1.2 jfej 29 sep 82 the imsf, irpf flags in correct order c c based on expmod written by jlg 9/28/81 c integer*4 irpa(32,2,8),imsh(32,2,8) integer*2 irpamd(32),imsmd(32) integer*2 hder1(100),imdf(8),ical(8),imsf(8),irpf(8),irpac(8) integer*2 idat(2812),i7flgs(8,22) common /maf1/ idat common/i7flgs/i7flgs common/rpamsh/irpa,imsh equivalence (i7flgs(1,1),imdf) equivalence (i7flgs(1,5),ical) equivalence (i7flgs(1,18),irpf) equivalence (i7flgs(1,19),imsf) equivalence (i7flgs(1,7),irpac) equivalence (idat(1),hder1(1)) equivalence (hder1(37),irpamd(1)) equivalence (hder1(69),imsmd(1)) c c loop over all 16 half seconds in current data record c do 100 isec=1,8 do 101 ihsec=1,2 c if( (imdf(isec).eq.0).and.(ical(isec).eq.0) ) go to 2000 c a memory dump or a calibration sequence must be going on c do 1000 j=1,32 irpa(j,ihsec,isec)=-1 imsh(j,ihsec,isec)=-1 1000 continue go to 101 c c load in the memory dump rpa and ims c 2000 continue do 3000 j=1,32 irpa(j,ihsec,isec)=irpamd(j) imsh(j,ihsec,isec)=imsmd(j) 3000 continue c c determine the actual rpa values c if(irpf(isec).eq.0) go to 5000 c ignore the rpa mem-dump settings and set all rpa's to 0 do 4000 j=1,32 irpa(j,ihsec,isec)=0 4000 continue c c determine the actual ims values c 5000 continue if( (imsf(isec).eq.0).and.(irpac(isec).eq.0) ) go to 7000 c if irpac = 1 then the ims is ignored and we are in the c electrometer mode imass=-1 c if imsf = 1 then toggling on h+/he+ (load in he+ into high ims) if(imsf(isec).eq.1) imass=3610 do 6000 j=1,32 imsh(j,ihsec,isec)=imass 6000 continue go to 101 7000 continue c c call routine to update ims values if mass 'slide' sequence present c call modmsh(irpa(1,ihsec,isec),imsh(1,ihsec,isec)) 101 continue 100 continue return end