Changeset 4100 for trunk/LMDZ.VENUS/libf
- Timestamp:
- Mar 4, 2026, 2:16:03 PM (4 weeks ago)
- Location:
- trunk/LMDZ.VENUS/libf/phyvenus
- Files:
-
- 1 deleted
- 3 edited
-
diffusion.h (deleted)
-
moldiff_MPF.F90 (modified) (27 diffs)
-
moldiffcoeff_red.F (modified) (3 diffs)
-
physiq_mod.F (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/libf/phyvenus/moldiff_MPF.F90
r3956 r4100 1 MODULE moldiff_MPF_mod 2 3 real*8,parameter :: Pdiff=1.e-1 ! pressure (Pa) below which diffusion is computed 4 real*8,parameter :: tdiffmin=5d0 5 real*8,parameter :: dzres=0.2d0 ! grid resolution (km) for diffusion 6 7 CONTAINS 8 1 9 subroutine moldiff_MPF(ngrid,nlayer,nq,pplay,pplev,pt,pq,& 2 10 ptimestep,pdteuv,pdtconduc,pdqdiff) 3 11 4 USE chemparam_mod 5 USE infotrac_phy 6 USE dimphy 7 USE comcstfi_mod12 use chemparam_mod, only: M_tr 13 use infotrac_phy, only: tname 14 use comcstfi_mod, only: g 15 use moldiffcoeff_red_mod, only: moldiffcoeff_red 8 16 9 17 implicit none 10 11 #include "diffusion.h"12 18 13 19 ! June 2023 JYC New method based on the modified pass flow (Parshev et al. 1987) … … 19 25 integer,intent(in) :: nlayer ! number of atmospheric layers 20 26 integer,intent(in) :: nq ! number of advected tracers 21 real ptimestep22 real pplay(ngrid,nlayer)23 real pplev(ngrid,nlayer+1)24 real pq(ngrid,nlayer,nq)27 real,intent(in) :: ptimestep ! physics time step (s) 28 real,intent(in) :: pplay(ngrid,nlayer) ! mid-layer pressure (Pa) 29 real,intent(in) :: pplev(ngrid,nlayer+1) ! pressure (Pa) at layer boundaries 30 real,intent(in) :: pq(ngrid,nlayer,nq) ! input tracer mmr (kg/kg_air) 25 31 ! real pdq(ngrid,nlayer,nq) 26 real pt(ngrid,nlayer)32 real,intent(in) :: pt(ngrid,nlayer) ! input temperature (K) 27 33 ! real pdt(ngrid,nlayer) 28 real pdteuv(ngrid,nlayer)29 real pdtconduc(ngrid,nlayer)30 real pdqdiff(ngrid,nlayer,nq)34 real,intent(in) :: pdteuv(ngrid,nlayer) ! tendency on temperature (K/s) dur to EUV 35 real,intent(in) :: pdtconduc(ngrid,nlayer) ! tendency on temperature (K/s) due to conduction 36 real,intent(out) :: pdqdiff(ngrid,nlayer,nq) ! tendency on tracers (kg/kg_air/s) 31 37 ! 32 38 ! Local … … 698 704 699 705 700 return 701 end 706 end subroutine moldiff_MPF 702 707 703 708 ! ******************************************************************** … … 804 809 enddo 805 810 806 end 811 end subroutine tridagbloc 807 812 808 813 subroutine tridag(a,b,c,r,u,n) … … 827 832 12 continue 828 833 return 829 end 834 end subroutine tridag 830 835 831 836 ! ******************************************************************** … … 866 871 14 CONTINUE 867 872 RETURN 868 END 873 END SUBROUTINE LUBKSB 869 874 870 875 ! ******************************************************************** … … 952 957 ierr =0 953 958 RETURN 954 END 959 END SUBROUTINE LUDCMP 955 960 956 961 SUBROUTINE TMNEW(T1,DT1,DT2,DT3,T2,dtime,nl,ig) … … 972 977 973 978 ENDDO 974 END 979 END SUBROUTINE TMNEW 975 980 976 981 SUBROUTINE QMNEW(Q1,DQ,Q2,dtime,nl,nq,gc,ig) … … 992 997 ENDDO 993 998 ENDDO 994 END 999 END SUBROUTINE QMNEW 995 1000 996 1001 SUBROUTINE HSCALE(p,hp,nl) … … 1008 1013 hp(l)=-log(P(l+1)/P(l-1)) 1009 1014 ENDDO 1010 END 1015 END SUBROUTINE HSCALE 1011 1016 1012 1017 SUBROUTINE MMOY(massemoy,mol_tr,qq,gc,nl,nq) … … 1026 1031 enddo 1027 1032 1028 END 1033 END SUBROUTINE MMOY 1029 1034 1030 1035 SUBROUTINE DMMOY(M,H,DM,nl) … … 1040 1045 enddo 1041 1046 1042 END 1047 END SUBROUTINE DMMOY 1043 1048 1044 1049 SUBROUTINE ZVERT(P,T,M,Z,nl,ig) … … 1073 1078 enddo 1074 1079 1075 END 1080 END SUBROUTINE ZVERT 1076 1081 1077 1082 SUBROUTINE RHOTOT(P,T,M,qq,rhoN,rhoK,nl,nq) … … 1094 1099 enddo 1095 1100 1096 END 1101 END SUBROUTINE RHOTOT 1097 1102 1098 1103 SUBROUTINE UPPER_RESOL(P,T,Z,M,RR,Rk, & … … 1187 1192 Praf(nl)=Nraf(nl)*kbolt*Traf(nl) 1188 1193 Mraf(nl)=1D0/sum(Qraf(nl,:)/dble(mol_tr(:))) 1189 END 1194 END SUBROUTINE UPPER_RESOL 1190 1195 1191 1196 SUBROUTINE CORRMASS(qq,qint,FacMass,nl,nq) … … 1200 1205 enddo 1201 1206 1202 END 1207 END SUBROUTINE CORRMASS 1203 1208 1204 1209 … … 1227 1232 D(l)=(1d0-Nk(l,nn)/N(l))/interm 1228 1233 enddo 1229 END 1234 END SUBROUTINE DCOEFF 1230 1235 1231 1236 SUBROUTINE HSCALEREAL(nn,Nk,Dz,H,nl,nq) … … 1256 1261 ! enddo 1257 1262 1258 END 1263 END SUBROUTINE HSCALEREAL 1259 1264 1260 1265 SUBROUTINE VELVERT(nn,T,H,D,Dz,masse,W,nl) … … 1289 1294 ! enddo 1290 1295 1291 END 1296 END SUBROUTINE VELVERT 1292 1297 1293 1298 SUBROUTINE TIMEDIFF(nn,H,W,TIME,nl) … … 1303 1308 ENDDO 1304 1309 1305 END 1310 END SUBROUTINE TIMEDIFF 1306 1311 1307 1312 … … 1337 1342 loss(nl)=1D0/dtime 1338 1343 1339 END 1344 END SUBROUTINE DIFFPARAM 1340 1345 1341 1346 SUBROUTINE SEQUENCY(alpha,beta,delta,ksi,eps,zeta,Dad,Kad,rhoad,Loss,Prod, & … … 1356 1361 ENDDO 1357 1362 1358 END 1363 END SUBROUTINE SEQUENCY 1359 1364 1360 1365 SUBROUTINE MATCOEFF(alpha,beta,gama,delta,eps,Dad,rhoad, & … … 1396 1401 1397 1402 1398 END 1403 END SUBROUTINE MATCOEFF 1399 1404 1400 1405 SUBROUTINE Checkmass(X,Y,nl,nn) … … 1411 1416 print*,'no conservation for mass',Xtot,Ytot,nn 1412 1417 endif 1413 END 1418 END SUBROUTINE Checkmass 1414 1419 1415 1420 SUBROUTINE Checkmass2(qold,qnew,P,il,nl,nn,nq) … … 1435 1440 ENDIF 1436 1441 1437 END 1442 END SUBROUTINE Checkmass2 1438 1443 1439 1444 SUBROUTINE GCMGRID_P(Z,P,Q,T,Nk,Rk,qq,qnew,tt,tnew, & … … 1539 1544 enddo 1540 1545 1541 END 1546 END SUBROUTINE GCMGRID_P 1542 1547 1543 1548 SUBROUTINE GCMGRID_P2(Z,P,Q,T,Nk,Rk,qq,qnew,tt,tnew & … … 1646 1651 ! write(*,*), ' -- Sortie moldiff_red -- ' 1647 1652 1648 END 1653 END SUBROUTINE GCMGRID_P2 1649 1654 1655 END MODULE moldiff_MPF_mod -
trunk/LMDZ.VENUS/libf/phyvenus/moldiffcoeff_red.F
r2523 r4100 1 MODULE moldiffcoeff_red_mod 2 3 IMPLICIT NONE 4 5 CONTAINS 6 1 7 subroutine moldiffcoeff_red(dij,indic,gcmind,ncompdiff2) 2 8 3 USE chemparam_mod 4 USE infotrac_phy 5 USE dimphy 9 use chemparam_mod, only: M_tr 10 use infotrac_phy, only: nqtot, tname 6 11 7 12 IMPLICIT NONE … … 15 20 c 16 21 c======================================================================= 17 #include "diffusion.h"18 22 19 23 c----------------------------------------------------------------------- … … 304 308 305 309 306 return 307 end 310 end subroutine moldiffcoeff_red 308 311 312 END MODULE moldiffcoeff_red_mod -
trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F
r4092 r4100 79 79 use compo_hedin83_mod2, only: compo_hedin83_init2 80 80 use compo_hedin83_mod2, only: compo_hedin83_mod 81 use moldiff_mpf_mod, only: moldiff_mpf 81 82 use nirdata_mod, only: nir_leedat 82 83 use radlwsw_newtoncool_mod, only: radlwsw_newtoncool … … 239 240 c 240 241 REAL Fsedim(klon,klev+1) ! Flux de sedimentation (kg.m-2) 241 EXTERNAL moldiff_MPF242 242 243 243 c
Note: See TracChangeset
for help on using the changeset viewer.
