Changeset 5748 for LMDZ6/trunk/libf/misc


Ignore:
Timestamp:
Jul 2, 2025, 12:00:08 PM (8 months ago)
Author:
dcugnet
Message:
  • Use REAL(KIND=REAL32) and REAL(KIND=REAL64) Iinstead of REAL and DOUBLE PRECISION

to avoid ambiguity problems in generic procedure when reals are promoted to doubles.

  • generic "num2str" replaces "str2int", "str2real", "str2dble" and "str2bool" functions.
Location:
LMDZ6/trunk/libf/misc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/misc/readTracFiles_mod.f90

    r5746 r5748  
    33  USE strings_mod,    ONLY: msg, find, get_in, dispTable, strHead,  strReduce,  strFind, strStack, strIdx, &
    44             removeComment, cat,       maxlen, checkList, strParse, strReplace, strTail, strCount, reduceExpr, &
    5              int2str, str2int, real2str, str2real, bool2str, str2bool
     5             num2str, str2int, str2real, str2bool
    66
    77  IMPLICIT NONE
     
    993993  lerr = .FALSE.
    994994  IF(nam(1) == 'iq') THEN
    995     tmp2 = int2str([(iq, iq=1, nq)])
     995    tmp2 = num2str([(iq, iq=1, nq)])
    996996    tmp = tmp2
    997997  ELSE
     
    10861086      tr(iq)%nqChildren = SIZE(iqDescen)
    10871087    END DO
    1088     CALL addKey('iqDescen', strStack(int2str(iqDescen)), tr(iq)%keys)
     1088    CALL addKey('iqDescen', strStack(num2str(iqDescen)), tr(iq)%keys)
    10891089    CALL addKey('nqDescen',             SIZE(iqDescen),  tr(iq)%keys)
    10901090    tr(iq)%iqDescen =      iqDescen
     
    13281328      np = SUM([(COUNT(tracers(:)%name == addPhase(i%trac(it), i%phase(ip:ip))), ip=1, npha)])
    13291329      lerr = np /= npha
    1330       CALL msg(TRIM(int2str(np))//' phases instead of '//TRIM(int2str(npha))//' for '//TRIM(i%trac(it)), modname, lerr)
     1330      CALL msg(TRIM(num2str(np))//' phases instead of '//TRIM(num2str(npha))//' for '//TRIM(i%trac(it)), modname, lerr)
    13311331      IF(lerr) RETURN
    13321332    END DO
     
    13341334      nz = SUM([(COUNT(i%trac == TRIM(i%trac(it))//'_'//i%zone(iz)), iz=1, nzon)])
    13351335      lerr = nz /= nzon
    1336       CALL msg(TRIM(int2str(nz))//' tagging zones instead of '//TRIM(int2str(nzon))//' for '//TRIM(i%trac(it)), modname, lerr)
     1336      CALL msg(TRIM(num2str(nz))//' tagging zones instead of '//TRIM(num2str(nzon))//' for '//TRIM(i%trac(it)), modname, lerr)
    13371337      IF(lerr) RETURN
    13381338    END DO
     
    13751375   IF(iIso == ixIso) RETURN                                          !--- Nothing to do if the index is already OK
    13761376   lerr = iIso<=0 .OR. iIso>SIZE(isotopes)
    1377    CALL msg('Inconsistent isotopes family index '//TRIM(int2str(iIso))//': should be > 0 and <= '&
    1378           //TRIM(int2str(SIZE(isotopes)))//'"', ll = lerr .AND. lV)
     1377   CALL msg('Inconsistent isotopes family index '//TRIM(num2str(iIso))//': should be > 0 and <= '&
     1378          //TRIM(num2str(SIZE(isotopes)))//'"', ll = lerr .AND. lV)
    13791379   IF(lerr) RETURN
    13801380   ixIso = iIso                                                      !--- Update currently selected family index
     
    14241424  LOGICAL, OPTIONAL, INTENT(IN)    :: lOverWrite
    14251425!------------------------------------------------------------------------------------------------------------------------------
    1426   CALL addKey_s11(key, int2str(ival), ky, lOverWrite)
     1426  CALL addKey_s11(key, num2str(ival), ky, lOverWrite)
    14271427END SUBROUTINE addKey_i11
    14281428!==============================================================================================================================
     
    14331433  LOGICAL, OPTIONAL, INTENT(IN)    :: lOverWrite
    14341434!------------------------------------------------------------------------------------------------------------------------------
    1435   CALL addKey_s11(key, real2str(rval), ky, lOverWrite)
     1435  CALL addKey_s11(key, num2str(rval), ky, lOverWrite)
    14361436END SUBROUTINE addKey_r11
    14371437!==============================================================================================================================
     
    14421442  LOGICAL, OPTIONAL, INTENT(IN)    :: lOverWrite
    14431443!------------------------------------------------------------------------------------------------------------------------------
    1444   CALL addKey_s11(key, bool2str(lval), ky, lOverWrite)
     1444  CALL addKey_s11(key, num2str(lval), ky, lOverWrite)
    14451445END SUBROUTINE addKey_l11
    14461446!==============================================================================================================================
     
    14621462!------------------------------------------------------------------------------------------------------------------------------
    14631463  INTEGER :: itr
    1464   DO itr = 1, SIZE(ky); CALL addKey_s11(key, int2str(ival), ky(itr), lOverWrite); END DO
     1464  DO itr = 1, SIZE(ky); CALL addKey_s11(key, num2str(ival), ky(itr), lOverWrite); END DO
    14651465END SUBROUTINE addKey_i1m
    14661466!==============================================================================================================================
     
    14721472!------------------------------------------------------------------------------------------------------------------------------
    14731473  INTEGER :: itr
    1474   DO itr = 1, SIZE(ky); CALL addKey_s11(key, real2str(rval), ky(itr), lOverWrite); END DO
     1474  DO itr = 1, SIZE(ky); CALL addKey_s11(key, num2str(rval), ky(itr), lOverWrite); END DO
    14751475END SUBROUTINE addKey_r1m
    14761476!==============================================================================================================================
     
    14821482!------------------------------------------------------------------------------------------------------------------------------
    14831483  INTEGER :: itr
    1484   DO itr = 1, SIZE(ky); CALL addKey_s11(key, bool2str(lval), ky(itr), lOverWrite); END DO
     1484  DO itr = 1, SIZE(ky); CALL addKey_s11(key, num2str(lval), ky(itr), lOverWrite); END DO
    14851485END SUBROUTINE addKey_l1m
    14861486!==============================================================================================================================
     
    15021502!------------------------------------------------------------------------------------------------------------------------------
    15031503  INTEGER :: itr
    1504   DO itr = 1, SIZE(ky); CALL addKey_s11(key, int2str(ival(itr)), ky(itr), lOverWrite); END DO
     1504  DO itr = 1, SIZE(ky); CALL addKey_s11(key, num2str(ival(itr)), ky(itr), lOverWrite); END DO
    15051505END SUBROUTINE addKey_imm
    15061506!==============================================================================================================================
     
    15121512!------------------------------------------------------------------------------------------------------------------------------
    15131513  INTEGER :: itr
    1514   DO itr = 1, SIZE(ky); CALL addKey_s11(key, real2str(rval(itr)), ky(itr), lOverWrite); END DO
     1514  DO itr = 1, SIZE(ky); CALL addKey_s11(key, num2str(rval(itr)), ky(itr), lOverWrite); END DO
    15151515END SUBROUTINE addKey_rmm
    15161516!==============================================================================================================================
     
    15221522!------------------------------------------------------------------------------------------------------------------------------
    15231523  INTEGER :: itr
    1524   DO itr = 1, SIZE(ky); CALL addKey_s11(key, bool2str(lval(itr)), ky(itr), lOverWrite); END DO
     1524  DO itr = 1, SIZE(ky); CALL addKey_s11(key, num2str(lval(itr)), ky(itr), lOverWrite); END DO
    15251525END SUBROUTINE addKey_lmm
    15261526!==============================================================================================================================
     
    16761676  LOGICAL :: lD
    16771677  lD = .TRUE.; IF(PRESENT(lDisp)) lD = lDisp
    1678   s = 'key "'//TRIM(strStack(keyn, '/'))//'" for tracer nr. '//TRIM(int2str(itr))
     1678  s = 'key "'//TRIM(strStack(keyn, '/'))//'" for tracer nr. '//TRIM(num2str(itr))
    16791679  lerr = .TRUE.
    16801680  IF(lerr .AND. PRESENT(ky))         val = fgetKey(ky)                                   !--- "ky"
     
    17061706!------------------------------------------------------------------------------------------------------------------------------
    17071707  CHARACTER(LEN=maxlen) :: sval, s
    1708   IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, int2str(def), lDisp)
     1708  IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, num2str(def), lDisp)
    17091709  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, lDisp=lDisp)
    17101710  IF(lerr) RETURN
    17111711  val = str2int(sval)
    17121712  lerr = val == -HUGE(1)
    1713   s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(int2str(itr))//' is not'
     1713  s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(num2str(itr))//' is not'
    17141714  CALL msg(TRIM(s)//' an integer: '//TRIM(sval), modname, lerr)
    17151715END FUNCTION getKeyByIndex_im11
     
    17241724!------------------------------------------------------------------------------------------------------------------------------
    17251725  CHARACTER(LEN=maxlen) :: sval, s
    1726   IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, real2str(def), lDisp)
     1726  IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, num2str(def), lDisp)
    17271727  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, lDisp=lDisp)
    17281728  IF(lerr) RETURN
    17291729  val = str2real(sval)
    17301730  lerr = val == -HUGE(1.)
    1731   s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(int2str(itr))//' is not'
     1731  s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(num2str(itr))//' is not'
    17321732  CALL msg(TRIM(s)//' a real: '//TRIM(sval), modname, lerr)
    17331733END FUNCTION getKeyByIndex_rm11
     
    17431743  CHARACTER(LEN=maxlen) :: sval, s
    17441744  INTEGER               :: ival
    1745   IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, bool2str(def), lDisp)
     1745  IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, num2str(def), lDisp)
    17461746  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, lDisp=lDisp)
    17471747  IF(lerr) RETURN
    17481748  ival = str2bool(sval)
    17491749  lerr = ival == -1
    1750   s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(int2str(itr))//' is not'
     1750  s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(num2str(itr))//' is not'
    17511751  CALL msg(TRIM(s)//' a boolean: '//TRIM(sval), modname, lerr)
    17521752  IF(.NOT.lerr) val = ival == 1
     
    17781778  CHARACTER(LEN=maxlen)              :: sval, s
    17791779  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    1780   IF(     PRESENT(def)) lerr = getKeyByIndex_sm11([keyn], sval, itr, ky, int2str(def), lDisp)
     1780  IF(     PRESENT(def)) lerr = getKeyByIndex_sm11([keyn], sval, itr, ky, num2str(def), lDisp)
    17811781  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_sm11([keyn], sval, itr, ky, lDisp=lDisp)
    17821782  IF(lerr) RETURN
     
    17851785  val = str2int(svals)
    17861786  lerr = ANY(val == -HUGE(1))
    1787   s = 'key "'//TRIM(keyn)//'" of tracer nr. '//TRIM(int2str(itr))//' is not'
     1787  s = 'key "'//TRIM(keyn)//'" of tracer nr. '//TRIM(num2str(itr))//' is not'
    17881788  CALL msg(TRIM(s)//' an integer: '//TRIM(sval), modname, lerr)
    17891789END FUNCTION getKeyByIndex_i1m1
     
    17991799  CHARACTER(LEN=maxlen)              :: sval, s
    18001800  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    1801   IF(     PRESENT(def)) lerr = getKeyByIndex_sm11([keyn], sval, itr, ky, real2str(def), lDisp)
     1801  IF(     PRESENT(def)) lerr = getKeyByIndex_sm11([keyn], sval, itr, ky, num2str(def), lDisp)
    18021802  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_sm11([keyn], sval, itr, ky, lDisp=lDisp)
    18031803  lerr = strParse(sval, ',', svals)
     
    18051805  val = str2real(svals)
    18061806  lerr = ANY(val == -HUGE(1.))
    1807   s = 'key "'//TRIM(keyn)//'" of tracer nr. '//TRIM(int2str(itr))//' is not'
     1807  s = 'key "'//TRIM(keyn)//'" of tracer nr. '//TRIM(num2str(itr))//' is not'
    18081808  CALL msg(TRIM(s)//' a real: '//TRIM(sval), modname, lerr)
    18091809END FUNCTION getKeyByIndex_r1m1
     
    18201820  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    18211821  INTEGER,               ALLOCATABLE :: ivals(:)
    1822   IF(     PRESENT(def)) lerr = getKeyByIndex_sm11([keyn], sval, itr, ky, bool2str(def), lDisp)
     1822  IF(     PRESENT(def)) lerr = getKeyByIndex_sm11([keyn], sval, itr, ky, num2str(def), lDisp)
    18231823  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_sm11([keyn], sval, itr, ky, lDisp=lDisp)
    18241824  lerr = strParse(sval, ',', svals)
     
    18261826  ivals = str2bool(svals)
    18271827  lerr = ANY(ivals == -1)
    1828   s = 'key "'//TRIM(keyn)//'" of tracer nr. '//TRIM(int2str(itr))//' is not'
     1828  s = 'key "'//TRIM(keyn)//'" of tracer nr. '//TRIM(num2str(itr))//' is not'
    18291829  CALL msg(TRIM(s)//' a boolean: '//TRIM(sval), modname, lerr)
    18301830  IF(.NOT.lerr) val = ivals == 1
     
    18561856  CHARACTER(LEN=maxlen)              :: sval, s
    18571857  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    1858   IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, int2str(def), lDisp)
     1858  IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, num2str(def), lDisp)
    18591859  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, lDisp=lDisp)
    18601860  IF(lerr) RETURN
     
    18631863  val = str2int(svals)
    18641864  lerr = ANY(val == -HUGE(1))
    1865   s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(int2str(itr))//' is not'
     1865  s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(num2str(itr))//' is not'
    18661866  CALL msg(TRIM(s)//' an integer: '//TRIM(sval), modname, lerr)
    18671867END FUNCTION getKeyByIndex_imm1
     
    18771877  CHARACTER(LEN=maxlen)              :: sval, s
    18781878  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    1879   IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, real2str(def), lDisp)
     1879  IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, num2str(def), lDisp)
    18801880  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, lDisp=lDisp)
    18811881  IF(lerr) RETURN
     
    18841884  val = str2real(svals)
    18851885  lerr = ANY(val == -HUGE(1.))
    1886   s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(int2str(itr))//' is not'
     1886  s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(num2str(itr))//' is not'
    18871887  CALL msg(TRIM(s)//' a real: '//TRIM(sval), modname, lerr)
    18881888END FUNCTION getKeyByIndex_rmm1
     
    18991899  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    19001900  INTEGER,               ALLOCATABLE :: ivals(:)
    1901   IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, bool2str(def), lDisp)
     1901  IF(     PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, num2str(def), lDisp)
    19021902  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_sm11(keyn, sval, itr, ky, lDisp=lDisp)
    19031903  IF(lerr) RETURN
     
    19061906  ivals = str2bool(svals)
    19071907  lerr = ANY(ivals == -1)
    1908   s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(int2str(itr))//' is not'
     1908  s = 'key "'//TRIM(strStack(keyn, '/'))//'" of tracer nr. '//TRIM(num2str(itr))//' is not'
    19091909  CALL msg(TRIM(s)//' a boolean: '//TRIM(sval), modname, lerr)
    19101910  IF(.NOT.lerr) val = ivals == 1
     
    20112011  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:), tname(:)
    20122012  LOGICAL,               ALLOCATABLE ::    ll(:)
    2013   IF(     PRESENT(def)) lerr = getKeyByIndex_smmm(keyn, svals, ky, tname, int2str(def), lDisp)
     2013  IF(     PRESENT(def)) lerr = getKeyByIndex_smmm(keyn, svals, ky, tname, num2str(def), lDisp)
    20142014  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_smmm(keyn, svals, ky, tname, lDisp=lDisp)
    20152015  IF(lerr) RETURN
     
    20332033  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:), tname(:)
    20342034  LOGICAL,               ALLOCATABLE ::    ll(:)
    2035   IF(     PRESENT(def)) lerr = getKeyByIndex_smmm(keyn, svals, ky, tname, real2str(def), lDisp)
     2035  IF(     PRESENT(def)) lerr = getKeyByIndex_smmm(keyn, svals, ky, tname, num2str(def), lDisp)
    20362036  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_smmm(keyn, svals, ky, tname, lDisp=lDisp)
    20372037  IF(lerr) RETURN
     
    20552055  LOGICAL,               ALLOCATABLE ::    ll(:)
    20562056  INTEGER,               ALLOCATABLE :: ivals(:)
    2057   IF(     PRESENT(def)) lerr = getKeyByIndex_smmm(keyn, svals, ky, tname, bool2str(def), lDisp)
     2057  IF(     PRESENT(def)) lerr = getKeyByIndex_smmm(keyn, svals, ky, tname, num2str(def), lDisp)
    20582058  IF(.NOT.PRESENT(def)) lerr = getKeyByIndex_smmm(keyn, svals, ky, tname, lDisp=lDisp)
    20592059  IF(lerr) RETURN
     
    21642164!------------------------------------------------------------------------------------------------------------------------------
    21652165  CHARACTER(LEN=maxlen) :: sval, s
    2166   IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, int2str(def), lDisp)
     2166  IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, num2str(def), lDisp)
    21672167  IF(.NOT.PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, lDisp=lDisp)
    21682168  IF(lerr) RETURN
     
    21812181!------------------------------------------------------------------------------------------------------------------------------
    21822182  CHARACTER(LEN=maxlen) :: sval, s
    2183   IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, real2str(def), lDisp)
     2183  IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, num2str(def), lDisp)
    21842184  IF(.NOT.PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, lDisp=lDisp)
    21852185  IF(lerr) RETURN
     
    21992199  CHARACTER(LEN=maxlen) :: sval, s
    22002200  INTEGER               :: ival
    2201   IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, bool2str(def), lDisp)
     2201  IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, num2str(def), lDisp)
    22022202  IF(.NOT.PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, lDisp=lDisp)
    22032203  IF(lerr) RETURN
     
    22322232  CHARACTER(LEN=maxlen)              :: sval, s
    22332233  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    2234   IF(     PRESENT(def)) lerr = getKeyByName_sm11([keyn], sval, tname, ky, int2str(def), lDisp)
     2234  IF(     PRESENT(def)) lerr = getKeyByName_sm11([keyn], sval, tname, ky, num2str(def), lDisp)
    22352235  IF(.NOT.PRESENT(def)) lerr = getKeyByName_sm11([keyn], sval, tname, ky, lDisp=lDisp)
    22362236  IF(lerr) RETURN
     
    22522252  CHARACTER(LEN=maxlen)              :: sval, s
    22532253  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    2254   IF(     PRESENT(def)) lerr = getKeyByName_sm11([keyn], sval, tname, ky, real2str(def), lDisp)
     2254  IF(     PRESENT(def)) lerr = getKeyByName_sm11([keyn], sval, tname, ky, num2str(def), lDisp)
    22552255  IF(.NOT.PRESENT(def)) lerr = getKeyByName_sm11([keyn], sval, tname, ky, lDisp=lDisp)
    22562256  IF(lerr) RETURN
     
    22732273  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    22742274  INTEGER,               ALLOCATABLE :: ivals(:)
    2275   IF(     PRESENT(def)) lerr = getKeyByName_sm11([keyn], sval, tname, ky, bool2str(def), lDisp)
     2275  IF(     PRESENT(def)) lerr = getKeyByName_sm11([keyn], sval, tname, ky, num2str(def), lDisp)
    22762276  IF(.NOT.PRESENT(def)) lerr = getKeyByName_sm11([keyn], sval, tname, ky, lDisp=lDisp)
    22772277  IF(lerr) RETURN
     
    23082308  CHARACTER(LEN=maxlen)              :: sval, s
    23092309  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    2310   IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, int2str(def), lDisp)
     2310  IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, num2str(def), lDisp)
    23112311  IF(.NOT.PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, lDisp=lDisp)
    23122312  IF(lerr) RETURN
     
    23282328  CHARACTER(LEN=maxlen)              :: sval, s
    23292329  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    2330   IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, real2str(def), lDisp)
     2330  IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, num2str(def), lDisp)
    23312331  IF(.NOT.PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, lDisp=lDisp)
    23322332  IF(lerr) RETURN
     
    23492349  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    23502350  INTEGER,               ALLOCATABLE :: ivals(:)
    2351   IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, bool2str(def), lDisp)
     2351  IF(     PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, num2str(def), lDisp)
    23522352  IF(.NOT.PRESENT(def)) lerr = getKeyByName_sm11(keyn, sval, tname, ky, lDisp=lDisp)
    23532353  IF(lerr) RETURN
     
    24472447  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    24482448  LOGICAL,               ALLOCATABLE ::    ll(:)
    2449   IF(     PRESENT(def)) lerr = getKeyByName_smmm(keyn, svals, tname, ky, int2str(def), lDisp)
     2449  IF(     PRESENT(def)) lerr = getKeyByName_smmm(keyn, svals, tname, ky, num2str(def), lDisp)
    24502450  IF(.NOT.PRESENT(def)) lerr = getKeyByName_smmm(keyn, svals, tname, ky, lDisp=lDisp)
    24512451  IF(lerr) RETURN
     
    24672467  CHARACTER(LEN=maxlen), ALLOCATABLE :: svals(:)
    24682468  LOGICAL,               ALLOCATABLE ::    ll(:)
    2469   IF(     PRESENT(def)) lerr = getKeyByName_smmm(keyn, svals, tname, ky, real2str(def), lDisp)
     2469  IF(     PRESENT(def)) lerr = getKeyByName_smmm(keyn, svals, tname, ky, num2str(def), lDisp)
    24702470  IF(.NOT.PRESENT(def)) lerr = getKeyByName_smmm(keyn, svals, tname, ky, lDisp=lDisp)
    24712471  IF(lerr) RETURN
     
    24882488  LOGICAL,               ALLOCATABLE ::    ll(:)
    24892489  INTEGER,               ALLOCATABLE :: ivals(:)
    2490   IF(     PRESENT(def)) lerr = getKeyByName_smmm(keyn, svals, tname, ky, bool2str(def), lDisp)
     2490  IF(     PRESENT(def)) lerr = getKeyByName_smmm(keyn, svals, tname, ky, num2str(def), lDisp)
    24912491  IF(.NOT.PRESENT(def)) lerr = getKeyByName_smmm(keyn, svals, tname, ky, lDisp=lDisp)
    24922492  IF(lerr) RETURN
  • LMDZ6/trunk/libf/misc/strings_mod.f90

    r5747 r5748  
    11MODULE strings_mod
     2
     3  USE, INTRINSIC :: ISO_FORTRAN_ENV, ONLY: REAL64, REAL32
    24
    35  IMPLICIT NONE
     
    810  PUBLIC :: strUpper, strTail, strStackm, strParse, strReplace, strFind, find, duplicate, cat
    911  PUBLIC :: dispTable, dispOutliers, dispNameList
    10   PUBLIC :: is_numeric, bool2str, int2str, real2str, dble2str
    11   PUBLIC :: reduceExpr, str2bool, str2int, str2real, str2dble
    12   PUBLIC :: addQuotes, checkList, removeComment
     12  PUBLIC :: is_numeric, num2str, str2bool, str2int, str2real, str2dble
     13  PUBLIC :: reduceExpr, addQuotes, checkList, removeComment
    1314
    1415  INTERFACE get_in;     MODULE PROCEDURE getin_s,  getin_i,  getin_r,  getin_l;  END INTERFACE get_in
     16  INTERFACE num2str;    MODULE PROCEDURE bool2str, int2str, real2str, dble2str;  END INTERFACE num2str
    1517  INTERFACE  msg;       MODULE PROCEDURE        msg_1,                    msg_m; END INTERFACE  msg
    1618  INTERFACE strHead;    MODULE PROCEDURE    strHead_1,                strHead_m; END INTERFACE strHead
     
    2123  INTERFACE strCount;   MODULE PROCEDURE  strCount_m1, strCount_11, strCount_1m; END INTERFACE strCount
    2224  INTERFACE strReplace; MODULE PROCEDURE strReplace_1,             strReplace_m; END INTERFACE strReplace
    23   INTERFACE cat;        MODULE PROCEDURE  horzcat_s00, horzcat_i00, horzcat_r00,  & !horzcat_d00, &
    24                                           horzcat_s10, horzcat_i10, horzcat_r10,  & !horzcat_d10, &
    25                                           horzcat_s11, horzcat_i11, horzcat_r11,  & !horzcat_d11, &
    26                                           horzcat_s21, horzcat_i21, horzcat_r21; END INTERFACE cat !horzcat_d21
    27   INTERFACE strFind;      MODULE PROCEDURE strFind_1, strFind_m;                 END INTERFACE strFind
     25  INTERFACE cat; MODULE PROCEDURE  horzcat_s00, horzcat_i00, horzcat_r00, horzcat_d00, &
     26                                   horzcat_s10, horzcat_i10, horzcat_r10, horzcat_d10, &
     27                                   horzcat_s11, horzcat_i11, horzcat_r11, horzcat_d11, &
     28                                   horzcat_s21, horzcat_i21, horzcat_r21; END INTERFACE cat !horzcat_d21
     29  INTERFACE strFind;      MODULE PROCEDURE strFind_1, strFind_m;           END INTERFACE strFind
    2830  INTERFACE find;         MODULE PROCEDURE strFind_1, strFind_m, intFind_1, intFind_m, booFind; END INTERFACE find
    2931  INTERFACE duplicate;    MODULE PROCEDURE dupl_s, dupl_i, dupl_r, dupl_l; END INTERFACE duplicate
     
    6870  INTEGER,          INTENT(IN)    :: def
    6971  val = def; CALL getin(nam, val)
    70   IF(val/=def) WRITE(lunout,*)TRIM(nam)//' = '//TRIM(int2str(val))
     72  IF(val/=def) WRITE(lunout,*)TRIM(nam)//' = '//TRIM(num2str(val))
    7173END SUBROUTINE getin_i
    7274!==============================================================================================================================
     
    7880  REAL,             INTENT(IN)    :: def
    7981  val = def; CALL getin(nam, val)
    80   IF(val/=def) WRITE(lunout,*)TRIM(nam)//' = '//TRIM(real2str(val))
     82  IF(val/=def) WRITE(lunout,*)TRIM(nam)//' = '//TRIM(num2str(val))
    8183END SUBROUTINE getin_r
    8284!==============================================================================================================================
     
    8890  LOGICAL,          INTENT(IN)    :: def
    8991  val = def; CALL getin(nam, val)
    90   IF(val.NEQV.def) WRITE(lunout,*)TRIM(nam)//' = '//TRIM(bool2str(val))
     92  IF(val.NEQV.def) WRITE(lunout,*)TRIM(nam)//' = '//TRIM(num2str(val))
    9193END SUBROUTINE getin_l
    9294!==============================================================================================================================
     
    953955FUNCTION horzcat_r00(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9) RESULT(out)
    954956  IMPLICIT NONE
    955   REAL,                   INTENT(IN) :: r0
    956   REAL, OPTIONAL, TARGET, INTENT(IN) :: r1, r2, r3, r4, r5, r6, r7, r8, r9
    957   REAL, ALLOCATABLE :: out(:)
    958   REAL, POINTER    :: r
     957  REAL(KIND=REAL32),                   INTENT(IN) :: r0
     958  REAL(KIND=REAL32), OPTIONAL, TARGET, INTENT(IN) :: r1, r2, r3, r4, r5, r6, r7, r8, r9
     959  REAL(KIND=REAL32), ALLOCATABLE :: out(:)
     960  REAL(KIND=REAL32), POINTER :: r
    959961  INTEGER           :: ncol, iv
    960962  LOGICAL           :: pre(9)
     
    975977FUNCTION horzcat_r10(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9) RESULT(out)
    976978  IMPLICIT NONE
    977   REAL,           INTENT(IN) :: r0(:), r1
    978   REAL, OPTIONAL, INTENT(IN) :: r2, r3, r4, r5, r6, r7, r8, r9
    979   REAL, ALLOCATABLE :: out(:), tmp(:)
     979  REAL(KIND=REAL32),           INTENT(IN) :: r0(:), r1
     980  REAL(KIND=REAL32), OPTIONAL, INTENT(IN) :: r2, r3, r4, r5, r6, r7, r8, r9
     981  REAL(KIND=REAL32), ALLOCATABLE :: out(:), tmp(:)
    980982  INTEGER :: nc
    981983  nc  = SIZE(r0)
     
    987989FUNCTION horzcat_r11(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9) RESULT(out)
    988990  IMPLICIT NONE
    989   REAL,                   INTENT(IN) :: r0(:)
    990   REAL, OPTIONAL, TARGET, INTENT(IN) :: r1(:), r2(:), r3(:), r4(:), r5(:), r6(:), r7(:), r8(:), r9(:)
    991   REAL, ALLOCATABLE :: out(:,:)
    992   REAL, POINTER     :: r(:)
    993   INTEGER           :: nrow, ncol, iv, n
    994   LOGICAL           :: pre(9)
     991  REAL(KIND=REAL32),                   INTENT(IN) :: r0(:)
     992  REAL(KIND=REAL32), OPTIONAL, TARGET, INTENT(IN) :: r1(:), r2(:), r3(:), r4(:), r5(:), r6(:), r7(:), r8(:), r9(:)
     993  REAL(KIND=REAL32), ALLOCATABLE :: out(:,:)
     994  REAL(KIND=REAL32), POINTER     :: r(:)
     995  INTEGER :: nrow, ncol, iv, n
     996  LOGICAL :: pre(9)
    995997!------------------------------------------------------------------------------------------------------------------------------
    996998  pre(:) = [PRESENT(r1),PRESENT(r2),PRESENT(r3),PRESENT(r4),PRESENT(r5),PRESENT(r6),PRESENT(r7),PRESENT(r8),PRESENT(r9)]
     
    10121014FUNCTION horzcat_r21(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9) RESULT(out)
    10131015  IMPLICIT NONE
    1014   REAL,           INTENT(IN) :: r0(:,:), r1(:)
    1015   REAL, OPTIONAL, INTENT(IN) :: r2(:), r3(:), r4(:), r5(:), r6(:), r7(:), r8(:), r9(:)
    1016   REAL, ALLOCATABLE :: out(:,:), tmp(:,:)
     1016  REAL(KIND=REAL32),           INTENT(IN) :: r0(:,:), r1(:)
     1017  REAL(KIND=REAL32), OPTIONAL, INTENT(IN) :: r2(:), r3(:), r4(:), r5(:), r6(:), r7(:), r8(:), r9(:)
     1018  REAL(KIND=REAL32), ALLOCATABLE :: out(:,:), tmp(:,:)
    10171019  INTEGER :: nc
    10181020  nc  = SIZE(r0, 2)
     
    10241026FUNCTION horzcat_d00(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9) RESULT(out)
    10251027  IMPLICIT NONE
    1026   DOUBLE PRECISION,                   INTENT(IN) :: d0
    1027   DOUBLE PRECISION, OPTIONAL, TARGET, INTENT(IN) :: d1, d2, d3, d4, d5, d6, d7, d8, d9
    1028   DOUBLE PRECISION, ALLOCATABLE :: out(:)
    1029   DOUBLE PRECISION, POINTER     :: d
     1028  REAL(KIND=REAL64),                   INTENT(IN) :: d0
     1029  REAL(KIND=REAL64), OPTIONAL, TARGET, INTENT(IN) :: d1, d2, d3, d4, d5, d6, d7, d8, d9
     1030  REAL(KIND=REAL64), ALLOCATABLE :: out(:)
     1031  REAL(KIND=REAL64), POINTER     :: d
    10301032  INTEGER                       :: ncol, iv
    10311033  LOGICAL                       :: pre(9)
     
    10461048FUNCTION horzcat_d10(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9) RESULT(out)
    10471049  IMPLICIT NONE
    1048   DOUBLE PRECISION,           INTENT(IN) :: d0(:), d1
    1049   DOUBLE PRECISION, OPTIONAL, INTENT(IN) :: d2, d3, d4, d5, d6, d7, d8, d9
    1050   DOUBLE PRECISION, ALLOCATABLE :: out(:), tmp(:)
     1050  REAL(KIND=REAL64),           INTENT(IN) :: d0(:), d1
     1051  REAL(KIND=REAL64), OPTIONAL, INTENT(IN) :: d2, d3, d4, d5, d6, d7, d8, d9
     1052  REAL(KIND=REAL64), ALLOCATABLE :: out(:), tmp(:)
    10511053  INTEGER :: nc
    10521054  nc = SIZE(d0)
     
    10581060FUNCTION horzcat_d11(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9) RESULT(out)
    10591061  IMPLICIT NONE
    1060   DOUBLE PRECISION,                   INTENT(IN) :: d0(:)
    1061   DOUBLE PRECISION, OPTIONAL, TARGET, INTENT(IN) :: d1(:), d2(:), d3(:), d4(:), d5(:), d6(:), d7(:), d8(:), d9(:)
    1062   DOUBLE PRECISION, ALLOCATABLE :: out(:,:)
    1063   DOUBLE PRECISION, POINTER     :: d(:)
     1062  REAL(KIND=REAL64),                   INTENT(IN) :: d0(:)
     1063  REAL(KIND=REAL64), OPTIONAL, TARGET, INTENT(IN) :: d1(:), d2(:), d3(:), d4(:), d5(:), d6(:), d7(:), d8(:), d9(:)
     1064  REAL(KIND=REAL64), ALLOCATABLE :: out(:,:)
     1065  REAL(KIND=REAL64), POINTER     :: d(:)
    10641066  INTEGER                       :: nrow, ncol, iv, n
    10651067  LOGICAL                       :: pre(9)
     
    10821084FUNCTION horzcat_d21(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9) RESULT(out)
    10831085  IMPLICIT NONE
    1084   DOUBLE PRECISION,           INTENT(IN) :: d0(:,:), d1(:)
    1085   DOUBLE PRECISION, OPTIONAL, INTENT(IN) :: d2(:), d3(:), d4(:), d5(:), d6(:), d7(:), d8(:), d9(:)
    1086   DOUBLE PRECISION, ALLOCATABLE :: out(:,:), tmp(:,:)
     1086  REAL(KIND=REAL64),           INTENT(IN) :: d0(:,:), d1(:)
     1087  REAL(KIND=REAL64), OPTIONAL, INTENT(IN) :: d2(:), d3(:), d4(:), d5(:), d6(:), d7(:), d8(:), d9(:)
     1088  REAL(KIND=REAL64), ALLOCATABLE :: out(:,:), tmp(:,:)
    10871089  INTEGER :: nc
    10881090  nc  = SIZE(d0, 2)
     
    11591161    d(1,ic) = TRIM(titles(ic))
    11601162    SELECT CASE(p(ic:ic))
    1161       CASE('s'); d(2:nmx,ic) =          s(:,is)     ; is = is + 1
    1162       CASE('i'); d(2:nmx,ic) =  int2str(i(:,ii)    ); ii = ii + 1
    1163       CASE('r'); d(2:nmx,ic) = real2str(r(:,ir),rFm); ir = ir + 1
     1163      CASE('s'); d(2:nmx,ic) =         s(:,is)     ; is = is + 1
     1164      CASE('i'); d(2:nmx,ic) = num2str(i(:,ii)    ); ii = ii + 1
     1165      CASE('r'); d(2:nmx,ic) = num2str(r(:,ir),rFm); ir = ir + 1
    11641166    END SELECT
    11651167  END DO
     
    12601262    d(1,ic) = TRIM(titles(ic))
    12611263    SELECT CASE(p(ic:ic))
    1262       CASE('s'); d(2:nrow,ic) =          s(:,is)     ; is = is + 1
    1263       CASE('i'); d(2:nrow,ic) =  int2str(i(:,ii)    ); ii = ii + 1
    1264       CASE('r'); d(2:nrow,ic) = real2str(r(:,ir),rFm); ir = ir + 1
     1264      CASE('s'); d(2:nrow,ic) =         s(:,is)     ; is = is + 1
     1265      CASE('i'); d(2:nrow,ic) = num2str(i(:,ii)    ); ii = ii + 1
     1266      CASE('r'); d(2:nrow,ic) = num2str(r(:,ir),rFm); ir = ir + 1
    12651267    END SELECT
    12661268  END DO
     
    13621364    IF(.NOT.ANY(m)) CYCLE                                            !--- no outlayers for tracer "itr"
    13631365    v = TRIM(vnm(MIN(itr,SIZE(vnm))))//'('//TRIM(s)                  !--- "<name>("
    1364     IF(nv == 1) ttl(rk) = TRIM(v)//','//int2str(itr)//')'            !--- "<name>(i,j,itr)" (single name)
     1366    IF(nv == 1) ttl(rk) = TRIM(v)//','//num2str(itr)//')'            !--- "<name>(i,j,itr)" (single name)
    13651367    IF(nv /= 1) ttl(rk) = TRIM(v)//')'                               !--- "<nam(itr)>(i,j)" (one name each table/itr index)
    13661368    IF(rk==2) lerr = dispTable('ir',  ttl, i=cat(PACK(ki,m)),            r=cat(PACK(a(ib:ie),m)), &
     
    14851487  CHARACTER(LEN=*),      INTENT(IN)  :: str
    14861488  CHARACTER(LEN=*),      INTENT(OUT) :: val
    1487   DOUBLE PRECISION,      ALLOCATABLE :: vl(:)
     1489  REAL(KIND=REAL64),     ALLOCATABLE :: vl(:)
    14881490  INTEGER,               ALLOCATABLE :: id(:)
    14891491  CHARACTER(LEN=maxlen), ALLOCATABLE :: ky(:)
     
    14911493!------------------------------------------------------------------------------------------------------------------------------
    14921494  CHARACTER(LEN=1024) :: s
    1493   DOUBLE PRECISION :: v, vm, vp
     1495  REAL(KIND=REAL64) :: v, vm, vp
    14941496  INTEGER      :: i, ni, io
    14951497  lerr = .FALSE.
     
    15001502  IF(lerr) RETURN                                                              !--- Problem with the parsing
    15011503  vl = str2dble(ky)                                                            !--- Conversion to doubles
    1502   lerr = ANY(vl >= HUGE(1.d0))
     1504  lerr = ANY(vl >= HUGE(1._REAL64))
    15031505  CALL msg('Some values are non-numeric in: '//TRIM(s), ll=lerr)
    15041506  IF(lerr) RETURN                                                              !--- Non-numerical values found
     
    15191521    END DO
    15201522  END DO
    1521   val = dble2str(vl(1))
     1523  val = num2str(vl(1))
    15221524
    15231525END FUNCTION reduceExpr_basic
     
    15811583END FUNCTION str2int
    15821584!==============================================================================================================================
    1583 ELEMENTAL REAL FUNCTION str2real(str) RESULT(out)
     1585ELEMENTAL REAL(KIND=REAL32) FUNCTION str2real(str) RESULT(out)
    15841586  IMPLICIT NONE
    15851587  CHARACTER(LEN=*), INTENT(IN) :: str
    15861588  INTEGER :: ierr
    15871589  READ(str,*,IOSTAT=ierr) out
    1588   IF(ierr/=0) out = -HUGE(1.)
     1590  IF(ierr/=0) out = -HUGE(1._REAL32)
    15891591END FUNCTION str2real
    15901592!==============================================================================================================================
    1591 ELEMENTAL DOUBLE PRECISION FUNCTION str2dble(str) RESULT(out)
     1593ELEMENTAL REAL(KIND=REAL64) FUNCTION str2dble(str) RESULT(out)
    15921594  IMPLICIT NONE
    15931595  CHARACTER(LEN=*), INTENT(IN) :: str
    15941596  INTEGER :: ierr
    15951597  READ(str,*,IOSTAT=ierr) out
    1596   IF(ierr/=0) out = -HUGE(1.d0)
     1598  IF(ierr/=0) out = -HUGE(1._REAL64)
    15971599END FUNCTION str2dble
    15981600!==============================================================================================================================
     
    16171619ELEMENTAL CHARACTER(LEN=maxlen) FUNCTION real2str(r,fmt) RESULT(out)
    16181620  IMPLICIT NONE
    1619   REAL,                       INTENT(IN) :: r
     1621  REAL(KIND=REAL32),          INTENT(IN) :: r
    16201622  CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: fmt
    16211623!------------------------------------------------------------------------------------------------------------------------------
     
    16271629ELEMENTAL CHARACTER(LEN=maxlen) FUNCTION dble2str(d,fmt) RESULT(out)
    16281630  IMPLICIT NONE
    1629   DOUBLE PRECISION,           INTENT(IN) :: d
     1631  REAL(KIND=REAL64),          INTENT(IN) :: d
    16301632  CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: fmt
    16311633!------------------------------------------------------------------------------------------------------------------------------
  • LMDZ6/trunk/libf/misc/write_field.f90

    r5270 r5748  
    55  USE netcdf, ONLY: nf90_sync, nf90_put_var, nf90_enddef, nf90_def_dim, nf90_unlimited, &
    66          nf90_clobber, nf90_create, nf90_def_var, nf90_double
    7   USE strings_mod, ONLY: int2str
     7  USE strings_mod, ONLY: num2str
    88  IMPLICIT NONE; PRIVATE
    99  PUBLIC WriteField
     
    156156    write (id,'("----- Field '//name//'",//)')
    157157    Dim=shape(Field)
    158     MaxLen=int2str(len(trim(int2str(Dim(1)))))
    159     ColumnSize=20+6+3+len(trim(int2str(Dim(1))))
     158    MaxLen=num2str(len(trim(num2str(Dim(1)))))
     159    ColumnSize=20+6+3+len(trim(num2str(Dim(1))))
    160160    Nb=0
    161161    Pos=2
     
    164164     
    165165      if (MOD(nb,NbCol)==0) then
    166         form='(t'//trim(int2str(pos))// ',i'//trim(MaxLen) //'," ---> ",g22.16,/)'
     166        form='(t'//trim(num2str(pos))// ',i'//trim(MaxLen) //'," ---> ",g22.16,/)'
    167167        Pos=2
    168168      else
    169         form='(t'//trim(int2str(pos))// ',i'//trim(MaxLen) //'," ---> ",g22.16," | ",)'
     169        form='(t'//trim(num2str(pos))// ',i'//trim(MaxLen) //'," ---> ",g22.16," | ",)'
    170170        Pos=Pos+ColumnSize
    171171      endif
     
    198198   
    199199    Dim=shape(Field)
    200     offset=len(trim(int2str(Dim(1))))+len(trim(int2str(Dim(2))))+3
     200    offset=len(trim(num2str(Dim(1))))+len(trim(num2str(Dim(2))))+3
    201201    ColumnSize=20+6+3+offset
    202202
     
    210210     
    211211        if (MOD(nb,NbCol)==0) then
    212           form='(t'//trim(int2str(pos))//            &
    213                ',"('//trim(int2str(j))//','          &
    214                     //trim(int2str(i))//')",t'       &
    215                     //trim(int2str(pos+offset))     &   
     212          form='(t'//trim(num2str(pos))//            &
     213               ',"('//trim(num2str(j))//','          &
     214                    //trim(num2str(i))//')",t'       &
     215                    //trim(num2str(pos+offset))     &   
    216216                    //'," ---> ",g22.16,/)'
    217217          Pos=2
    218218        else
    219           form='(t'//trim(int2str(pos))//            &
    220                ',"('//trim(int2str(j))//','          &
    221                     //trim(int2str(i))//')",t'       &
    222                     //trim(int2str(pos+offset))     &   
     219          form='(t'//trim(num2str(pos))//            &
     220               ',"('//trim(num2str(j))//','          &
     221                    //trim(num2str(i))//')",t'       &
     222                    //trim(num2str(pos+offset))     &   
    223223                    //'," ---> ",g22.16," | ")'
    224224          Pos=Pos+ColumnSize
     
    256256   
    257257    Dim=shape(Field)
    258     offset=len(trim(int2str(Dim(1))))+len(trim(int2str(Dim(2))))+len(trim(int2str(Dim(3))))+4
     258    offset=len(trim(num2str(Dim(1))))+len(trim(num2str(Dim(2))))+len(trim(num2str(Dim(3))))+4
    259259    ColumnSize=22+6+3+offset
    260260
     
    273273     
    274274          if (MOD(nb,NbCol)==0) then
    275             form='(t'//trim(int2str(pos))//            &
    276                  ',"('//trim(int2str(k))//','          &
    277                       //trim(int2str(j))//','          &
    278                       //trim(int2str(i))//')",t'       &
    279                       //trim(int2str(pos+offset))      &   
     275            form='(t'//trim(num2str(pos))//            &
     276                 ',"('//trim(num2str(k))//','          &
     277                      //trim(num2str(j))//','          &
     278                      //trim(num2str(i))//')",t'       &
     279                      //trim(num2str(pos+offset))      &   
    280280                      //'," ---> ",g22.16,/)'
    281281           Pos=2
    282282          else
    283             form='(t'//trim(int2str(pos))//            &
    284                  ',"('//trim(int2str(k))//','          &
    285                       //trim(int2str(j))//','          &
    286                       //trim(int2str(i))//')",t'       &
    287                       //trim(int2str(pos+offset))      &   
     283            form='(t'//trim(num2str(pos))//            &
     284                 ',"('//trim(num2str(k))//','          &
     285                      //trim(num2str(j))//','          &
     286                      //trim(num2str(i))//')",t'       &
     287                      //trim(num2str(pos+offset))      &   
    288288                      //'," ---> ",g22.16," | ")'
    289289! d�pent de l'impl�mention, sur compaq, c'est necessaire
Note: See TracChangeset for help on using the changeset viewer.