Ignore:
Timestamp:
Sep 25, 2024, 12:03:08 PM (10 days ago)
Author:
abarral
Message:

Merge r5214

Location:
LMDZ6/branches/Amaury_dev/libf/dyn3d
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/iniacademic.F90

    r5223 r5229  
    1 ! $Id$
    2 
    31SUBROUTINE iniacademic(vcov, ucov, teta, q, masse, ps, phis, time_0)
    42
    53  USE lmdz_filtreg, ONLY: inifilr
    6   USE lmdz_infotrac, ONLY: nqtot, niso, iqIsoPha, tracers, getKey, isoName, addPhase
     4  USE lmdz_infotrac, ONLY: nqtot, niso, iqIsoPha, tracers, isoName, addPhase
    75  USE control_mod, ONLY: day_step, planet_type
    86  USE exner_hyb_m, ONLY: exner_hyb
     
    2018  USE lmdz_academic, ONLY: tetarappel, knewt_t, kfrict, knewt_g, clat4
    2119  USE lmdz_comgeom
     20  USE iso_params_mod   ! tnat_* and alpha_ideal_*
    2221
    2322  !   Author:    Frederic Hourdin      original: 15/01/93
     
    323322                    WRITE(lunout, *)'In '//TRIM(modname)//': !!!  Beware: alpha_ideal put to 1  !!!'
    324323                 ELSE
    325                     IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) &
    326                     CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1)
     324                    SELECT CASE(isoName(iName))
     325                      CASE('H216O'); tnat = tnat_H216O; alpha_ideal = alpha_ideal_H216O
     326                      CASE('H217O'); tnat = tnat_H217O; alpha_ideal = alpha_ideal_H217O
     327                      CASE('H218O'); tnat = tnat_H218O; alpha_ideal = alpha_ideal_H218O
     328                      CASE('HDO');   tnat = tnat_HDO;   alpha_ideal = alpha_ideal_HDO
     329                      CASE('HTO');   tnat = tnat_HTO;   alpha_ideal = alpha_ideal_HTO
     330                      CASE DEFAULT
     331                         CALL abort_gcm(TRIM(modname),'unknown isotope "'//TRIM(isoName(iName))//'" ; check tracer.def file',1)
     332                    END SELECT
    327333                 END IF
    328334                 q(:,:,iq) = q(:,:,iqParent)*tnat*(q(:,:,iqParent)/30.e-3)**(alpha_ideal-1.)
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_check_isotopes.f90

    r5224 r5229  
    99    USE lmdz_strings, ONLY: maxlen, msg, strIdx, strStack, int2str, real2str
    1010    USE lmdz_infotrac, ONLY: nqtot, niso, nphas, isotope, isoCheck, iqIsoPha, isoSelect, &
    11             ntiso, iH2O, nzone, tracers, isoName, itZonIso, getKey
     11            ntiso, iH2O, nzone, tracers, isoName, itZonIso
     12    USE iso_params_mod, ONLY: tnat_H216O, tnat_H217O, tnat_H218O, tnat_HDO, tnat_HTO
    1213
    1314    USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     
    3132            ridicule = 1e-12
    3233    INTEGER, SAVE :: iso_eau, iso_O17, iso_O18, iso_HDO, iso_HTO
    33     LOGICAL, SAVE :: ltnat1, first = .TRUE.
     34    LOGICAL :: ltnat1
     35    LOGICAL, SAVE :: first = .TRUE.
    3436
    3537    modname = 'check_isotopes'
     
    4042      ltnat1 = .TRUE.; CALL getin('tnateq1', ltnat1)
    4143      ALLOCATE(tnat(niso))
    42       iso_eau = strIdx(isoName, 'H216O')
    43       iso_O17 = strIdx(isoName, 'H217O')
    44       iso_O18 = strIdx(isoName, 'H218O')
    45       iso_HDO = strIdx(isoName, 'HDO')
    46       iso_HTO = strIdx(isoName, 'HTO')
    47       IF(ltnat1) THEN
    48         tnat(:) = 1.0
    49       ELSE
    50         IF(getKey('tnat', tnat)) CALL abort_gcm(modname, 'missing isotopic parameter', 1)
    51       END IF
     44      iso_eau = strIdx(isoName, 'H216O'); IF(iso_eau /= 0) tnat(iso_eau) = tnat_H216O
     45      iso_O17 = strIdx(isoName, 'H217O'); IF(iso_O17 /= 0) tnat(iso_O17) = tnat_H217O
     46      iso_O18 = strIdx(isoName, 'H218O'); IF(iso_O18 /= 0) tnat(iso_O18) = tnat_H218O
     47      iso_HDO = strIdx(isoName, 'HDO');   IF(iso_HDO /= 0) tnat(iso_HDO) = tnat_HDO
     48      iso_HTO = strIdx(isoName, 'HTO');   IF(iso_HTO /= 0) tnat(iso_HTO) = tnat_HTO
     49      IF(ltnat1) tnat(:) = 1.
    5250      first = .FALSE.
    5351    END IF
     
    6159        DO k = 1, llm
    6260          DO i = 1, ip1jmp1
    63             IF(ABS(q(i, k, iq)) <= borne) CYCLE
     61            IF(ABS(q(i, k, iq)) < borne) CYCLE
    6462            WRITE(msg1, '(s,"(",i0,",",i0,",",i0,") = ",ES12.4)')TRIM(isoName(ixt)), i, k, iq, q(i, k, iq)
    6563            CALL msg(msg1, modname)
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_dynetat0.f90

    r5224 r5229  
    1212    !-------------------------------------------------------------------------------
    1313    USE lmdz_infotrac, ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName, &
    14             new2oldH2O, newHNO3, oldHNO3, getKey
     14            new2oldH2O, newHNO3, oldHNO3
    1515    USE lmdz_strings, ONLY: maxlen, msg, strStack, real2str, int2str
    1616    USE netcdf, ONLY: nf90_open, nf90_nowrite, nf90_inq_varid, nf90_close, nf90_get_var, nf90_noerr
     
    2828    USE lmdz_strings, ONLY: strIdx
    2929    USE ioipsl, ONLY: getin
     30    USE iso_params_mod   ! tnat_* and alpha_ideal_*
    3031
    3132    USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
     
    169170            CALL msg(' !!!  Beware: alpha_ideal put to 1  !!!', modname)
    170171          ELSE
    171             IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) &
    172                     CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1)
     172            SELECT CASE(isoName(iName))
     173            CASE('H216O'); tnat = tnat_H216O; alpha_ideal = alpha_ideal_H216O
     174            CASE('H217O'); tnat = tnat_H217O; alpha_ideal = alpha_ideal_H217O
     175            CASE('H218O'); tnat = tnat_H218O; alpha_ideal = alpha_ideal_H218O
     176            CASE('HDO');   tnat = tnat_HDO;   alpha_ideal = alpha_ideal_HDO
     177            CASE('HTO');   tnat = tnat_HTO;   alpha_ideal = alpha_ideal_HTO
     178            CASE DEFAULT; CALL abort_gcm(TRIM(modname), 'unknown isotope "' // TRIM(isoName(iName)) // '" ; check tracer.def file', 1)
     179            END SELECT
    173180          END IF
    174181          CALL msg('Missing tracer <' // TRIM(var) // '> => initialized with a simplified Rayleigh distillation law.', modname)
Note: See TracChangeset for help on using the changeset viewer.