Changeset 3866
- Timestamp:
- Jul 23, 2025, 2:32:43 PM (4 weeks ago)
- Location:
- trunk/LMDZ.GENERIC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/changelog.txt
r3865 r3866 2092 2092 == 23/07/2025 == GM 2093 2093 Fix bug on variable definition of ap, bp, aps and bps. A scalar was given instead of an array. 2094 2095 == 23/07/2025 == GM 2096 Change the declaration of q from INOUT to IN + change call abort in radioactive_tracers. -
trunk/LMDZ.GENERIC/libf/phystd/radioactive_tracers.F90
r3724 r3866 44 44 if (half_life(iq)/10 .le. ptimestep) then ! sanity test 45 45 write(*,*)"timestep is more than half-life / 10 of tracer ", noms(iq) 46 call abort _physic()46 call abort 47 47 end if ! dt > 0.1 * half_life 48 48 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 42 42 REAL, INTENT(in) :: entr(ngrid,nlay) 43 43 REAL, INTENT(in) :: detr(ngrid,nlay) 44 REAL, INTENT(in) :: q(ngrid,nlay) 44 45 45 46 ! Outputs: 46 47 ! -------- 47 48 48 REAL, INTENT(inout) :: q(ngrid,nlay)49 49 REAL, INTENT(out) :: dq(ngrid,nlay) 50 50 REAL, INTENT(out) :: qa(ngrid,nlay) … … 59 59 REAL qold(ngrid,nlay) 60 60 REAL fqa(ngrid,nlay+1) 61 REAL zq(ngrid,nlay) 61 62 REAL zzm 62 63 … … 66 67 67 68 qold(:,:) = q(:,:) 69 zq(:,:) = q(:,:) 68 70 69 71 !=============================================================================== … … 104 106 !ALS24 initialises qa in first layer 105 107 DO ig=1,ngrid 106 qa(ig,1) = q(ig,1)108 qa(ig,1) = zq(ig,1) 107 109 ENDDO 108 110 … … 110 112 DO l=2,nlay 111 113 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)) & 113 115 & / (fm(ig,l+1) + detr(ig,l)) 114 116 ELSE 115 qa(ig,l) = q(ig,l)117 qa(ig,l) = zq(ig,l) 116 118 ENDIF 117 119 ENDDO … … 135 137 IF (dqimpl) THEN 136 138 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) ) ) & 139 141 & / ( 1. + fm(:,l) * ptimestep / masse(:,l) ) 140 142 ENDDO 141 143 ELSE 142 144 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) 145 147 ENDDO 146 148 ENDIF … … 152 154 DO l=1,nlay 153 155 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 156 157 ENDDO 157 158 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.