Ignore:
Timestamp:
Sep 22, 2024, 10:07:56 PM (4 weeks ago)
Author:
dcugnet
Message:

The fortran parameters file "iso_params_mod.F90" is introduced so that "tnat" and "alpha_ideal" are defined in a single place but used in several.
The "getKey" routine is only used in "infotrac" and "infotrac_phy" routines, but could be used outside this scope to get tracers parameters (read from "tracer.def") or isotopic parameters (read from "isotopes_params.def" - disabled for now).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3d/check_isotopes.F90

    r5201 r5214  
    22   USE strings_mod, ONLY: maxlen, msg, strIdx, strStack, int2str, real2str
    33   USE infotrac,    ONLY: nqtot, niso, nphas, isotope, isoCheck, iqIsoPha, isoSelect, &
    4                           ntiso, iH2O, nzone, tracers, isoName,  itZonIso, getKey
     4                          ntiso, iH2O, nzone, tracers, isoName,  itZonIso
     5   USE iso_params_mod,  ONLY: tnat_H216O, tnat_H217O, tnat_H218O, tnat_HDO, tnat_HTO
    56#ifdef CPP_IOIPSL
    67   USE ioipsl,          ONLY: getin
     
    1516   CHARACTER(LEN=maxlen) :: modname, msg1, nm(2)
    1617   INTEGER :: ixt, ipha, k, i, iq, iiso, izon, ieau, iqeau, iqpar
    17    INTEGER, ALLOCATABLE ::   ix(:)
     18   INTEGER, ALLOCATABLE       ::   ix(:)
    1819   REAL,    ALLOCATABLE, SAVE :: tnat(:)
    19    REAL    :: xtractot, xiiso, deltaD, q1, q2
     20   REAL :: xtractot, xiiso, deltaD, q1, q2
    2021   REAL, PARAMETER :: borne     = 1e19,  &
    2122                      errmax    = 1e-8,  &       !--- Max. absolute error
     
    2627                      ridicule  = 1e-12
    2728   INTEGER, SAVE :: iso_eau, iso_O17, iso_O18, iso_HDO, iso_HTO
    28    LOGICAL, SAVE :: ltnat1, first=.TRUE.
     29   LOGICAL       :: ltnat1
     30   LOGICAL, SAVE :: first=.TRUE.
    2931
    3032   modname='check_isotopes'
     
    3537      ltnat1 = .TRUE.; CALL getin('tnateq1', ltnat1)
    3638      ALLOCATE(tnat(niso))
    37       iso_eau = strIdx(isoName,'H216O')
    38       iso_O17 = strIdx(isoName,'H217O')
    39       iso_O18 = strIdx(isoName,'H218O')
    40       iso_HDO = strIdx(isoName,'HDO')
    41       iso_HTO = strIdx(isoName,'HTO')
    42       IF(ltnat1) THEN
    43          tnat(:)=1.0
    44       ELSE
    45          IF(getKey('tnat', tnat)) CALL abort_gcm(modname, 'missing isotopic parameter', 1)
    46       END IF
     39      iso_eau = strIdx(isoName,'H216O'); IF(iso_eau /= 0) tnat(iso_eau) = tnat_H216O
     40      iso_O17 = strIdx(isoName,'H217O'); IF(iso_O17 /= 0) tnat(iso_O17) = tnat_H217O
     41      iso_O18 = strIdx(isoName,'H218O'); IF(iso_O18 /= 0) tnat(iso_O18) = tnat_H218O
     42      iso_HDO = strIdx(isoName,'HDO');   IF(iso_HDO /= 0) tnat(iso_HDO) = tnat_HDO
     43      iso_HTO = strIdx(isoName,'HTO');   IF(iso_HTO /= 0) tnat(iso_HTO) = tnat_HTO
     44      IF(ltnat1) tnat(:) = 1.
    4745      first = .FALSE.
    4846   END IF
     
    5654         DO k = 1, llm
    5755            DO i = 1, ip1jmp1
    58                IF(ABS(q(i,k,iq)) <= borne) CYCLE
     56               IF(ABS(q(i,k,iq)) < borne) CYCLE
    5957               WRITE(msg1,'(s,"(",i0,",",i0,",",i0,") = ",ES12.4)')TRIM(isoName(ixt)),i,k,iq,q(i,k,iq)
    6058               CALL msg(msg1, modname)
Note: See TracChangeset for help on using the changeset viewer.