Changeset 3866


Ignore:
Timestamp:
Jul 23, 2025, 2:32:43 PM (4 weeks ago)
Author:
gmilcareck
Message:

Change the declaration of q from INOUT to IN + change call abort in radioactive_tracers.

Location:
trunk/LMDZ.GENERIC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/changelog.txt

    r3865 r3866  
    20922092== 23/07/2025 == GM
    20932093Fix bug on variable definition of ap, bp, aps and bps. A scalar was given instead of an array.
     2094
     2095== 23/07/2025 == GM
     2096Change the declaration of q from INOUT to IN + change call abort in radioactive_tracers.
  • trunk/LMDZ.GENERIC/libf/phystd/radioactive_tracers.F90

    r3724 r3866  
    4444            if (half_life(iq)/10 .le. ptimestep) then ! sanity test
    4545                write(*,*)"timestep is more than half-life / 10 of tracer ", noms(iq)
    46                 call abort_physic()
     46                call abort
    4747            end if ! dt > 0.1 * half_life
    4848            zdqradio(1:ngrid,1:nlayer,iq) = zdqradio(1:ngrid,1:nlayer,iq) - LOG(2.)/half_life(iq)*pq(1:ngrid,1:nlayer,iq) ! <== decay
  • trunk/LMDZ.GENERIC/libf/phystd/thermcell_dq.F90

    r3342 r3866  
    4242      REAL, INTENT(in) :: entr(ngrid,nlay)
    4343      REAL, INTENT(in) :: detr(ngrid,nlay)
     44      REAL, INTENT(in) :: q(ngrid,nlay)
    4445     
    4546!     Outputs:
    4647!     --------
    4748     
    48       REAL, INTENT(inout) :: q(ngrid,nlay)
    4949      REAL, INTENT(out) :: dq(ngrid,nlay)
    5050      REAL, INTENT(out) :: qa(ngrid,nlay)
     
    5959      REAL qold(ngrid,nlay)
    6060      REAL fqa(ngrid,nlay+1)
     61      REAL zq(ngrid,nlay)
    6162      REAL zzm
    6263     
     
    6667     
    6768      qold(:,:) = q(:,:)
     69      zq(:,:) = q(:,:)
    6870     
    6971!===============================================================================
     
    104106      !ALS24 initialises qa in first layer
    105107      DO ig=1,ngrid
    106          qa(ig,1) = q(ig,1)
     108         qa(ig,1) = zq(ig,1)
    107109      ENDDO
    108110
     
    110112         DO l=2,nlay
    111113            IF ((fm(ig,l+1)+detr(ig,l))*ptimestep > 1.e-6*masse(ig,l)) THEN
    112                qa(ig,l) = (fm(ig,l) * qa(ig,l-1) + entr(ig,l) * q(ig,l))      &
     114               qa(ig,l) = (fm(ig,l) * qa(ig,l-1) + entr(ig,l) * zq(ig,l))      &
    113115               &        / (fm(ig,l+1) + detr(ig,l))
    114116            ELSE
    115                qa(ig,l) = q(ig,l)
     117               qa(ig,l) = zq(ig,l)
    116118            ENDIF
    117119         ENDDO
     
    135137      IF (dqimpl) THEN
    136138         DO l=nlay-1,1,-1
    137             q(:,l) = ( q(:,l) + ptimestep / masse(:,l)                        &
    138             &      * ( fqa(:,l) - fqa(:,l+1) + fm(:,l+1) * q(:,l+1) ) )       &
     139            zq(:,l) = ( zq(:,l) + ptimestep / masse(:,l)                        &
     140            &      * ( fqa(:,l) - fqa(:,l+1) + fm(:,l+1) * zq(:,l+1) ) )       &
    139141            &      / ( 1. + fm(:,l) * ptimestep / masse(:,l) )
    140142         ENDDO
    141143      ELSE
    142144         DO l=1,nlay-1
    143             q(:,l) = q(:,l) + (fqa(:,l) - fqa(:,l+1) - fm(:,l) * q(:,l)       &
    144             &      + fm(:,l+1) * q(:,l+1)) * ptimestep / masse(:,l)
     145            zq(:,l) = zq(:,l) + (fqa(:,l) - fqa(:,l+1) - fm(:,l) * zq(:,l)       &
     146            &      + fm(:,l+1) * zq(:,l+1)) * ptimestep / masse(:,l)
    145147         ENDDO
    146148      ENDIF
     
    152154      DO l=1,nlay
    153155         DO ig=1,ngrid
    154             dq(ig,l) = (q(ig,l) - qold(ig,l)) / ptimestep
    155             q(ig,l) = qold(ig,l)
     156            dq(ig,l) = (zq(ig,l) - qold(ig,l)) / ptimestep
    156157         ENDDO
    157158      ENDDO
Note: See TracChangeset for help on using the changeset viewer.