Changeset 4076 for trunk


Ignore:
Timestamp:
Feb 18, 2026, 9:50:57 AM (7 days ago)
Author:
jbclement
Message:

PEM:
Fallback for 128-bit integers since this type is not supported by Intel Fortran.
JBC

Location:
trunk/LMDZ.COMMON/libf/evolution
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/evolution/changelog.txt

    r4075 r4076  
    883883== 17/02/2026 == JBC
    884884Addition of runs ID for the current cycle in "pem_workflow.sts".
     885
     886== 18/02/2026 == JBC
     887Fallback for 128-bit integers since this type is not supported by Intel Fortran.
  • trunk/LMDZ.COMMON/libf/evolution/display.F90

    r4075 r4076  
    9191
    9292!=======================================================================
    93 SUBROUTINE print_end(n_yr_run,dur_secs,r_plnt2earth_yr,pem_ini_date,n_yr_sim)
     93SUBROUTINE print_end(i_pem_run,n_yr_run,n_yr_sim,dur_secs,pem_ini_date,r_plnt2earth_yr)
    9494!-----------------------------------------------------------------------
    9595! NAME
     
    108108! DEPENDENCIES
    109109! ------------
    110 use utility,         only: format_duration, int2str
    111 use workflow_status, only: i_pem_run
     110use utility, only: format_duration, int2str
    112111
    113112! DECLARATION
     
    117116! ARGUMENTS
    118117! ---------
    119 real(dp), intent(in) :: r_plnt2earth_yr, pem_ini_date, n_yr_sim, n_yr_run, dur_secs
     118real(dp),    intent(in) :: n_yr_run, n_yr_sim, dur_secs, pem_ini_date, r_plnt2earth_yr
     119integer(di), intent(in) :: i_pem_run
    120120
    121121! CODE
  • trunk/LMDZ.COMMON/libf/evolution/numerics.F90

    r4065 r4076  
    2828! ----------
    2929! Integers
    30 integer, parameter :: ti = int8                   ! Tiny integer      = 8 bits
    31 integer, parameter :: si = int16                  ! Short integer     = 16 bits
    32 integer, parameter :: di = int32                  ! Standard integer  = 32 bits (default)
    33 integer, parameter :: li = int64                  ! Long integer      = 64 bits
    34 integer, parameter :: lli = selected_int_kind(30) ! Long long integer = 128 bits
    35 integer, parameter :: wi = di                     ! Working integer
     30integer, parameter :: lli_candidate = selected_int_kind(38)
     31logical, parameter :: has_int128 = (lli_candidate > 0)
     32integer, parameter :: ti = int8                                ! Tiny integer      = 8 bits
     33integer, parameter :: si = int16                               ! Short integer     = 16 bits
     34integer, parameter :: di = int32                               ! Standard integer  = 32 bits (default)
     35integer, parameter :: li = int64                               ! Long integer      = 64 bits
     36integer, parameter :: lli = merge(lli_candidate,li,has_int128) ! Long long integer = 128 bits (if available, otherwise fallback to int64)
     37integer, parameter :: wi = di                                  ! Working integer
    3638
    3739! Reals
    38 integer, parameter :: sp = real32  ! Simple precision    = 32  bits = 1-bit sign + 8-bits  exponent + 23-bits  significand
    39 integer, parameter :: dp = real64  ! Double precision    = 64  bits = 1-bit sign + 11-bits exponent + 52-bits  significand
    40 integer, parameter :: qp = real128 ! Quadruple precision = 128 bits = 1-bit sign + 15-bits exponent + 112-bits significand
     40integer, parameter :: sp = real32  ! Simple precision    = 32  bits = 1-bit sign + 8-bit  exponent + 23-bit  significand
     41integer, parameter :: dp = real64  ! Double precision    = 64  bits = 1-bit sign + 11-bit exponent + 52-bit  significand
     42integer, parameter :: qp = real128 ! Quadruple precision = 128 bits = 1-bit sign + 15-bit exponent + 112-bit significand
    4143integer, parameter :: wp = dp      ! Working precision
    4244
  • trunk/LMDZ.COMMON/libf/evolution/pem.F90

    r4074 r4076  
    5050use tracers,            only: adapt_tracers2pressure, build4PCM_tracers, nq
    5151use utility,            only: real2str
    52 use workflow_status,    only: read_workflow_status, update_workflow_status
     52use workflow_status,    only: i_pem_run, read_workflow_status, update_workflow_status
    5353use xios_data,          only: load_xios_data
    5454
     
    533533! Footer
    534534call system_clock(c2)
    535 call print_end(n_yr_run,real((c2 - c1),dp)/real(cr,dp),r_plnt2earth_yr,pem_ini_date,n_yr_sim)
     535call print_end(i_pem_run,n_yr_run,n_yr_sim,real((c2 - c1),dp)/real(cr,dp),pem_ini_date,r_plnt2earth_yr)
    536536
    537537END PROGRAM pem
Note: See TracChangeset for help on using the changeset viewer.