c Copyright (C) 2008-2014 Vincent Eymet c c KSPECTRUM is free software; you can redistribute it and/or modify c it under the terms of the GNU General Public License as published by c the Free Software Foundation; either version 3, or (at your option) c any later version. c KSPECTRUM is distributed in the hope that it will be useful, c but WITHOUT ANY WARRANTY; without even the implied warranty of c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the c GNU General Public License for more details. c You should have received a copy of the GNU General Public License c along with KSPECTRUM; if not, see c subroutine num2str2(num,str2) implicit none include 'max.inc' include 'formats.inc' integer num character*1 zeroch,kch1 character*2 str2 c label integer strlen character*(Nchar_mx) label label='subroutine num2str2' write(zeroch,11) 0 if ((num.ge.0).and.(num.lt.10)) then write(kch1,11) num str2=zeroch(1:strlen(zeroch)) & //kch1(1:strlen(kch1)) else if ((num.ge.10).and.(num.lt.100)) then write(str2,12) num else write(*,*) 'Error from routine num2str2' write(*,*) 'num=',num,' >= 100' stop endif return end subroutine num2str3(num,str3) implicit none include 'max.inc' include 'formats.inc' integer num character*1 zeroch,kch1 character*2 kch2 character*3 str3 c label integer strlen character*(Nchar_mx) label label='subroutine num2str3' write(zeroch,11) 0 if ((num.ge.0).and.(num.lt.10)) then write(kch1,11) num str3=zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //kch1(1:strlen(kch1)) else if ((num.ge.10).and.(num.lt.100)) then write(kch2,12) num str3=zeroch(1:strlen(zeroch)) & //kch2(1:strlen(kch2)) else if ((num.ge.100).and.(num.lt.1000)) then write(str3,13) num else write(*,*) 'Error from routine num2str3' write(*,*) 'num=',num,' >= 1000' stop endif return end subroutine num2str10(num,str10) implicit none include 'max.inc' include 'formats.inc' integer*8 num character*1 zeroch,kch1 character*2 kch2 character*3 kch3 character*4 kch4 character*5 kch5 character*6 kch6 character*7 kch7 character*8 kch8 character*9 kch9 character*10 str10 c label integer strlen character*(Nchar_mx) label label='num2str10' write(zeroch,11) 0 if ((num.ge.0).and.(num.lt.10)) then write(kch1,11) num str10=zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //kch1(1:strlen(kch1)) else if ((num.ge.10).and.(num.lt.100)) then write(kch2,12) num str10=zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //kch2(1:strlen(kch2)) else if ((num.ge.100).and.(num.lt.1000)) then write(kch3,13) num str10=zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //kch3(1:strlen(kch3)) else if ((num.ge.1000).and.(num.lt.10000)) then write(kch4,14) num str10=zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //kch4(1:strlen(kch4)) else if ((num.ge.10000).and.(num.lt.100000)) then write(kch5,15) num str10=zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //kch5(1:strlen(kch5)) else if ((num.ge.100000).and.(num.lt.1000000)) then write(kch6,16) num str10=zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //kch6(1:strlen(kch6)) else if ((num.ge.1000000).and.(num.lt.10000000)) then write(kch7,17) num str10=zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //kch7(1:strlen(kch7)) else if ((num.ge.10000000).and.(num.lt.100000000)) then write(kch8,18) num str10=zeroch(1:strlen(zeroch)) & //zeroch(1:strlen(zeroch)) & //kch8(1:strlen(kch8)) else if ((num.ge.100000000).and.(num.lt.1000000000)) then write(kch9,19) num str10=zeroch(1:strlen(zeroch)) & //kch9(1:strlen(kch9)) else write(str10,110) num endif return end