Expanded Description
| Topic |
Description |
| Name |
parseholdings |
| Synopsis |
/infobank/programs/dbase/parseholdings/parseholdings.for |
| Description |
Program to validate and parse holdings spreadsheets by
Activity ID, Container #, Accession #, Scientist, and Teams.
|
| AUTHOR |
Clint Steele 8/17/2005
Carolyn Degnan 04/06/2011, added simicolon to comma as delimiter
Carolyn Degnan 05/26/2011, added a check that these 6 files
have been removed prior to running this program:
/infobank/tmp/parseholdings.txt.temp
/infobank/tmp/parseholdings.containers.sorted.temp
/infobank/tmp/parseholdings.teams.sorted.temp
/infobank/tmp/parseholdings.activities.sorted.temp
/infobank/tmp/parseholdings.accessions.sorted.temp
/infobank/tmp/parseholdings.scientists.sorted.temp
|
| Reads |
read (HoldingsList, '(q,a)', end = 99)
* HoldingsLineLength, HoldingsLine(1:HoldingsLineLength)
read (TextFile, '(q,a)', end = 98)
* ALineLength(RecordCount),
* ALine(RecordCount)(1:ALineLength(RecordCount))
read (SortedContainersFile, '(i8,t10,i)', err=10, end=100)
* ItemNumber,
* ContainerNumber
read (SortedTeamsFile, '(i8,t10,q,a)', err=11, end=101)
* ItemNumber,
* ThisTeamLength, ThisTeam(1:ThisTeamLength)
read (Container(ItemNumber), '(i)', err=11) ContainerNumber
read (SortedActivitiesFile, '(i8,t10,q,a)', err=12, end=102)
* ItemNumber,
* ThisActivityLength, ThisActivity(1:ThisActivityLength)
read (Container(ItemNumber)(1:ContainerLength), '(i)',
* err = 12)
* ContainerNumber
read (SortedAccessionsFile, '(i8,t10,q,a)', err=13, end=103)
* ItemNumber,
* ThisAccessionLength, ThisAccession(1:ThisAccessionLength)
read (SortedScientistsFile, '(i8,t10,q,a)', err=61, end=601)
* ItemNumber,
* ThisScientistLength, ThisScientist(1:ThisScientistLength)
read (Container(ItemNumber), '(i)', err=61) ContainerNumber
|
| Writes |
write (TempAccession, '(2000x)')
write (Accession(RecordCount), '(2000x)')
write (ContainersFile, '(i8.8,t10,a)') Loop,
* Container(Loop)(1:ContainerLength)
write (ActivitiesFile, '(i8.8,t10,a)') Loop,
* Activity(Loop)(1:ActivityLength)
write (AccessionsFile, '(i8.8,t10,a)') Loop,
* Accession(Loop)(1:AccessionLength)
write (TeamsFile, '(i8.8,t10,a)') Loop,
* Team(Loop)(1:TeamLength)
write (SciTemp, '(2000x)')
write (ScientistsFile, '(i8.8,t10,a)') Loop,
* SciTemp(SciStart:SciTempLength)
write (ScientistsFile, '(i8.8,t10,a)') Loop,
* SciTemp(SciStart:Delimiter-1)
write (ScientistsFile, '(i8.8,t10,a)') Loop,
* SciTemp(SciStart:SciTempLength)
write (ThisContainer, '(i5.5)') ContainerNumber
write (ItemsFile, '(a)')
* ALine(ItemNumber)(1:ALineLength(ItemNumber))
write (ThisContainer, '(i5.5)') ContainerNumber
write (ItemsFile, '(a)')
* ALine(ItemNumber)(1:ALineLength(ItemNumber))
write (SortedIDsFile, '(i5.5,t10,a)')
* ContainerNumber,
* ThisActivity(1:ThisActivityLength)
write (ItemsFile, '(a)')
* ALine(ItemNumber)(1:ALineLength(ItemNumber))
write (ItemsFile, '(a)')
* ALine(ItemNumber)(1:ALineLength(ItemNumber))
write (ThisContainer, '(i5.5)') ContainerNumber
write (ItemsFile, '(a)')
* ALine(ItemNumber)(1:ALineLength(ItemNumber))
|
| Opens |
open (unit = HoldingsList,
* access = 'sequential',
* form = 'formatted',
* status = 'old',
* name = '/infobank/programs/keep/holdings_list.keep')
open (unit = TextFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.txt.temp')
open (unit = ContainersFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.containers.temp')
open (unit = ActivitiesFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.activities.temp')
open (unit = AccessionsFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.accessions.temp')
open (unit = TeamsFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.teams.temp')
open (unit = ScientistsFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.scientists.temp')
open (unit = SortedContainersFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.containers.sorted.temp')
open (unit = ItemsFile,
* access = 'append',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/programs/dbase/'//
* 'parseholdings/containers/'//
* ThisContainer(5:5)//'/'//
* ThisContainer(1:5)//'.items')
open (unit = SortedTeamsFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.teams.sorted.temp')
open (unit = ItemsFile,
* access = 'append',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/programs/dbase/'//
* 'parseholdings/teams/'//
* ThisTeam(1:ThisTeamLength)//'/'//
* ThisContainer(1:5)//'.items')
open (unit = SortedActivitiesFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.activities.sorted.temp')
open (unit = SortedIDsFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.ids.temp')
open (unit = ItemsFile,
* access = 'append',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/programs/dbase/'//
* 'parseholdings/activities/'//
* ThisActivity(1:ThisActivityLength)//'.items')
open (unit = SortedAccessionsFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.accessions.sorted.temp')
open (unit = ItemsFile,
* access = 'append',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/programs/dbase/'//
* 'parseholdings/accessions/'//
* ThisAccession(RightAnchor+1:LeftAnchor-1)//'.items')
open (unit = ItemsFile,
* access = 'append',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/programs/dbase/'//
* 'parseholdings/accessions/'//
* ThisAccession(1:ThisAccessionLength)//'.items')
open (unit = SortedScientistsFile,
* access = 'sequential',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/tmp/parseholdings.scientists.sorted.temp')
open (unit = ItemsFile,
* access = 'append',
* form = 'formatted',
* status = 'unknown',
* name = '/infobank/programs/dbase/'//
* 'parseholdings/scientists/'//
* ThisScientist(1:ThisScientistLength)//'/'//
* ThisContainer(1:5)//'.items')
|
| Calls |
call executiontime (480)
call system ('/bin/rm /infobank/tmp/parseholdings.txt.temp')
call system ('/bin/rm '//
* '/infobank/tmp/parseholdings.containers.sorted.temp')
call system ('/bin/rm '//
* '/infobank/tmp/parseholdings.teams.sorted.temp')
call system ('/bin/rm '//
* '/infobank/tmp/parseholdings.activities.sorted.temp')
call system ('/bin/rm '//
* '/infobank/tmp/parseholdings.accessions.sorted.temp')
call system ('/bin/rm '//
* '/infobank/tmp/parseholdings.scientists.sorted.temp')
call system ('/bin/cat '//
* HoldingsLine(1:HoldingsLineLength)//' >&g
* '/infobank/tmp/parseholdings.txt.temp')
call changecase ('SMALLS', Activity(Loop))
call changecase ('SMALLS', Accession(Loop))
call changecase ('SMALLS', Team(Loop))
call changecase ('SMALLS', Scientist(Loop))
call stringlen (Container(Loop), ContainerLength)
call stringlen (Activity(Loop), ActivityLength)
call stringlen (Accession(Loop), AccessionLength)
call stringlen (Team(Loop), TeamLength)
call stringlen (Scientist(Loop), ScientistLength)
call system ('/bin/sort -k 2 -k 1 '//
* '/infobank/tmp/parseholdings.containers.temp >
* '/infobank/tmp/parseholdings.containers.sorted.temp')
call system ('/bin/sort -k 2 -k 1 '//
* '/infobank/tmp/parseholdings.activities.temp >
* '/infobank/tmp/parseholdings.activities.sorted.temp')
call system ('/bin/sort -k 2 -k 1 '//
* '/infobank/tmp/parseholdings.accessions.temp >
* '/infobank/tmp/parseholdings.accessions.sorted.temp')
call system ('/bin/sort -k 2 -k 1 '//
* '/infobank/tmp/parseholdings.teams.temp >
* '/infobank/tmp/parseholdings.teams.sorted.temp')
call system ('/bin/sort -k 2 -k 1 '//
* '/infobank/tmp/parseholdings.scientists.temp >
* '/infobank/tmp/parseholdings.scientists.sorted.temp')
call system
* ('/bin/rm /infobank/tmp/parseholdings.containers.temp')
call system
* ('/bin/rm /infobank/tmp/parseholdings.activities.temp')
call system
* ('/bin/rm /infobank/tmp/parseholdings.accessions.temp')
call system
* ('/bin/rm /infobank/tmp/parseholdings.teams.temp')
call system
* ('/bin/rm /infobank/tmp/parseholdings.scientists.temp')
call system ('/bin/rm /infobank/programs/dbase/'//
* 'parseholdings/teams/cmg/*'//
* Counter(Loop:Loop)//'.items')
call system ('/bin/rm /infobank/programs/dbase/'//
* 'parseholdings/teams/*/*.items')
call system ('/bin/mkdir '//
* '/infobank/programs/dbase/'//
* 'parseholdings/teams/'//
* ThisTeam(1:ThisTeamLength))
call system ('/bin/cp '//
* '/infobank/programs/index.html '//
* '/infobank/programs/dbase/'//
* 'parseholdings/teams/'//
* ThisTeam(1:ThisTeamLength)//'/index.html')
call system ('/bin/rm /infobank/programs/dbase/'//
* 'parseholdings/activities/'//
* Alphabet(Loop:Loop)//'*.items')
call system ('/bin/rm /infobank/programs/dbase/'//
* 'parseholdings/activities/_*.items')
call stringlen (Container(ItemNumber), ContainerLength)
call stringlen (ThisActivity(1:ThisActivityLength),
* ThisActivityLength)
call system ('/bin/rm /infobank/tmp/parseholdings.ids.temp')
call system ('/bin/rm /infobank/programs/dbase/'//
* 'parseholdings/accessions/*.items')
call stringlen (Container(ItemNumber), ContainerLength)
call system ('/bin/rm /infobank/programs/dbase/'//
* 'parseholdings/scientists/*.items')
call system ('/bin/rm /infobank/programs/dbase/'//
* 'parseholdings/scientists/'//
* Alphabet(Loop:Loop)//'*/*.items')
call system ('/bin/mkdir '//
* '/infobank/programs/dbase/'//
* 'parseholdings/scientists/'//
* ThisScientist(1:ThisScientistLength))
call system ('cp /infobank/programs/index.html '//
* '/infobank/programs/dbase/'//
* 'parseholdings/scientists/'//
* ThisScientist(1:ThisScientistLength))
|
|