Ignore:
Timestamp:
Jun 23, 2023, 4:10:41 PM (15 months ago)
Author:
Laurent Fairhead
Message:

Merged trunk revisions from r4443 to r4582 (HEAD) into branch

Location:
LMDZ6/branches/Portage_acc/libf/misc
Files:
9 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Portage_acc/libf/misc/readTracFiles_mod.f90

    r4446 r4584  
    11MODULE readTracFiles_mod
    22
    3   USE strings_mod,    ONLY: msg, find, get_in, str2int, dispTable, testFile, strReduce,  strFind, strStack, strHead, &
    4        test, removeComment, cat, fmsg, maxlen, int2str, checkList, strParse, strReplace, strTail, strCount, strIdx, reduceExpr
     3  USE strings_mod,    ONLY: msg, find, get_in, str2int, dispTable, strHead,  strReduce,  strFind, strStack, strIdx, &
     4       test, removeComment, cat, fmsg, maxlen, int2str, checkList, strParse, strReplace, strTail, strCount, reduceExpr
    55
    66  IMPLICIT NONE
     
    114114  !--- SOME PARAMETERS THAT ARE NOT LIKELY TO CHANGE OFTEN
    115115  CHARACTER(LEN=maxlen), SAVE      :: tran0        = 'air'      !--- Default transporting fluid
    116   CHARACTER(LEN=maxlen), PARAMETER :: old_phases   = 'vlir'     !--- Old phases for water (no separator)
    117   CHARACTER(LEN=maxlen), PARAMETER :: known_phases = 'glsr'     !--- Known phases initials
     116  CHARACTER(LEN=maxlen), PARAMETER :: old_phases   = 'vlirb'     !--- Old phases for water (no separator)
     117  CHARACTER(LEN=maxlen), PARAMETER :: known_phases = 'glsrb'     !--- Known phases initials
    118118  INTEGER, PARAMETER :: nphases = LEN_TRIM(known_phases)        !--- Number of phases
    119119  CHARACTER(LEN=maxlen), SAVE      :: phases_names(nphases) &   !--- Known phases names
    120                                              = ['gaseous', 'liquid ', 'solid  ', 'cloud ']
     120                                = ['gaseous', 'liquid ', 'solid  ', 'cloud  ','blosno ']
    121121  CHARACTER(LEN=1), SAVE :: phases_sep  =  '_'                  !--- Phase separator
    122122  LOGICAL,          SAVE :: tracs_merge = .TRUE.                !--- Merge/stack tracers lists
     
    292292  CHARACTER(LEN=maxlen), ALLOCATABLE :: trac_files(:), sections(:)
    293293  LOGICAL, ALLOCATABLE :: ll(:)
    294   LOGICAL :: lD
     294  LOGICAL :: lD, lFound
    295295  INTEGER :: is, nsec
    296296  lD = .FALSE.; IF(PRESENT(lDisp)) lD = lDisp
     
    301301  IF(test(strParse(type_trac, '|', sections,  n=nsec), lerr)) RETURN !--- Parse "type_trac" list
    302302  IF(PRESENT(sects)) sects = sections
    303   ALLOCATE(trac_files(nsec)); DO is=1, nsec; trac_files(is) = 'tracer_'//TRIM(sections(is))//'.def'; END DO
     303  ALLOCATE(trac_files(nsec), ll(nsec))
     304  DO is=1, nsec
     305     trac_files(is) = 'tracer_'//TRIM(sections(is))//'.def'
     306     INQUIRE(FILE=TRIM(trac_files(is)), EXIST=ll(is))
     307  END DO
    304308  IF(PRESENT(tracf)) tracf = trac_files
    305   ll = .NOT.testFile(trac_files)
    306309  fType = 0
    307   IF(.NOT.testFile('traceur.def')) fType = 1                         !--- OLD STYLE FILE
    308   IF(.NOT.testFile('tracer.def'))  fType = 2                         !--- NEW STYLE ; SINGLE  FILE, SEVERAL SECTIONS
    309   IF(ALL(ll))                      fType = 3                         !--- NEW STYLE ; SEVERAL FILES, SINGLE SECTION USED
     310  INQUIRE(FILE='traceur.def', EXIST=lFound); IF(lFound)  fType = 1   !--- OLD STYLE FILE
     311  INQUIRE(FILE='tracer.def',  EXIST=lFound); IF(lFound)  fType = 2   !--- NEW STYLE ; SINGLE  FILE, SEVERAL SECTIONS
     312                                             IF(ALL(ll)) fType = 3   !--- NEW STYLE ; SEVERAL FILES, SINGLE SECTION USED
    310313  IF(.NOT.lD) RETURN                                                 !--- NO CHECKING/DISPLAY NEEDED: JUST GET type_trac,fType
    311314  IF(ANY(ll) .AND. fType/=3) THEN                                    !--- MISSING FILES
     
    10321035  CHARACTER(LEN=*),        INTENT(IN)    :: fnam                     !--- Input file name
    10331036  TYPE(isot_type), TARGET, INTENT(INOUT) :: isot(:)                  !--- Isotopes descriptors (field %parent must be defined!)
     1037  LOGICAL :: lFound
    10341038  INTEGER :: is, iis, it, idb, ndb, nb0
    10351039  CHARACTER(LEN=maxlen), ALLOCATABLE :: vals(:)
     
    10401044
    10411045  !--- THE INPUT FILE MUST BE PRESENT
    1042   IF(test(fmsg('Missing isotopes parameters file "'//TRIM(fnam)//'"', modname, testFile(fnam)),lerr)) RETURN
     1046  INQUIRE(FILE=TRIM(fnam), EXIST=lFound); lerr = .NOT.lFound
     1047  IF(fmsg('Missing isotopes parameters file "'//TRIM(fnam)//'"', modname, lerr)) RETURN
    10431048
    10441049  !--- READ THE FILE SECTIONS, ONE EACH PARENT TRACER
  • LMDZ6/branches/Portage_acc/libf/misc/strings_mod.F90

    r4446 r4584  
    1010  PUBLIC :: is_numeric, bool2str, int2str, real2str, dble2str
    1111  PUBLIC :: reduceExpr, str2bool, str2int, str2real, str2dble
    12   PUBLIC :: addQuotes, testFile, checkList, removeComment, test
     12  PUBLIC :: addQuotes, checkList, removeComment, test
    1313
    1414  INTERFACE get_in;     MODULE PROCEDURE getin_s,  getin_i,  getin_r,  getin_l;  END INTERFACE get_in
     
    2929  INTERFACE reduceExpr;   MODULE PROCEDURE   reduceExpr_1,   reduceExpr_m; END INTERFACE reduceExpr
    3030  INTERFACE addQuotes;    MODULE PROCEDURE    addQuotes_1,    addQuotes_m; END INTERFACE addQuotes
    31   INTERFACE testFile;     MODULE PROCEDURE     testFile_1,     testFile_m; END INTERFACE testFile
    3231
    3332  INTEGER, PARAMETER :: maxlen    = 256                    !--- Standard maximum length for strings
     
    14521451
    14531452!==============================================================================================================================
    1454 !=== TEST WHETHER A FILE IS PRESENT OR NOT ====================================================================================
    1455 !==============================================================================================================================
    1456 LOGICAL FUNCTION testFile_1(fname) RESULT(out)
    1457   CHARACTER(LEN=*), INTENT(IN) :: fname
    1458 !------------------------------------------------------------------------------------------------------------------------------
    1459   INTEGER :: ierr
    1460   OPEN(90, FILE=fname, FORM='formatted', STATUS='old', IOSTAT=ierr); CLOSE(99)
    1461   out = ierr/=0
    1462 END FUNCTION testFile_1
    1463 !==============================================================================================================================
    1464 FUNCTION testFile_m(fname) RESULT(out)
    1465   LOGICAL,         ALLOCATABLE ::   out(:)
    1466   CHARACTER(LEN=*), INTENT(IN) :: fname(:)
    1467   INTEGER :: k
    1468 !------------------------------------------------------------------------------------------------------------------------------
    1469   out = [(testFile_1(fname(k)), k=1, SIZE(fname))]
    1470 END FUNCTION testFile_m
    1471 !==============================================================================================================================
    1472 
    1473 
    1474 !==============================================================================================================================
    14751453!=== DISPLAY "<message>: the following <items> are <reason>" FOLLOWED BY THE LIST OF <str> FOR WHICH <lerr>==T. ===============
    14761454!==============================================================================================================================
  • LMDZ6/branches/Portage_acc/libf/misc/wxios.F90

    r4446 r4584  
    308308        IF (xios_is_valid_axis("axis_lat")) THEN
    309309           CALL xios_set_axis_attr( "axis_lat", n_glo=nbp_lat, n=jj_nb, begin=jj_begin-1, value=io_lat(jj_begin:jj_end))
     310        ENDIF
     311        IF (xios_is_valid_axis("axis_lat_greordered")) THEN
     312           CALL xios_set_axis_attr( "axis_lat_greordered", n_glo=nbp_lat, n=jj_nb, begin=jj_begin-1, &
     313                                    value=io_lat(jj_begin:jj_end)*(-1.))
    310314        ENDIF
    311315
Note: See TracChangeset for help on using the changeset viewer.