C CETTE OPTION PERMET DE TRIER UN FICHIER DE NUMERO LOGIQUE JUNI C LE RESULTAT TRIE EST PLACE SUR LE FICHIER *** SORTOUT *** C A PREVOIR DANS LES CARTES CONTROLES C C SI LE FICHIER A TRIER EST FORMATTE PREVOIR UNE CARTE DD C DE NUMERO LOGIQUE JUNI+1 POUR UNE COPIE PROVISOIRE BINAIRE C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * C subroutine trif(juni,isor,pgm,mode,vers,*) C character*132 fnt character*112 fml character*80 fmc,fb character*44 fmt character*6 fff character*3 pgm dimension a(29) integer vers C common/ffff/ fml,fmc,fmt,fnt,fff C equivalence (a(15),isot),(a(16),imol) C luni=juni+1 write(isor,1000) pgm,pgm,vers 1000 format(1x,17('*'),98x,17('*')/1x,'* geisa geisa *', &31x,' spectroscopic data bank ',32x, &'* geisa geisa *'/' *',6x,a3,6x,'*',98x,'*',6x,a3,6x,'*'/ &' * geisa geisa *',26x,15x,'*** geisa',i2.2,' ***',16x, & 26x,'* geisa geisa *'/1x,17('*'),98x,17('*')/ & 1x,33x,'management and study of atmospheric spectroscopic &informations') write(isor,2000) juni 2000 format(//1x,45x,'sort of file refered by juni=',i2//) if(mode.eq.0) go to 20 C C FICHIER A TRIER FORMATE C do 10 j=1,80 10 fb(j:j)=fmc(j:j) c fb(7:7)=fmc(6:6) c print *,' formate:',fb go to 40 20 continue C C FICHIER A TRIER BINAIRE do 30 j=1,6 30 fb(j:j)=fff(j:j) C MIS A BLANC DU RESTE DU TABLEAU do 31 j=7,80 31 fb(j:j)=fmc(6:6) c print *,'Uformate:',fb 40 continue l=0 50 continue read (juni,fb,end=60) a l=l+1 write(luni) a go to 50 60 continue write(isor,3000) l 3000 format(/' total number of records sorted : ',i6) rewind luni c return C c call tri('*sort fields=(5,4,fl,a,9,4,fl,a)*' c & ,'*record type=v*',irc) call system ("sort -b -n -t: -k.1,.4 -k.5,.8 ") c &-o fort.11 fort.11 ") C if(irc.eq.0) write(isor,3010) l 3010 format(/' ',i6,' records has been sorted successfully'//) if(irc.ne.0) write(isor,3020) 3020 format(/' step sort ended normaly '/) return end