Changeset 1526 for LMDZ5/trunk/libf
- Timestamp:
- May 26, 2011, 1:41:28 PM (13 years ago)
- Location:
- LMDZ5/trunk/libf
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/cosp/cosp_lidar.F90
r1279 r1526 69 69 mr_cl(:,:) = sghydro%mr_hydro(:,i,:,I_CVCLIQ) 70 70 mr_ci(:,:) = sghydro%mr_hydro(:,i,:,I_CVCICE) 71 frac_out(:,:) = sgx%frac_out(:,i,:) 71 72 call lidar_simulator(sgx%Npoints, sgx%Nlevels, 4 & 72 73 , PARASOL_NREFL, LIDAR_UNDEF & … … 74 75 , mr_ll, mr_li, mr_cl, mr_ci & 75 76 , gbx%Reff(:,:,I_LSCLIQ), gbx%Reff(:,:,I_LSCICE), gbx%Reff(:,:,I_CVCLIQ), gbx%Reff(:,:,I_CVCICE) & 76 , sgx%frac_out, gbx%lidar_ice_type, y%beta_mol, beta_tot, tau_tot &77 , frac_out, gbx%lidar_ice_type, y%beta_mol, beta_tot, tau_tot & 77 78 , refle ) ! reflectance 78 79 -
LMDZ5/trunk/libf/cosp/ini_histdayCOSP.h
r1327 r1526 18 18 19 19 ! Definition de l'axe vertical 20 if (use_vgrid) then 20 21 CALL histvert(nid_day_cosp,"height","height","m",Nlevout,vgrid%z,nvert) 21 print*,'Ok height Nlevout, height =',Nlevout,vgrid%z 22 else 23 CALL histvert(nid_day_cosp,"presnivs","Vertical levels","mb",Nlevout,presnivs,nvert) 24 endif 25 22 26 CALL histvert(nid_day_cosp,"height_mlev","height_mlev","m",Nlevlmdz,vgrid%mz,nvertm) 23 print*,'Ok height_mlev Nlevout, height_mlev =',Nlevout,vgrid%mz24 ! CALL histvert(nid_day_cosp,"presnivs","Vertical levels","mb",Nlevout,presnivs,nvert)25 27 26 28 CALL histvert(nid_day_cosp,"sza","solar_zenith_angle","degrees",PARASOL_NREFL,PARASOL_SZA,nvertp) … … 28 30 CALL histvert(nid_day_cosp,"pressure2","pressure","mb",7,ISCCP_PC,nvertisccp) 29 31 30 CALL histvert(nid_day_cosp,"column","column","count",Ncolumns,column_ax ,nvertcol)32 CALL histvert(nid_day_cosp,"column","column","count",Ncolumns,column_ax(1:Ncolumns),nvertcol) 31 33 32 34 ! Sorties LIDAR -
LMDZ5/trunk/libf/cosp/ini_histhfCOSP.h
r1327 r1526 18 18 19 19 ! Definition de l'axe vertical 20 if (use_vgrid) then 20 21 CALL histvert(nid_hf_cosp,"height","height","m",Nlevout,vgrid%z,nvert) 21 print*,'Ok height Nlevout, height =',Nlevout,vgrid%z 22 else 23 CALL histvert(nid_hf_cosp,"presnivs","Vertical levels","mb",Nlevout,presnivs,nvert) 24 endif 25 22 26 CALL histvert(nid_hf_cosp,"height_mlev","height_mlev","m",Nlevlmdz,vgrid%mz,nvertm) 23 print*,'Ok height_mlev Nlevout height_mlev =',Nlevout,vgrid%mz24 ! CALL histvert(nid_hf_cosp,"presnivs","Vertical levels","mb",Nlevout,presnivs,nvert)25 27 26 28 CALL histvert(nid_hf_cosp,"sza","solar_zenith_angle","degrees",PARASOL_NREFL,PARASOL_SZA,nvertp) … … 28 30 CALL histvert(nid_hf_cosp,"pressure2","pressure","mb",7,ISCCP_PC,nvertisccp) 29 31 30 CALL histvert(nid_hf_cosp,"column","column","count",Ncolumns,column_ax ,nvertcol)32 CALL histvert(nid_hf_cosp,"column","column","count",Ncolumns,column_ax(1:Ncolumns),nvertcol) 31 33 32 34 ! Sorties LIDAR -
LMDZ5/trunk/libf/cosp/ini_histmthCOSP.h
r1327 r1526 14 14 idayref = day_ref 15 15 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 16 17 16 CALL histbeg_phy("histmthCOSP",itau_phy,zjulian,dtime,nhori,nid_mth_cosp) 18 17 19 18 ! Definition de l'axe vertical 19 print*,'height_mlev=',vgrid%mz 20 if (use_vgrid) then 20 21 CALL histvert(nid_mth_cosp,"height","height","m",Nlevout,vgrid%z,nvert) 22 else 23 CALL histvert(nid_mth_cosp,"presnivs","Vertical levels","Pa",Nlevout,presnivs,nvert,"down") 24 endif 21 25 CALL histvert(nid_mth_cosp,"height_mlev","height_mlev","m",Nlevlmdz,vgrid%mz,nvertm) 22 ! CALL histvert(nid_mth_cosp,"presnivs","Vertical levels","mb",Nlevout,presnivs,nvert)23 26 24 27 CALL histvert(nid_mth_cosp,"sza","solar_zenith_angle","degrees",PARASOL_NREFL,PARASOL_SZA,nvertp) … … 26 29 CALL histvert(nid_mth_cosp,"pressure2","pressure","mb",7,ISCCP_PC,nvertisccp) 27 30 28 CALL histvert(nid_mth_cosp,"column","column","count",Ncolumns,column_ax ,nvertcol)31 CALL histvert(nid_mth_cosp,"column","column","count",Ncolumns,column_ax(1:Ncolumns),nvertcol) 29 32 30 33 ! Sorties LIDAR … … 59 62 iim,jj_nb,nhori, Nlevout,1,Nlevout,nvert, 32, & 60 63 "ave(X)", zout,zstomth) 64 ! CALL histdef(nid_mth_cosp, "zlev_m", & 65 ! "Height at Midel model levels", "m", & 66 ! iim,jj_nb,nhori, Nlevlmdz,1,Nlevlmdz,nvertm, 32, & 67 ! "ave(X)", zout,zstomth) 68 ! CALL histdef(nid_mth_cosp, "zlev_b", & 69 ! "Height at bottom model levels", "m", & 70 ! iim,jj_nb,nhori, Nlevlmdz,1,Nlevlmdz,nvertm, 32, & 71 ! "ave(X)", zout,zstomth) 61 72 endif 62 73 if (cfg%Lcfad_lidarsr532) then -
LMDZ5/trunk/libf/cosp/lidar_simulator.F90
r1279 r1526 179 179 REAL tautot_S_liq(npoints),tautot_S_ice(npoints) ! for liq and ice clouds 180 180 181 ! Abderrahmane 8-2-2011 182 Logical iflag_testlidar 183 PARAMETER (iflag_testlidar=.false.) 181 184 182 185 !------------------------------------------------------------ … … 384 387 END DO 385 388 389 if (iflag_testlidar) then 390 !+JLD test 391 ! do k=1,nlev 392 ! print*,'Min val de frac_out=',k,minval(frac_out(:,k)) 393 ! print*,'Max val de frac_out=',k,maxval(frac_out(:,k)) 394 ! enddo 395 where ( frac_out(:,:).ge.0.5) 396 ! Correction AI 9 5 11 pnorm(:,:) = pmol(:,:)*10. 397 pnorm(:,:) = pmol(:,:)*50. 398 elsewhere 399 pnorm(:,:) = pmol(:,:) 400 endwhere 401 !-JLD test 402 endif 403 386 404 !-------- End computation Lidar -------------------------- 387 405 -
LMDZ5/trunk/libf/cosp/phys_cosp.F90
r1368 r1526 1 1 ! Simulateur COSP : Cfmip Observation Simulator Package 2 2 3 ! ISCCP, Radar (QuickBeam), Lidar et Parasol (ACTSIM), MISR, RTTOVS 3 4 !Idelkadi Abderrahmane Aout-Septembre 2009 4 5 5 6 6 subroutine phys_cosp( itap,dtime,freq_cosp, & … … 8 8 ecrit_mth,ecrit_day,ecrit_hf, & 9 9 Nptslmdz,Nlevlmdz,lon,lat, presnivs,overlaplmdz, & 10 ref_liq,ref_ice,fracTerLic,u_wind,v_wind,phi ,ph,p,skt,t, &10 ref_liq,ref_ice,fracTerLic,u_wind,v_wind,phis,phi,ph,p,skt,t, & 11 11 sh,rh,tca,cca,mr_lsliq,mr_lsice,fl_lsrainI,fl_lssnowI, & 12 12 fl_ccrainI,fl_ccsnowI,mr_ozone,dtau_s,dem_s) … … 25 25 ! u_wind,v_wind, !Vents a 10m ??? 26 26 ! phi, !Geopotentiel 27 ! phis, !Geopotentiel sol 27 28 ! ph, !pression pour chaque inter-couche 28 29 ! p, !Pression aux milieux des couches … … 85 86 integer, save :: isccp_topheight,isccp_topheight_direction,overlap 86 87 integer,save :: Ncolumns ! Number of subcolumns in SCOPS 87 integer,parameter :: Ncollmdz=20 88 ! integer,parameter :: Ncollmdz=20 89 integer,parameter :: Ncolmax=100 88 90 integer, save :: Npoints ! Number of gridpoints 89 91 !$OMP THREADPRIVATE(Npoints) … … 126 128 !$OMP THREADPRIVATE(debut_cosp) 127 129 integer :: itau_wcosp 128 character(len=10),dimension(Ncollmdz),parameter :: chcol=(/'c01','c02','c03','c04','c05','c06','c07','c08','c09','c10', & 129 'c11','c12','c13','c14','c15','c16','c17','c18','c19','c20'/) 130 real,dimension(Ncollmdz) :: column_ax 130 character(len=2) :: str2 131 real,dimension(Ncolmax) :: column_ax 132 character(len=10),save,dimension(Ncolmax) :: chcol 133 131 134 integer, save :: Nlevout 132 135 !$OMP THREADPRIVATE(Nlevout) … … 137 140 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Input variables from LMDZ-GCM 138 141 integer :: overlaplmdz ! overlap type: 1=max, 2=rand, 3=max/rand ! cosp input (output lmdz) 139 ! real,dimension(Npoints,Nlevels) :: height,phi,p,ph,T,sh,rh,tca,cca,mr_lsliq,mr_lsice,mr_ccliq,mr_ccice, &140 142 real,dimension(Nptslmdz,Nlevlmdz) :: height,phi,p,ph,T,sh,rh,tca,cca,mr_lsliq,mr_lsice,mr_ccliq,mr_ccice, & 141 143 fl_lsrain,fl_lssnow,fl_ccrain,fl_ccsnow,fl_lsgrpl, & 142 zlev, mr_ozone,radliq,radice,dtau_s,dem_s,ref_liq,ref_ice144 zlev,zlev_half,mr_ozone,radliq,radice,dtau_s,dem_s,ref_liq,ref_ice 143 145 real,dimension(Nptslmdz,Nlevlmdz) :: fl_lsrainI,fl_lssnowI,fl_ccrainI,fl_ccsnowI 144 real,dimension(Nptslmdz) :: lon,lat,skt,fracTerLic,u_wind,v_wind 146 real,dimension(Nptslmdz) :: lon,lat,skt,fracTerLic,u_wind,v_wind,phis 145 147 real,dimension(Nlevlmdz) :: presnivs 146 148 integer :: itap,k,ip … … 165 167 if (debut_cosp) then 166 168 NPoints=Nptslmdz 169 Nlevels=Nlevlmdz 170 167 171 ! Lecture du namelist input 168 172 CALL read_cosp_input 169 173 174 do ii=1,Ncolumns 175 write(str2,'(i2.2)')ii 176 chcol(ii)="c"//str2 177 column_ax(ii) = real(ii) 178 enddo 179 170 180 ! Clefs Outputs 171 181 call read_cosp_output_nl(cosp_output_nl,cfg) 172 182 173 if ( (Ncollmdz.ne.Ncolumns).or. (Nlevlmdz.ne.Nlevels) ) then174 print*,'Nb points Horiz, Vert, Sub-col passes par physiq.F = ', &175 Nptslmdz, Nlevlmdz, Ncollmdz176 print*,'Nb points Horiz, Vert, Sub-col lus dans namelist = ', &177 Npoints, Nlevels, Ncolumns178 print*,'Nb points Horiz, Vert, Sub-col passes par physiq.F est different de celui lu par namelist '179 call abort180 endif181 182 183 if (overlaplmdz.ne.overlap) then 183 184 print*,'Attention overlaplmdz different de overlap lu dans namelist ' … … 221 222 gbx%p = p ! 222 223 gbx%ph = ph 223 gbx%zlev_half = phi/9.81 224 225 do k = 1, Nlevels-1 226 do ip = 1, Npoints 227 zlev(ip,k) = phi(ip,k)/9.81 + (phi(ip,k+1)-phi(ip,k))/9.81 * (ph(ip,k)-ph(ip,k+1))/p(ip,k) 228 enddo 229 enddo 230 do ip = 1, Npoints 231 zlev(ip,Nlevels) = zlev(ip,Nlevels-1)+ 2.*(phi(ip,Nlevels)/9.81-zlev(ip,Nlevels-1)) 232 END DO 233 gbx%zlev = zlev 224 gbx%zlev = phi/9.81 225 226 zlev_half(:,1) = phis(:)/9.81 227 do k = 2, Nlevels 228 do ip = 1, Npoints 229 zlev_half(ip,k) = phi(ip,k)/9.81 + & 230 (phi(ip,k)-phi(ip,k-1))/9.81 * (ph(ip,k)-p(ip,k)) / (p(ip,k)-p(ip,k-1)) 231 enddo 232 enddo 233 gbx%zlev_half = zlev_half 234 234 235 235 gbx%T = T … … 275 275 gbx%snow_cv = fl_ccsnow !flux_convective_cloud_snow 276 276 277 !Attention Teste278 ! do k = 1, Nlevels279 ! do ip = 1, Npoints280 !! liquid particles :281 ! radliq(ip,k) = 12.0e-06282 ! if (k.le.3) radliq(ip,k) = 11.0e-06283 284 ! ice particles :285 ! if ( (t(ip,k)-273.15).gt.-81.4 ) then286 ! radice(ip,k) = (0.71*(t(ip,k)-273.15)+61.29)*1e-6287 ! else288 ! radice(ip,k) = 3.5*1e-6289 ! endif290 ! END DO291 ! END DO292 293 ! gbx%Reff(:,:,I_LSCLIQ) = radliq294 ! gbx%Reff(:,:,I_LSCICE) = radice295 ! gbx%Reff(:,:,I_CVCLIQ) = radliq296 ! gbx%Reff(:,:,I_CVCICE) = radice297 ! print*,'radliq(1,:)=',radliq(1,:)298 ! print*,'radice(1,:)=',radice(1,:)299 300 277 gbx%Reff(:,:,I_LSCLIQ) = ref_liq*1e-6 301 278 gbx%Reff(:,:,I_LSCICE) = ref_ice*1e-6 302 279 gbx%Reff(:,:,I_CVCLIQ) = ref_liq*1e-6 303 280 gbx%Reff(:,:,I_CVCICE) = ref_ice*1e-6 304 ! print*,'ref_liq(1,:)=',ref_liq(1,:)*1e-6305 ! print*,'ref_liq(1,:)=',ref_ice(1,:)*1e-6306 281 307 282 ! ISCCP simulator … … 338 313 include "ini_histhfCOSP.h" 339 314 endif 340 341 ! print*,'Fin Initialisation des sorties COSP, debut_cosp =',debut_cosp342 ! print*,'R_UNDEF=',R_UNDEF343 315 344 316 debut_cosp=.false. -
LMDZ5/trunk/libf/phylmd/physiq.F
r1525 r1526 3398 3398 CALL aaam_bud (27,klon,klev,jD_cur-jD_ref,jH_cur, 3399 3399 C ra,rg,romega, 3400 C rlat,rlon,pp his,3400 C rlat,rlon,ppphis,phis, 3401 3401 C zustrdr,zustrli,zustrph, 3402 3402 C zvstrdr,zvstrli,zvstrph, … … 3439 3439 $ ref_liq,ref_ice, 3440 3440 $ pctsrf(:,is_ter)+pctsrf(:,is_lic), 3441 $ zu10m,zv10m, 3441 $ zu10m,zv10m,pphis, 3442 3442 $ zphi,paprs(:,1:klev),pplay,zxtsol,t_seri, 3443 3443 $ qx(:,:,ivap),zx_rh,cldfra,rnebcon,flwc,fiwc,
Note: See TracChangeset
for help on using the changeset viewer.