Changeset 1902 for trunk/LMDZ.TITAN/libf/phytitan
- Timestamp:
- Jan 29, 2018, 12:10:20 PM (7 years ago)
- Location:
- trunk/LMDZ.TITAN/libf/phytitan
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/libf/phytitan/calmufi.F90
r1897 r1902 1 1 2 2 3 SUBROUTINE calmufi( plev, zlev, play, zlay, temp, pq, zdq)3 SUBROUTINE calmufi(dt, plev, zlev, play, zlay, temp, pq, zdq) 4 4 !! Interface subroutine to YAMMS model for Titan LMDZ GCM. 5 5 !! … … 22 22 IMPLICIT NONE 23 23 24 REAL(kind=8), INTENT(IN) :: dt !! Physics timestep (s). 25 24 26 REAL(kind=8), DIMENSION(:,:), INTENT(IN) :: plev !! Pressure levels (Pa). 25 27 REAL(kind=8), DIMENSION(:,:), INTENT(IN) :: zlev !! Altitude levels (m). … … 151 153 END DO ! loop on ilon 152 154 155 ! YAMMS gives a tendency which is integrated for all the timestep but in the GCM 156 ! we want to have routines spitting tendencies in s-1 -> let's divide ! 157 zdq(:,:,:) = zdq(:,:,:) / dt 158 153 159 END SUBROUTINE calmufi -
trunk/LMDZ.TITAN/libf/phytitan/physiq_mod.F90
r1901 r1902 403 403 ! Or one can put calmufi in MMP_GCM module (in muphytitan). 404 404 INTERFACE 405 SUBROUTINE calmufi(plev, zlev, play, zlay, temp, pq, zdq) 405 SUBROUTINE calmufi(dt, plev, zlev, play, zlay, temp, pq, zdq) 406 REAL(kind=8), INTENT(IN) :: dt !! Physics timestep (s). 406 407 REAL(kind=8), DIMENSION(:,:), INTENT(IN) :: plev !! Pressure levels (Pa). 407 408 REAL(kind=8), DIMENSION(:,:), INTENT(IN) :: zlev !! Altitude levels (m). … … 1142 1143 #ifdef USE_QTEST 1143 1144 if (ngrid.eq.1) then ! We obviously don't have access to (and don't need) zonal means in 1D 1144 call calmufi(p plev,zzlev,pplay,zzlay,pt,tpq,zdqmufi)1145 call calmufi(ptimestep,pplev,zzlev,pplay,zzlay,pt,tpq,zdqmufi) 1145 1146 else 1146 call calmufi( zplevbar,zzlevbar,zplaybar,zzlaybar,ztfibar,tpq,zdqmufi)1147 call calmufi(ptimestep,zplevbar,zzlevbar,zplaybar,zzlaybar,ztfibar,tpq,zdqmufi) 1147 1148 endif 1148 tpq(:,:,:) = tpq(:,:,:) + zdqmufi(1:ngrid,1:nlayer,1:nq) 1149 tpq(:,:,:) = tpq(:,:,:) + zdqmufi(1:ngrid,1:nlayer,1:nq)*ptimestep ! only manipulation of tpq->*ptimesep here 1149 1150 #else 1150 1151 ! Inside this routine we will split 2D->1D, intensive->extensive and separate different types of tracers … … 1152 1153 1153 1154 if (ngrid.eq.1) then ! We obviously don't have access to (and don't need) zonal means in 1D 1154 call calmufi(p plev,zzlev,pplay,zzlay,pt,pq,zdqmufi)1155 call calmufi(ptimestep,pplev,zzlev,pplay,zzlay,pt,pq,zdqmufi) 1155 1156 else 1156 call calmufi( zplevbar,zzlevbar,zplaybar,zzlaybar,ztfibar,pq,zdqmufi)1157 call calmufi(ptimestep,zplevbar,zzlevbar,zplaybar,zzlaybar,ztfibar,pq,zdqmufi) 1157 1158 endif 1158 1159 1159 1160 pdq(1:ngrid,1:nlayer,1:nq) = pdq(1:ngrid,1:nlayer,1:nq) + zdqmufi(1:ngrid,1:nlayer,1:nq) 1160 ! We don't re-multiply by timestep, it is already taken into account in zdqmufi,1161 ! since inimufi has initialized YAMMS with a given ts.1162 1161 #endif 1163 1162 endif ! end of 'callmufi'
Note: See TracChangeset
for help on using the changeset viewer.