Changeset 4154


Ignore:
Timestamp:
May 18, 2022, 3:56:49 PM (2 years ago)
Author:
dcugnet
Message:

Fixes needed because gfortran is not as permissive as ifort is with scalar pointers.

Location:
LMDZ6/trunk/libf
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3d_common/infotrac.F90

    r4153 r4154  
    117117   TYPE(isot_type),         SAVE, POINTER :: isotope            !--- CURRENTLY SELECTED ISOTOPES FAMILY DESCRIPTOR
    118118   INTEGER,                 SAVE          :: ixIso, iH2O        !--- Index of the selected isotopes family and H2O family
    119    LOGICAL,                 SAVE, POINTER :: isoCheck           !--- Flag to trigger the checking routines
     119   LOGICAL,                 SAVE          :: isoCheck           !--- Flag to trigger the checking routines
    120120   TYPE(keys_type),         SAVE, POINTER :: isoKeys(:)         !--- ONE SET OF KEYS FOR EACH ISOTOPE (LISTED IN isoName)
    121121   CHARACTER(LEN=maxlen),   SAVE, POINTER :: isoName(:),   &    !--- ISOTOPES NAMES FOR THE CURRENTLY SELECTED FAMILY
    122122                                             isoZone(:),   &    !--- TAGGING ZONES  FOR THE CURRENTLY SELECTED FAMILY
    123123                                             isoPhas            !--- USED PHASES    FOR THE CURRENTLY SELECTED FAMILY
    124    INTEGER,                 SAVE, POINTER ::  niso, nzone, &    !--- NUMBER OF ISOTOPES, TAGGING ZONES AND PHASES
    125                                              nphas, ntiso, &    !--- NUMBER OF PHASES AND ISOTOPES + ISOTOPIC TAGGING TRACERS
    126                                             itZonIso(:,:), &    !--- INDEX IN "isoTrac" AS f(tagging zone idx,  isotope idx)
     124   INTEGER,                 SAVE          ::  niso, nzone, &    !--- NUMBER OF ISOTOPES, TAGGING ZONES AND PHASES
     125                                             nphas, ntiso       !--- NUMBER OF PHASES AND ISOTOPES + ISOTOPIC TAGGING TRACERS
     126   INTEGER,                 SAVE, POINTER ::itZonIso(:,:), &    !--- INDEX IN "isoTrac" AS f(tagging zone idx,  isotope idx)
    127127                                            iqIsoPha(:,:)       !--- INDEX IN "qx"      AS f(isotopic tracer idx, phase idx)
    128128
     
    510510ELSE
    511511
     512   niso = 0; nzone=0; nphas=nqo; ntiso = 0; isoCheck=.FALSE.
    512513   CALL initIsotopes(tracers, isotopes)
    513514   nbIso = SIZE(isotopes)
     
    773774   iIso = strIdx(isotopes(:)%parent, iName)
    774775   lerr = iIso == 0
    775    CALL msg('no isotope family named "'//TRIM(iName)//'"', ll=lerr .AND. lV)
    776    IF(lerr) RETURN
     776   IF(lerr) THEN
     777      niso = 0; ntiso = 0; nzone=0; nphas=nqo; isoCheck=.FALSE.
     778      CALL msg('no isotope family named "'//TRIM(iName)//'"', ll=lV)
     779      RETURN
     780   END IF
    777781   lerr = isoSelectByIndex(iIso, lV)
    778782END FUNCTION isoSelectByName
     
    792796   ixIso = iIso                                                      !--- Update currently selected family index
    793797   isotope  => isotopes(ixIso)                                       !--- Select corresponding component
    794    isoKeys  => isotope%keys;     niso     => isotope%niso
    795    isoName  => isotope%trac;     ntiso    => isotope%ntiso
    796    isoZone  => isotope%zone;     nzone    => isotope%nzone
    797    isoPhas  => isotope%phase;    nphas    => isotope%nphas
    798    itZonIso => isotope%itZonIso; isoCheck => isotope%check
     798   isoKeys  => isotope%keys;     niso     = isotope%niso
     799   isoName  => isotope%trac;     ntiso    = isotope%ntiso
     800   isoZone  => isotope%zone;     nzone    = isotope%nzone
     801   isoPhas  => isotope%phase;    nphas    = isotope%nphas
     802   itZonIso => isotope%itZonIso; isoCheck = isotope%check
    799803   iqIsoPha => isotope%iqIsoPha
    800804END FUNCTION isoSelectByIndex
  • LMDZ6/trunk/libf/phylmd/infotrac_phy.F90

    r4143 r4154  
    115115   TYPE(isot_type),         SAVE, POINTER :: isotope            !--- CURRENTLY SELECTED ISOTOPES FAMILY DESCRIPTOR
    116116   INTEGER,                 SAVE          :: ixIso, iH2O        !--- Index of the selected isotopes family and H2O family
    117    LOGICAL,                 SAVE, POINTER :: isoCheck           !--- Flag to trigger the checking routines
     117   LOGICAL,                 SAVE          :: isoCheck           !--- Flag to trigger the checking routines
    118118   TYPE(keys_type),         SAVE, POINTER :: isoKeys(:)         !--- ONE SET OF KEYS FOR EACH ISOTOPE (LISTED IN isoName)
    119119   CHARACTER(LEN=maxlen),   SAVE, POINTER :: isoName(:),   &    !--- ISOTOPES NAMES FOR THE CURRENTLY SELECTED FAMILY
    120120                                             isoZone(:),   &    !--- TAGGING ZONES  FOR THE CURRENTLY SELECTED FAMILY
    121121                                             isoPhas            !--- USED PHASES    FOR THE CURRENTLY SELECTED FAMILY
    122    INTEGER,                 SAVE, POINTER ::  niso, nzone, &    !--- NUMBER OF ISOTOPES, TAGGING ZONES AND PHASES
    123                                              nphas, ntiso, &    !--- NUMBER OF PHASES AND ISOTOPES + ISOTOPIC TAGGING TRACERS
    124                                             itZonIso(:,:), &    !--- INDEX IN "isoTrac" AS f(tagging zone idx,  isotope idx)
     122   INTEGER,                 SAVE          ::  niso, nzone, &    !--- NUMBER OF ISOTOPES, TAGGING ZONES AND PHASES
     123                                             nphas, ntiso       !--- NUMBER OF PHASES AND ISOTOPES + ISOTOPIC TAGGING TRACERS
     124   INTEGER,                 SAVE, POINTER ::itZonIso(:,:), &    !--- INDEX IN "isoTrac" AS f(tagging zone idx,  isotope idx)
    125125                                            iqIsoPha(:,:)       !--- INDEX IN "qx"      AS f(isotopic tracer idx, phase idx)
    126126!$OMP THREADPRIVATE(isotope, ixIso,iH2O, isoCheck, isoKeys, isoName,isoZone,isoPhas, niso,nzone,nphas,ntiso, itZonIso,iqIsoPha)
     
    224224   iIso = strIdx(isotopes(:)%parent, iName)
    225225   lerr = iIso == 0
    226    CALL msg('no isotope family named "'//TRIM(iName)//'"', ll=lerr .AND. lV)
    227    IF(lerr) RETURN
     226   IF(lerr) THEN
     227      niso = 0; ntiso = 0; nzone=0; nphas=nqo; isoCheck=.FALSE.
     228      CALL msg('no isotope family named "'//TRIM(iName)//'"', ll=lV)
     229      RETURN
     230   END IF
    228231   lerr = isoSelectByIndex(iIso, lV)
    229232END FUNCTION isoSelectByName
     
    243246   ixIso = iIso                                                  !--- Update currently selected family index
    244247   isotope  => isotopes(ixIso)                                   !--- Select corresponding component
    245    isoKeys  => isotope%keys;     niso     => isotope%niso
    246    isoName  => isotope%trac;     ntiso    => isotope%ntiso
    247    isoZone  => isotope%zone;     nzone    => isotope%nzone
    248    isoPhas  => isotope%phase;    nphas    => isotope%nphas
    249    itZonIso => isotope%itZonIso; isoCheck => isotope%check
     248   isoKeys  => isotope%keys;     niso     = isotope%niso
     249   isoName  => isotope%trac;     ntiso    = isotope%ntiso
     250   isoZone  => isotope%zone;     nzone    = isotope%nzone
     251   isoPhas  => isotope%phase;    nphas    = isotope%nphas
     252   itZonIso => isotope%itZonIso; isoCheck = isotope%check
    250253   iqIsoPha => isotope%iqIsoPha
    251254END FUNCTION isoSelectByIndex
Note: See TracChangeset for help on using the changeset viewer.