SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
trans_chaine.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 !
6 SUBROUTINE trans_chaine(HCHAINE,KENTIER,KOPTION)
7 !----------------------------------------------------------
8 !
9 ! transforme l'entier 23416 en la chaine de caracteres '23416'
10 ! option est utilise si superieur a 0. Dans ce cas si l'entier
11 ! a un nombre de digits inferieur a option, la difference est
12 ! remplie avec des '0' dans chaine.
13 !
14 !
15 ! ex: entier=256 option=0 ===> chaine='256'
16 ! entier=256 option=2 ===> chaine='256'
17 ! entier=256 option=7 ===> chaine='0000256'
18 !
19 USE yomhook ,ONLY : lhook, dr_hook
20 USE parkind1 ,ONLY : jprb
21 !
22 IMPLICIT NONE
23 !
24 INTEGER, INTENT(IN ) :: kentier, koption
25  CHARACTER(LEN=*), INTENT(OUT) :: hchaine
26 !
27  CHARACTER :: yc
28 INTEGER :: idivi
29 INTEGER :: ireste, inbdigit, inum
30 INTEGER:: i, j
31 !
32 REAL(KIND=JPRB) :: zhook_handle
33 !
34 IF (lhook) CALL dr_hook('TRANS_CHAINE',0,zhook_handle)
35 !
36 hchaine = ''
37 !
38 ireste = kentier
39 !
40 IF (kentier==0) THEN
41  inbdigit = 1
42 ELSE
43  inbdigit = int( log(kentier*1.)/log(10.)+0.001 ) + 1
44 ENDIF
45 !
46 idivi = 10**(inbdigit-1)
47 !
48 IF ( koption.GT.max(0,inbdigit) ) THEN
49  !
50  DO i = 1, koption-inbdigit
51  hchaine(i:i) = '0'
52  END DO
53  !
54 ENDIF
55 !
56 DO i = 1,inbdigit
57 !
58  inum = int(ireste*1./idivi)
59  yc = char(inum+48)
60  IF (koption.GT.0) THEN
61  j = koption-inbdigit+i
62  ELSEIF (koption.EQ.0) THEN
63  j = i
64  ENDIF
65  hchaine(j:j) = yc
66  ireste = ireste - inum*idivi
67  idivi = idivi/10
68 !
69 END DO
70 !
71 IF (lhook) CALL dr_hook('TRANS_CHAINE',1,zhook_handle)
72 !---------------
73 END SUBROUTINE trans_chaine
subroutine trans_chaine(HCHAINE, KENTIER, KOPTION)
Definition: trans_chaine.F90:6