Changeset 1356
- Timestamp:
- Oct 8, 2014, 9:26:28 AM (10 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/Tools/angmom.F90
r842 r1356 242 242 call get_var3d(infid,lonlength,latlength,timelength,text,ps,ierr1,ierr2) 243 243 if (ierr1.ne.NF_NOERR) then 244 write(*,*) " looking for ps olinstead... "245 text="ps ol"244 write(*,*) " looking for ps instead... " 245 text="ps" 246 246 call get_var3d(infid,lonlength,latlength,timelength,text,ps,ierr1,ierr2) 247 if (ierr1.ne.NF_NOERR) stop "Error: Failed to get psol ID" 247 if (ierr1.ne.NF_NOERR) then 248 write(*,*) " looking for psol instead... " 249 text="psol" 250 call get_var3d(infid,lonlength,latlength,timelength,text,ps,ierr1,ierr2) 251 if (ierr1.ne.NF_NOERR) stop "Error: Failed to get psol ID" 252 endif 248 253 endif 249 254 if (ierr2.ne.NF_NOERR) stop "Error: Failed reading surface pressure" … … 467 472 do ilev=1,altlength 468 473 ! Need to be consistent with GCM computations 469 ! if (za(ilon,ilat,ilev,itim).ne.miss_val) then474 if (vitu(ilon,ilat,ilev,itim).ne.miss_val) then 470 475 rayon(ilon,ilat,ilev,itim) = a0 471 476 ! rayon(ilon,ilat,ilev,itim) = za(ilon,ilat,ilev,itim) + a0 472 477 grav(ilon,ilat,ilev,itim) = g0*a0*a0 & 473 478 /(rayon(ilon,ilat,ilev,itim)*rayon(ilon,ilat,ilev,itim)) 474 !else475 !rayon(ilon,ilat,ilev,itim) = miss_val476 !grav(ilon,ilat,ilev,itim) = miss_val477 !endif479 else 480 rayon(ilon,ilat,ilev,itim) = miss_val 481 grav(ilon,ilat,ilev,itim) = miss_val 482 endif 478 483 enddo 479 484 enddo … … 526 531 do ilat=1,latlength 527 532 do ilev=1,altlength 533 if (rayon(ilon,ilat,ilev,itim).ne.miss_val) then 528 534 oaam(itim) = oaam(itim) & 529 535 + osam(ilon,ilat,ilev,itim)/ hadday * dmass(ilon,ilat,ilev,itim) 530 536 raam(itim) = raam(itim) & 531 537 + rsam(ilon,ilat,ilev,itim)/ hadday * dmass(ilon,ilat,ilev,itim) 538 endif 532 539 enddo 533 540 enddo -
trunk/LMDZ.TITAN/Tools/compile_pgf
r816 r1356 1 1 # path for netcdf should be adapted to your configuration ! 2 2 3 \rm planet.h 4 ln -s $2.h planet.h 3 \cp -f $2.h planet.h 5 4 pgf95 -Bstatic cpdet.F90 moyzon.F moyzon2.F moytim.F dx_dp.F epflux.F90 \ 6 5 io.F90 dmass.F90 reverse.F90 $1.F90 \ -
trunk/LMDZ.TITAN/Tools/planet.h
r816 r1356 1 1 ! Parameters needed to integrate hydrostatic equation: 2 2 3 real,parameter :: g0= 8.874 !g0: exact mean gravity at radius= 6051.km3 real,parameter :: g0=1.35 4 !g0: exact mean gravity at radius=2575.km 5 5 6 real,parameter :: a0= 6051.E37 !a0: 'mean' radius= 6051.km6 real,parameter :: a0=2575.E3 7 !a0: 'mean' radius=2575.km 8 8 9 real,parameter :: R0= 191.4! molecular gas constant9 real,parameter :: R0=296.9 ! molecular gas constant 10 10 11 real,parameter :: psref= 9.2e6! reference pressure at surface (Pa)11 real,parameter :: psref=1.4e5 ! reference pressure at surface (Pa) 12 12 13 real,parameter :: omega= 2.992677e-7! angular rotation speed (s-1)13 real,parameter :: omega=4.5238899E-06 ! angular rotation speed (s-1) 14 14 15 real,parameter :: localday=1. 0087e7! local day (s)15 real,parameter :: localday=1.37889e6 ! local day (s) 16 16 17 character (len=5),parameter :: planet=" Venus"17 character (len=5),parameter :: planet="Titan" 18 18 19 real,parameter :: cp0=1000. !doit etre egal a cpp (dyn) et RCPD (phy) 20 real,parameter :: t0=460. 21 real,parameter :: nu=0.35 22 19 real,parameter :: cp0=1039. !doit etre egal a cpp (dyn) et RCPD (phy) 20 real,parameter :: t0=0. 21 real,parameter :: nu=0. -
trunk/LMDZ.TITAN/libf/phytitan/cirs_haze.F90
r1126 r1356 1 subroutine cirs_haze(press,wno,taeros,taeroscat )1 subroutine cirs_haze(press,wno,taeros,taeroscat,cbar) 2 2 IMPLICIT NONE 3 3 4 4 real,intent(in) :: press,wno 5 real,intent(inout):: taeros,taeroscat 5 real,intent(inout):: taeros,taeroscat,cbar 6 6 7 7 !--------------------------- … … 21 21 22 22 if (wno.eq.600.) then 23 print*,press,wno,taeros,taeroscat 23 print*,press,wno,taeros,taeroscat,cbar 24 24 endif 25 25 -
trunk/LMDZ.TITAN/libf/phytitan/cooling.F
r888 r1356 1 SUBROUTINE COOLING(NG,NL,PRESS,TEMP,Z,Q0, lwnet,pfluxi,icld)1 SUBROUTINE COOLING(NG,NL,PRESS,TEMP,Z,Q0,zlwup,zlwdn,pfluxi,icld) 2 2 3 3 c======================================================================= … … 36 36 c 37 37 c q0(nl-1) radiative cooling in K/sec 38 c lwnet(nl) net fluxes, (+) upward 38 c zlwup(nl) up fluxes, (+) upward 39 c zlwdn(nl) down fluxes, (+) downward 39 40 c pfluxi IR descendant a la surface (+ vers le bas) 40 41 c … … 73 74 REAL PRESS(NG,NL),TEMP(NG,NL) 74 75 REAL Z(NG,NL),Q0(NG,NL-1) 75 REAL lwnet(NG,NL),UBARI276 REAL zlwup(NG,NL),zlwdn(NG,NL),UBARI2 76 77 real pfluxi(NG) 77 78 … … 147 148 UBARI2=UBARI 148 149 149 C ZERO THE NETFLUXES150 C ZERO THE FLUXES 150 151 Q0 = 0.0 151 lwnet = 0.0 152 zlwup = 0.0 153 zlwdn = 0.0 152 154 153 155 c----------------------------------------------------------------------- … … 275 277 3520 CONTINUE 276 278 277 c compute the net IR flux, (+) upward:279 c compute the up (+ upward) and down (+ downward) IR fluxes: 278 280 c 279 281 DO J=1,NL 280 282 DO ig=1,NG 281 lwnet(ig,J)= lwnet(ig,J)+ DWNI(K)*(FUPI(ig,J)-FDI(ig,J)) 283 zlwup(ig,J)= zlwup(ig,J)+ DWNI(K)*FUPI(ig,J) 284 zlwdn(ig,J)= zlwdn(ig,J)+ DWNI(K)*FDI(ig,J) 282 285 ENDDO 283 286 ENDDO … … 312 315 DO 3550 ig=1,NG 313 316 pfluxi(ig) = 1.e-3*pfluxi(ig) 314 lwnet(ig,:) = 1.e-3*lwnet(ig,:) 317 zlwup(ig,:) = 1.e-3*zlwup(ig,:) 318 zlwdn(ig,:) = 1.e-3*zlwdn(ig,:) 315 319 3550 CONTINUE 316 320 -
trunk/LMDZ.TITAN/libf/phytitan/drag_noro.F
r1056 r1356 30 30 c paprs---input-R-Pressure in semi layers (Pa) 31 31 c pplay---input-R-Pressure model-layers (Pa) 32 c pgeop---input-R-Geopotential model layers (m)32 c pgeop---input-R-Geopotential model layers (reference ground) 33 33 c pn2-----input-R-Brunt-Vaisala freq.^2 at 1/2 layers 34 34 c t-------input-R-temperature (K) … … 66 66 c ================ 67 67 c 68 c zgeom-----R: Altitude of layer above ground68 c zgeom-----R: Altitude (m) of layer above ground (from top to bottom) 69 69 c pt, pu, pv --R: t u v from top to bottom 70 70 c pdtdt, pdudt, pdvdt --R: t u v tendencies (from top to bottom) … … 137 137 DO k = klev, 1, -1 138 138 DO i = 1, klon 139 zgeom(i,k) = pgeop(i,klev-k+1) 139 zgeom(i,k) = pgeop(i,klev-k+1)/RG 140 140 zn2(i,k) = pn2(i,klev-k+1) 141 141 ENDDO -
trunk/LMDZ.TITAN/libf/phytitan/grid_noro.F
r1056 r1356 93 93 REAL zpic(imar+1,jmar),zval(imar+1,jmar) 94 94 real num_tot(2200,1100),num_lan(2200,1100) 95 c 95 96 96 REAL a(2200),b(2200),c(1100),d(1100) 97 c 97 98 c pas defini puisque pas de physique dans newstart... 99 RPI=2.*ASIN(1.) 100 RA=2575000. 101 98 102 print *,' parametres de l orographie a l echelle sous maille' 99 103 -
trunk/LMDZ.TITAN/libf/phytitan/heating.F
r495 r1356 1 SUBROUTINE heating(dist,rmu0,fract,falbe,sol_htg,swnet,icld) 1 SUBROUTINE heating(dist,rmu0,fract,falbe,sol_htg,zswup,zswdn, 2 . icld) 2 3 3 4 … … 23 24 c ------- 24 25 c sol_htg-----output-R- echauffement atmospherique (visible) (K/s) 25 c swnet-------output-R- flux solaire net (+ vers le bas) (W/m2) 26 c zswup-------output-R- flux solaire upward (+ vers le haut) (W/m2) 27 c zswdn-------output-R- flux solaire downward (+ vers le bas) (W/m2) 26 28 c 27 29 c======================================================================= … … 51 53 52 54 real sol_htg(klon,klev) 53 real swnet(klon,klev+1) 55 real zswup(klon,klev+1) 56 real zswdn(klon,klev+1) 54 57 55 58 c Local: … … 87 90 fnetv = 0.0 88 91 sol_htg= 0.0 89 swnet = 0.0 92 zswup = 0.0 93 zswdn = 0.0 90 94 c pour sorties dans gfluxv... 91 95 iprint = 0 … … 101 105 CALL sfluxv(iprint,ig,dist,falbe,icld) ! #3 102 106 103 fnetv(ig,:) = fnetv(ig,:) *fract(ig) ! >0 vers le haut 104 c >0 vers le bas + conversion en W/m2: 105 swnet(ig,:) = -1.e-3*fnetv(ig,:) 107 do K=1,NSPECV 108 zswup(ig,:) = zswup(ig,:)+FUPV(ig,:,K)*fract(ig) ! >0 up 109 zswdn(ig,:) = zswdn(ig,:)+FDV(ig,:,K) *fract(ig) ! >0 down 110 enddo 111 fnetv(ig,:) = fnetv(ig,:) *fract(ig) ! >0 up 112 113 c conversion en W/m2: 114 zswup(ig,:) = 1.e-3*zswup(ig,:) 115 zswdn(ig,:) = 1.e-3*zswdn(ig,:) 106 116 107 117 DO j=1,nlayer -
trunk/LMDZ.TITAN/libf/phytitan/ini_histmth.h
r1056 r1356 236 236 . 32, "ave(X)", zsto1,zout) 237 237 238 c CALL histdef(nid_mth, "SWup", "upward SW flux","W/m2", 239 c . iim,jj_nb,nhori, klev,1,klev,nvert, 240 c . 32, "ave(X)", zsto1,zout) 241 242 c CALL histdef(nid_mth, "SWdn", "downward SW flux","W/m2", 243 c . iim,jj_nb,nhori, klev,1,klev,nvert, 244 c . 32, "ave(X)", zsto1,zout) 245 238 246 CALL histdef(nid_mth, "LWnet", "Net LW flux","W/m2", 239 247 . iim,jj_nb,nhori, klev,1,klev,nvert, 240 248 . 32, "ave(X)", zsto1,zout) 249 250 c CALL histdef(nid_mth, "LWup", "upward LW flux","W/m2", 251 c . iim,jj_nb,nhori, klev,1,klev,nvert, 252 c . 32, "ave(X)", zsto1,zout) 253 254 c CALL histdef(nid_mth, "LWdn", "downward LW flux","W/m2", 255 c . iim,jj_nb,nhori, klev,1,klev,nvert, 256 c . 32, "ave(X)", zsto1,zout) 257 258 CALL histdef(nid_mth, "fluxvdf", "PBL net flux","W/m2", 259 . iim,jj_nb,nhori, klev,1,klev,nvert, 260 . 32, "ave(X)", zsto,zout) 261 262 CALL histdef(nid_mth, "fluxdyn", "Dyn. net flux","W/m2", 263 . iim,jj_nb,nhori, klev,1,klev,nvert, 264 . 32, "ave(X)", zsto,zout) 265 266 CALL histdef(nid_mth, "fluxajs", "Dry adj. net flux","W/m2", 267 . iim,jj_nb,nhori, klev,1,klev,nvert, 268 . 32, "ave(X)", zsto,zout) 269 270 c CALL histdef(nid_mth, "fluxec", "Cin. net flux","W/m2", 271 c . iim,jj_nb,nhori, klev,1,klev,nvert, 272 c . 32, "ave(X)", zsto,zout) 241 273 242 274 c -------------- -
trunk/LMDZ.TITAN/libf/phytitan/newstart.F
r1056 r1356 22 22 USE infotrac 23 23 use cpdet_mod, only: ini_cpdet,t2tpot 24 use exner_hyb_m, only: exner_hyb 25 use exner_milieu_m, only: exner_milieu 24 26 25 27 implicit none … … 135 137 integer, dimension(4) :: start,counter 136 138 REAL phisinverse(iip1,jjp1) ! geopotentiel au sol avant inversion 137 logical topoflag,albedoflag 139 logical topoflag,albedoflag,razvitu,razvitv 138 140 real albedo 139 141 … … 969 971 c-------------------------------------------------------------- 970 972 973 !!! ATTENTION TEMPORAIRE 974 c ps(:,:)=146700. 975 971 976 ptotal = 0. 972 977 DO j=1,jjp1 … … 1004 1009 CALL pression(ip1jmp1, ap, bp, ps, p3d) 1005 1010 if (disvert_type==1) then 1006 CALL exner_hyb( ip1jmp1, ps, p3d, alpha,beta,pks, pk, pkf )1011 CALL exner_hyb( ip1jmp1, ps, p3d, pks, pk, pkf ) 1007 1012 else ! we assume that we are in the disvert_type==2 case 1008 CALL exner_milieu( ip1jmp1, ps, p3d, beta,pks, pk, pkf )1013 CALL exner_milieu( ip1jmp1, ps, p3d, pks, pk, pkf ) 1009 1014 endif 1010 1015 … … 1012 1017 1013 1018 c ATTENTION: peut servir, mais bon... 1014 c modif: profil uniforme1015 1019 c do l=1,lmold 1016 1020 c do j=1,jmold+1 1017 1021 c do i=1,imold+1 1022 c modif: profil uniforme 1018 1023 c told(i,j,l)=told(1,jmold/2,l) 1024 c mean T profile: 1025 c told(i,j,l) = 142.1*exp(-((p3d(i,j,l)/100.+21.45)/40.11)**2.) 1026 c . + 106.3*exp(-((p3d(i,j,l)/100.-3183.)/4737.)**2.) 1019 1027 c enddo 1020 1028 c enddo … … 1040 1048 c on assure la periodicite 1041 1049 teta(iip1,:,:) = teta(1,:,:) 1050 1051 ! RESETING U TO 0: may be done through run.def 1052 razvitu = . FALSE . 1053 CALL getin('razvitu',razvitu) 1054 razvitv = . FALSE . 1055 CALL getin('razvitv',razvitv) 1042 1056 1043 1057 c calcul des champ de vent; passage en vent covariant … … 1057 1071 & rlonuold,rlatvold,rlonu,rlatv) 1058 1072 call scal_wind(us,vs,unat,vnat) 1073 ! Reseting u=0 1074 if (razvitu) then 1075 unat(:,:,:) = 0. 1076 endif 1059 1077 write (*,*) 'unat ', unat (1,2,1) ! INFO 1060 1078 do l=1,llm … … 1070 1088 write (*,*) 'ucov ', ucov (1,2,1) ! INFO 1071 1089 c write(48,*) 'ucov',ucov 1090 ! Reseting v=0 1091 if (razvitv) then 1092 vnat(:,:,:) = 0. 1093 endif 1094 write (*,*) 'vnat ', vnat (1,2,1) ! INFO 1072 1095 do l=1,llm 1073 1096 do j = 1, jjm -
trunk/LMDZ.TITAN/libf/phytitan/phys_state_var_mod.F90
r1056 r1356 51 51 ! toplwdown : downward CS LW flux at TOA 52 52 ! toplwdownclr : downward CS LW flux at TOA 53 REAL,ALLOCATABLE,SAVE :: swnet(:,:) 54 !$OMP THREADPRIVATE(swnet) 55 REAL,ALLOCATABLE,SAVE :: lwnet(:,:) 56 !$OMP THREADPRIVATE(lwnet) 53 ! swnet,swdn,lwdn: + downward 54 ! lwnet,swup,lwup: + upward 55 REAL,ALLOCATABLE,SAVE :: swnet(:,:),swup(:,:),swdn(:,:) 56 !$OMP THREADPRIVATE(swnet,swup,swdn) 57 REAL,ALLOCATABLE,SAVE :: lwnet(:,:),lwup(:,:),lwdn(:,:) 58 !$OMP THREADPRIVATE(lwnet,lwup,lwdn) 57 59 REAL,ALLOCATABLE,SAVE :: heat(:,:) 58 60 !$OMP THREADPRIVATE(heat) … … 124 126 ! 125 127 ALLOCATE(swnet(klon,klev+1), lwnet(klon,klev+1)) 128 ALLOCATE(swup(klon,klev+1), lwup(klon,klev+1)) 129 ALLOCATE(swdn(klon,klev+1), lwdn(klon,klev+1)) 126 130 ALLOCATE(heat(klon,klev), heat0(klon,klev)) 127 131 ALLOCATE(cool(klon,klev), cool0(klon,klev)) … … 152 156 deallocate(zuthe, zvthe) 153 157 deallocate(swnet, lwnet) 158 deallocate(swup, lwup) 159 deallocate(swdn, lwdn) 154 160 deallocate(heat, heat0) 155 161 deallocate(cool, cool0) -
trunk/LMDZ.TITAN/libf/phytitan/physiq.F
r1126 r1356 7 7 . paprs,pplay,ppk,pphi,pphis,presnivs, 8 8 . u,v,t,qx, 9 . omega,9 . flxmw, 10 10 . d_u, d_v, d_t, d_qx, d_ps) 11 11 … … 46 46 c qx------input-R-mass mixing ratio traceurs (kg/kg) 47 47 c d_t_dyn-input-R-tendance dynamique pour "t" (K/s) 48 c omega---input-R-vitesse verticale en Pa/s48 c flxmw---input-R-flux de masse vertical en kg/s 49 49 c 50 50 c d_u-----output-R-tendance physique de "u" (m/s/s) … … 133 133 REAL d_t_dyn(klon,klev) 134 134 135 REAL omega(klon,klev)135 REAL flxmw(klon,klev) 136 136 137 137 REAL d_u(klon,klev) … … 146 146 INTEGER,save :: itap ! compteur pour la physique 147 147 REAL delp(klon,klev) ! epaisseur d'une couche 148 REAL omega(klon,klev) 148 149 149 150 INTEGER igwd,idx(klon),itest(klon) … … 722 723 c==================================================================== 723 724 c 725 c Calcule de vitesse verticale a partir de flux de masse verticale 726 DO k = 1, klev 727 DO i = 1, klon 728 omega(i,k) = RG*flxmw(i,k) / airephy(i) 729 END DO 730 END DO 731 724 732 c Ajouter le geopotentiel du sol: 725 733 c … … 1316 1324 c 1317 1325 c A ADAPTER POUR VENUS!!! 1318 CALL drag_noro(klon,klev,dtime,paprs,pplay, zphi,zn2,1326 CALL drag_noro(klon,klev,dtime,paprs,pplay,pphi,zn2, 1319 1327 e zmea,zstd, zsig, zgam, zthe,zpic,zval, 1320 1328 e igwd,idx,itest, -
trunk/LMDZ.TITAN/libf/phytitan/radlwsw.F
r1056 r1356 37 37 USE comgeomphy 38 38 USE phys_state_var_mod, only: falbe,heat,cool,radsol, 39 . topsw,toplw,solsw,sollw,sollwdown,lwnet,swnet 39 . topsw,toplw,solsw,sollw,sollwdown,lwnet,swnet, 40 . lwup,lwdn,swup,swdn 40 41 USE write_field_phy 41 42 IMPLICIT none … … 60 61 real zheatc(klon,klev), zcoolc(klon,klev) 61 62 real zheatp(klon,klev), zcoolp(klon,klev) 62 REAL zswnetc(klon,klev+1),zlwnetp(klon,klev+1) 63 REAL zswnetp(klon,klev+1),zlwnetc(klon,klev+1) 63 REAL zswupc(klon,klev+1),zlwupc(klon,klev+1) 64 REAL zswupp(klon,klev+1),zlwupp(klon,klev+1) 65 REAL zswdnc(klon,klev+1),zlwdnc(klon,klev+1) 66 REAL zswdnp(klon,klev+1),zlwdnp(klon,klev+1) 64 67 REAL zsollwdownc(klon),zsollwdownp(klon) 65 68 INTEGER icld … … 124 127 IF (clouds.eq.1) THEN 125 128 ICLD = 1 ! colonne avec nuages 126 CALL heating(dist,rmu0,fract,falbe,zheatc,zsw netc,icld)129 CALL heating(dist,rmu0,fract,falbe,zheatc,zswupc,zswdnc,icld) 127 130 ELSE 128 131 zheatc = 0. 129 zswnetc = 0. 132 zswupc = 0. 133 zswdnc = 0. 130 134 ENDIF 131 135 ICLD = 0 ! colonne sans nuages 132 CALL heating(dist,rmu0,fract,falbe,zheatp,zsw netp,icld)136 CALL heating(dist,rmu0,fract,falbe,zheatp,zswupp,zswdnp,icld) 133 137 134 138 c inversion de l'axe vertical … … 141 145 do l=1,klev+1 142 146 do i=1,klon 143 swnet(i,l)=zswnetc(i,klev+2-l)*xnuf + 144 & zswnetp(i,klev+2-l)*(1.-xnuf) 147 swup(i,l) =zswupc(i,klev+2-l)*xnuf + 148 & zswupp(i,klev+2-l)*(1.-xnuf) 149 swdn(i,l) =zswdnc(i,klev+2-l)*xnuf + 150 & zswdnp(i,klev+2-l)*(1.-xnuf) 151 swnet(i,l)=swdn(i,l)-swup(i,l) 145 152 enddo 146 153 enddo … … 157 164 IF (clouds.eq.1) THEN 158 165 ICLD = 1 159 CALL cooling(klon,klev+1,zp,zt,zz,zcoolc,zlw netc,zsollwdownc,160 & icld)166 CALL cooling(klon,klev+1,zp,zt,zz,zcoolc,zlwupc,zlwdnc, 167 & zsollwdownc,icld) 161 168 ELSE 162 169 zcoolc = 0. 163 zlwnetc = 0. 170 zlwupc = 0. 171 zlwdnc = 0. 164 172 zsollwdownc = 0. 165 173 ENDIF 166 174 ICLD = 0 167 CALL cooling(klon,klev+1,zp,zt,zz,zcoolp,zlw netp,zsollwdownp,168 & icld)175 CALL cooling(klon,klev+1,zp,zt,zz,zcoolp,zlwupp,zlwdnp, 176 & zsollwdownp,icld) 169 177 170 178 c inversion de l'axe vertical … … 177 185 do l=1,klev+1 178 186 do i=1,klon 179 lwnet(i,l)=zlwnetc(i,klev+2-l)*xnuf + 180 & zlwnetp(i,klev+2-l)*(1.-xnuf) 187 lwup(i,l) =zlwupc(i,klev+2-l)*xnuf + 188 & zlwupp(i,klev+2-l)*(1.-xnuf) 189 lwdn(i,l) =zlwdnc(i,klev+2-l)*xnuf + 190 & zlwdnp(i,klev+2-l)*(1.-xnuf) 191 lwnet(i,l)=lwup(i,l)-lwdn(i,l) 181 192 enddo 182 193 enddo -
trunk/LMDZ.TITAN/libf/phytitan/start2archive.F
r1056 r1356 18 18 USE infotrac 19 19 USE control_mod 20 use cpdet_mod, only: tpot2t 20 use cpdet_mod, only: tpot2t,ini_cpdet 21 use exner_hyb_m, only: exner_hyb 22 use exner_milieu_m, only: exner_milieu 21 23 22 24 implicit none … … 140 142 c----------------------------------------------------------------------- 141 143 144 CALL conf_gcm( 99, .TRUE. ) 142 145 call iniconst 143 146 call inigeom 144 147 call inifilr 148 call ini_cpdet 149 145 150 CALL pression(ip1jmp1, ap, bp, ps, p3d) 146 151 if (disvert_type==1) then 147 CALL exner_hyb( ip1jmp1, ps, p3d, alpha,beta,pks, pk, pkf )152 CALL exner_hyb( ip1jmp1, ps, p3d, pks, pk, pkf ) 148 153 else ! we assume that we are in the disvert_type==2 case 149 CALL exner_milieu( ip1jmp1, ps, p3d, beta,pks, pk, pkf )154 CALL exner_milieu( ip1jmp1, ps, p3d, pks, pk, pkf ) 150 155 endif 151 156 -
trunk/LMDZ.TITAN/libf/phytitan/write_histmth.h
r1056 r1356 188 188 call histwrite_phy(nid_mth,.false.,"SWnet", 189 189 . itau_w,swnet(1:klon,1:klev)) 190 c call histwrite_phy(nid_mth,.false.,"SWup", 191 c . itau_w,swup(1:klon,1:klev)) 192 c call histwrite_phy(nid_mth,.false.,"SWdn", 193 c . itau_w,swdn(1:klon,1:klev)) 190 194 call histwrite_phy(nid_mth,.false.,"LWnet", 191 195 . itau_w,lwnet(1:klon,1:klev)) 196 c call histwrite_phy(nid_mth,.false.,"LWup", 197 c . itau_w,lwup(1:klon,1:klev)) 198 c call histwrite_phy(nid_mth,.false.,"LWdn", 199 c . itau_w,lwdn(1:klon,1:klev)) 200 call histwrite_phy(nid_mth,.false.,"fluxvdf",itau_w,fluxt) 201 call histwrite_phy(nid_mth,.false.,"fluxdyn",itau_w,flux_dyn) 202 call histwrite_phy(nid_mth,.false.,"fluxajs",itau_w,flux_ajs) 203 c call histwrite_phy(nid_mth,.false.,"fluxec",itau_w,flux_ec) 192 204 193 205 c -------------- -
trunk/LMDZ.VENUS/Tools/angmom.F90
r842 r1356 242 242 call get_var3d(infid,lonlength,latlength,timelength,text,ps,ierr1,ierr2) 243 243 if (ierr1.ne.NF_NOERR) then 244 write(*,*) " looking for ps olinstead... "245 text="ps ol"244 write(*,*) " looking for ps instead... " 245 text="ps" 246 246 call get_var3d(infid,lonlength,latlength,timelength,text,ps,ierr1,ierr2) 247 if (ierr1.ne.NF_NOERR) stop "Error: Failed to get psol ID" 247 if (ierr1.ne.NF_NOERR) then 248 write(*,*) " looking for psol instead... " 249 text="psol" 250 call get_var3d(infid,lonlength,latlength,timelength,text,ps,ierr1,ierr2) 251 if (ierr1.ne.NF_NOERR) stop "Error: Failed to get psol ID" 252 endif 248 253 endif 249 254 if (ierr2.ne.NF_NOERR) stop "Error: Failed reading surface pressure" … … 467 472 do ilev=1,altlength 468 473 ! Need to be consistent with GCM computations 469 ! if (za(ilon,ilat,ilev,itim).ne.miss_val) then474 if (vitu(ilon,ilat,ilev,itim).ne.miss_val) then 470 475 rayon(ilon,ilat,ilev,itim) = a0 471 476 ! rayon(ilon,ilat,ilev,itim) = za(ilon,ilat,ilev,itim) + a0 472 477 grav(ilon,ilat,ilev,itim) = g0*a0*a0 & 473 478 /(rayon(ilon,ilat,ilev,itim)*rayon(ilon,ilat,ilev,itim)) 474 !else475 !rayon(ilon,ilat,ilev,itim) = miss_val476 !grav(ilon,ilat,ilev,itim) = miss_val477 !endif479 else 480 rayon(ilon,ilat,ilev,itim) = miss_val 481 grav(ilon,ilat,ilev,itim) = miss_val 482 endif 478 483 enddo 479 484 enddo … … 526 531 do ilat=1,latlength 527 532 do ilev=1,altlength 533 if (rayon(ilon,ilat,ilev,itim).ne.miss_val) then 528 534 oaam(itim) = oaam(itim) & 529 535 + osam(ilon,ilat,ilev,itim)/ hadday * dmass(ilon,ilat,ilev,itim) 530 536 raam(itim) = raam(itim) & 531 537 + rsam(ilon,ilat,ilev,itim)/ hadday * dmass(ilon,ilat,ilev,itim) 538 endif 532 539 enddo 533 540 enddo -
trunk/LMDZ.VENUS/Tools/compile_pgf
r816 r1356 1 1 # path for netcdf should be adapted to your configuration ! 2 2 3 \rm planet.h4 ln -s $2.h planet.h3 #\rm planet.h 4 #ln -s $2.h planet.h 5 5 pgf95 -Bstatic cpdet.F90 moyzon.F moyzon2.F moytim.F dx_dp.F epflux.F90 \ 6 6 io.F90 dmass.F90 reverse.F90 $1.F90 \ -
trunk/LMDZ.VENUS/libf/phyvenus/newstart.F
r1301 r1356 22 22 USE infotrac 23 23 use cpdet_mod, only: ini_cpdet,t2tpot 24 use exner_hyb_m, only: exner_hyb 25 use exner_milieu_m, only: exner_milieu 24 26 25 27 implicit none … … 1048 1050 CALL pression(ip1jmp1, ap, bp, ps, p3d) 1049 1051 if (disvert_type==1) then 1050 CALL exner_hyb( ip1jmp1, ps, p3d, alpha,beta,pks, pk, pkf )1052 CALL exner_hyb( ip1jmp1, ps, p3d, pks, pk, pkf ) 1051 1053 else ! we assume that we are in the disvert_type==2 case 1052 CALL exner_milieu( ip1jmp1, ps, p3d, beta,pks, pk, pkf )1054 CALL exner_milieu( ip1jmp1, ps, p3d, pks, pk, pkf ) 1053 1055 endif 1054 1056 -
trunk/LMDZ.VENUS/libf/phyvenus/start2archive.F
r1301 r1356 19 19 USE control_mod 20 20 use cpdet_mod, only: tpot2t,ini_cpdet 21 use exner_hyb_m, only: exner_hyb 22 use exner_milieu_m, only: exner_milieu 21 23 22 24 implicit none … … 150 152 CALL pression(ip1jmp1, ap, bp, ps, p3d) 151 153 if (disvert_type==1) then 152 CALL exner_hyb( ip1jmp1, ps, p3d, alpha,beta,pks, pk, pkf )154 CALL exner_hyb( ip1jmp1, ps, p3d, pks, pk, pkf ) 153 155 else ! we assume that we are in the disvert_type==2 case 154 CALL exner_milieu( ip1jmp1, ps, p3d, beta,pks, pk, pkf )156 CALL exner_milieu( ip1jmp1, ps, p3d, pks, pk, pkf ) 155 157 endif 156 158
Note: See TracChangeset
for help on using the changeset viewer.