Ignore:
Timestamp:
Jul 2, 2025, 12:00:08 PM (5 days 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/dyn3dmem
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3dmem/advtrac_loc.f90

    r5324 r5748  
    2121   USE times
    2222   USE advtrac_mod, ONLY: finmasse
    23    USE strings_mod, ONLY: int2str
    2423   USE dimensions_mod, ONLY: iim, jjm, llm, ndm
    2524USE paramet_mod_h
  • LMDZ6/trunk/libf/dyn3dmem/call_calfis_mod.f90

    r5324 r5748  
    9191  USE temps_mod, ONLY: day_ini, day_ref, jd_ref, jh_ref, start_time
    9292  USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_PHYS
    93   USE strings_mod, ONLY: int2str
    9493  USE iniprint_mod_h
    9594  IMPLICIT NONE
  • LMDZ6/trunk/libf/dyn3dmem/check_isotopes_loc.f90

    r5271 r5748  
    11SUBROUTINE check_isotopes(q, ijb, ije, err_msg)
    22   USE parallel_lmdz
    3    USE strings_mod, ONLY: maxlen, msg, strIdx, strStack, int2str, real2str
     3   USE strings_mod, ONLY: maxlen, msg, strIdx, strStack, num2str
    44   USE infotrac,    ONLY: nqtot, niso, nphas, isotope, isoCheck, iqIsoPha, isoSelect, &
    55                          ntiso, iH2O, nzone, tracers, isoName,  itZonIso
     
    8989                  CYCLE
    9090               END IF
    91                CALL msg('ixt, iq = '//TRIM(strStack(int2str([ixt,iq]))), modname)
    92                msg1 = '('//TRIM(strStack(int2str([i,k])))//')'
    93                CALL msg(TRIM(tracers(iqpar)%name)//TRIM(msg1)//' = '//TRIM(real2str(q1)), modname)
    94                CALL msg(TRIM(tracers(iq   )%name)//TRIM(msg1)//' = '//TRIM(real2str(q2)), modname)
     91               CALL msg('ixt, iq = '//TRIM(strStack(num2str([ixt,iq]))), modname)
     92               msg1 = '('//TRIM(strStack(num2str([i,k])))//')'
     93               CALL msg(TRIM(tracers(iqpar)%name)//TRIM(msg1)//' = '//TRIM(num2str(q1)), modname)
     94               CALL msg(TRIM(tracers(iq   )%name)//TRIM(msg1)//' = '//TRIM(num2str(q2)), modname)
    9595               CALL abort_gcm(modname, 'Error with isotopes: '//TRIM(err_msg), 1)
    9696            END DO
     
    122122               deltaD = (q2/q1/tnat(ixt)-1.)*1000.
    123123               IF(deltaD <= deltaDmax .AND. deltaD >= deltaDmin) CYCLE
    124                CALL msg('ixt, iq = '//TRIM(strStack(int2str([ixt,iq]))), modname)
    125                msg1 = '('//TRIM(strStack(int2str([i,k])))//')'
    126                CALL msg(TRIM(tracers(iqpar)%name)//TRIM(msg1)//' = '//TRIM(real2str(q1)), modname)
    127                CALL msg(TRIM(tracers(iq   )%name)//TRIM(msg1)//' = '//TRIM(real2str(q2)), modname)
    128                CALL msg(TRIM(nm(iiso))//TRIM(real2str(deltaD)), modname)
     124               CALL msg('ixt, iq = '//TRIM(strStack(num2str([ixt,iq]))), modname)
     125               msg1 = '('//TRIM(strStack(num2str([i,k])))//')'
     126               CALL msg(TRIM(tracers(iqpar)%name)//TRIM(msg1)//' = '//TRIM(num2str(q1)), modname)
     127               CALL msg(TRIM(tracers(iq   )%name)//TRIM(msg1)//' = '//TRIM(num2str(q2)), modname)
     128               CALL msg(TRIM(nm(iiso))//TRIM(num2str(deltaD)), modname)
    129129               CALL abort_gcm(modname, 'Error with isotopes: '//TRIM(err_msg), 1)
    130130            END DO
     
    153153                  deltaD = (q2/q1/tnat(iso_HDO)-1.)*1000.
    154154                  IF(deltaD <= deltaDmax .AND. deltaD >= deltaDmin) CYCLE
    155                   CALL msg('izon, ipha = '//TRIM(strStack(int2str([izon, ipha]))), modname)
    156                   CALL msg( 'ixt, ieau = '//TRIM(strStack(int2str([ ixt, ieau]))), modname)
    157                   msg1 = '('//TRIM(strStack(int2str([i,k])))//')'
    158                   CALL msg(TRIM(tracers(iqeau)%name)//TRIM(msg1)//' = '//TRIM(real2str(q1)), modname)
    159                   CALL msg(TRIM(tracers(iq   )%name)//TRIM(msg1)//' = '//TRIM(real2str(q2)), modname)
    160                   CALL msg('deltaD = '//TRIM(real2str(deltaD)), modname)
     155                  CALL msg('izon, ipha = '//TRIM(strStack(num2str([izon, ipha]))), modname)
     156                  CALL msg( 'ixt, ieau = '//TRIM(strStack(num2str([ ixt, ieau]))), modname)
     157                  msg1 = '('//TRIM(strStack(num2str([i,k])))//')'
     158                  CALL msg(TRIM(tracers(iqeau)%name)//TRIM(msg1)//' = '//TRIM(num2str(q1)), modname)
     159                  CALL msg(TRIM(tracers(iq   )%name)//TRIM(msg1)//' = '//TRIM(num2str(q2)), modname)
     160                  CALL msg('deltaD = '//TRIM(num2str(deltaD)), modname)
    161161                  CALL abort_gcm(modname, 'Error with isotopes: '//TRIM(err_msg), 1)
    162162               END DO
     
    178178               IF(ABS(xtractot-xiiso) > errmax .AND. ABS(xtractot-xiiso)/MAX(MAX(ABS(xtractot),ABS(xiiso)),1e-18) > errmaxrel) THEN
    179179                  CALL msg('Error in iso_verif_aberrant trac: '//TRIM(err_msg))
    180                   CALL msg('iiso, ipha = '//TRIM(strStack(int2str([iiso, ipha]))), modname)
    181                   CALL msg('q('//TRIM(strStack(int2str([i,k])))//',:) = '//TRIM(strStack(real2str(q(i,k,:)))), modname)
     180                  CALL msg('iiso, ipha = '//TRIM(strStack(num2str([iiso, ipha]))), modname)
     181                  CALL msg('q('//TRIM(strStack(num2str([i,k])))//',:) = '//TRIM(strStack(num2str(q(i,k,:)))), modname)
    182182                  CALL abort_gcm(modname, 'Error with isotopes: '//TRIM(err_msg), 1)
    183183               END IF
  • LMDZ6/trunk/libf/dyn3dmem/dynetat0_loc.f90

    r5285 r5748  
    1111  USE infotrac,    ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName, &
    1212                         new2oldH2O, newHNO3, oldHNO3
    13   USE strings_mod, ONLY: maxlen, msg, strStack, real2str, int2str, strIdx
     13  USE strings_mod, ONLY: maxlen, msg, strStack, num2str, strIdx
    1414  USE netcdf,      ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_INQUIRE_DIMENSION, NF90_INQ_VARID, &
    1515                         NF90_CLOSE, NF90_GET_VAR, NF90_INQUIRE_VARIABLE,  NF90_NoErr
     
    111111
    112112!-------------------------------------------------------------------------------
    113   CALL msg('rad, omeg, g, cpp, kappa = '//TRIM(strStack(real2str([rad,omeg,g,cpp,kappa]))), modname)
     113  CALL msg('rad, omeg, g, cpp, kappa = '//TRIM(strStack(num2str([rad,omeg,g,cpp,kappa]))), modname)
    114114  CALL check_dim(im,iim,'im','im')
    115115  CALL check_dim(jm,jjm,'jm','jm')
     
    236236  CHARACTER(LEN=*), INTENT(IN) :: str1, str2
    237237  CHARACTER(LEN=maxlen) :: s1, s2
    238   IF(n1/=n2) CALL abort_gcm(TRIM(modname), 'value of "'//TRIM(str1)//'" = '//TRIM(int2str(n1))// &
    239    ' read in starting file differs from gcm value of "'//TRIM(str2)//'" = '//TRIM(int2str(n2)), 1)
     238  IF(n1/=n2) CALL abort_gcm(TRIM(modname), 'value of "'//TRIM(str1)//'" = '//TRIM(num2str(n1))// &
     239   ' read in starting file differs from gcm value of "'//TRIM(str2)//'" = '//TRIM(num2str(n2)), 1)
    240240END SUBROUTINE check_dim
    241241
  • LMDZ6/trunk/libf/dyn3dmem/integrd_loc.f90

    r5285 r5748  
    1717  USE comvert_mod, ONLY: ap, bp
    1818  USE temps_mod, ONLY: dt
    19   USE strings_mod, ONLY: int2str
     19  USE strings_mod, ONLY: num2str
    2020  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
    2121USE paramet_mod_h
     
    184184     ! call WriteField_u('int_finvmaold',finvmaold)
    185185    do j=1,nq
    186       call WriteField_u('int_q'//trim(int2str(j)), &
     186      call WriteField_u('int_q'//trim(num2str(j)), &
    187187            q(:,:,j))
    188       call WriteField_u('int_dq'//trim(int2str(j)), &
     188      call WriteField_u('int_dq'//trim(num2str(j)), &
    189189            dq(:,:,j))
    190190    enddo
  • LMDZ6/trunk/libf/dyn3dmem/leapfrog_loc.f90

    r5659 r5748  
    4141         using_xios
    4242   USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA, CPPKEY_REPROBUS
    43    USE strings_mod, ONLY: int2str
     43   USE strings_mod, ONLY: num2str
    4444
    4545   USE dimensions_mod, ONLY: iim, jjm, llm, ndm
     
    642642    call WriteField_u('phis',phis)
    643643    do iq=1,nqtot
    644       call WriteField_u('q'//trim(int2str(iq)), &
     644      call WriteField_u('q'//trim(num2str(iq)), &
    645645            q(:,:,iq))
    646646    enddo
     
    708708
    709709   ! do j=1,nqtot
    710    !   call WriteField_u('qadv'//trim(int2str(j)),q(:,:,j))
     710   !   call WriteField_u('qadv'//trim(num2str(j)),q(:,:,j))
    711711   ! enddo
    712712
     
    743743
    744744   ! do j=1,nqtot
    745    !   call WriteField_p('q'//trim(int2str(j)),
     745   !   call WriteField_p('q'//trim(num2str(j)),
    746746  ! .                reshape(q(:,:,j),(/iip1,jmp1,llm/)))
    747   !    call WriteField_p('dq'//trim(int2str(j)),
     747  !    call WriteField_p('dq'//trim(num2str(j)),
    748748  ! .                reshape(dq(:,:,j),(/iip1,jmp1,llm/)))
    749749  !  enddo
     
    781781      ! call WriteField_u('pkfi',pk)
    782782      ! do j=1,nqtot
    783       !   call WriteField_u('qfi'//trim(int2str(j)),q(:,:,j))
     783      !   call WriteField_u('qfi'//trim(num2str(j)),q(:,:,j))
    784784      ! enddo
    785785  ! #endif
     
    887887  !   call WriteField_u('pkfi',pk)
    888888  !   do j=1,nqtot
    889   !     call WriteField_u('qfi'//trim(int2str(j)),q(:,:,j))
     889  !     call WriteField_u('qfi'//trim(num2str(j)),q(:,:,j))
    890890  !   enddo
    891891  ! #endif
     
    978978  !     call WriteField_u('dpfi',dpfi)
    979979  !     do j=1,nqtot
    980   !       call WriteField_u('dqfi'//trim(int2str(j)),dqfi(:,:,j))
     980  !       call WriteField_u('dqfi'//trim(num2str(j)),dqfi(:,:,j))
    981981  !    enddo
    982982  ! #endif
     
    992992  !         call WriteField_u('psfi',ps)
    993993  !     do j=1,nqtot
    994   !       call WriteField_u('qfi'//trim(int2str(j)),q(:,:,j))
     994  !       call WriteField_u('qfi'//trim(num2str(j)),q(:,:,j))
    995995  !    enddo
    996996  ! #endif
     
    10061006  !         call WriteField_u('psfi',ps)
    10071007  !     do j=1,nqtot
    1008   !       call WriteField_u('qfi'//trim(int2str(j)),q(:,:,j))
     1008  !       call WriteField_u('qfi'//trim(num2str(j)),q(:,:,j))
    10091009  !    enddo
    10101010  ! #endif
     
    10201020  !         call WriteField_u('psfi',ps)
    10211021  !     do j=1,nqtot
    1022   !       call WriteField_u('qfi'//trim(int2str(j)),q(:,:,j))
     1022  !       call WriteField_u('qfi'//trim(num2str(j)),q(:,:,j))
    10231023  !    enddo
    10241024  ! #endif
     
    10861086  !         call WriteField_u('psfi',ps)
    10871087  !     do j=1,nqtot
    1088   !       call WriteField_u('qfi'//trim(int2str(j)),q(:,:,j))
     1088  !       call WriteField_u('qfi'//trim(num2str(j)),q(:,:,j))
    10891089  !    enddo
    10901090  ! #endif
Note: See TracChangeset for help on using the changeset viewer.