通过fortran 源码查找
- 定位 b2plot.F
case('erosion')
description='Gross erosion'
nz=ntargsp
call wall_copy(erosion,1.0_R8,nz,texttargsp)
- ntargsp:
- 定位 wall_copy
subroutine wall_copy(src,scale,nz,texttmp)
use b2mod_types
use b2mod_wall
use b2mod_b2plot
use b2mod_b2plot_values
implicit none
integer nz
real (kind=R8) ::
* src(1:nwall,0:nz-1),scale
character*(*) texttmp(0:nz-1)
c write(*,*) 'Copying wall array: nwall, nz = ',nwall,nz
if(iwwrk .eq. wklng) call dropwallstackbottom()
iwwrk=iwwrk+1
wall_stack(1:nbnd,0:nz-1,iwwrk)=src(1:nbnd,0:nz-1)*scale
values(14)=minval(wall_stack(1:nbnd,0:nz-1,iwwrk))
values(15)=maxval(wall_stack(1:nbnd,0:nz-1,iwwrk))
textwwk(0:nz-1,iwwrk)=texttmp(0:nz-1)
nwdim(1,iwwrk)=nbnd
nwdim(2,iwwrk)=nz
c write(*,*) src(1,0)*scale,wall_stack(1,0,iwwrk)
return
end subroutine wall_copy
- 定位 dropwallstackbottom
subroutine dropwallstackbottom()
use b2mod_types
use b2mod_b2plot
implicit none
cxpb
integer i, iw, is
write(*,*) 'Too many data values on wall stack'
cxpb
write(*,*) 'Dropping the bottom element!'
do i = 2,iwwrk
nwdim(1,i-1) = nwdim(1,i)
nwdim(2,i-1) = nwdim(2,i)
do is = 0,nwdim(2,i)-1
do iw = 1,nwdim(1,i)
wall_stack(iw,is,i-1) = wall_stack(iw,is,i)
end do
textwwk(is,i-1) = textwwk(is,i)
end do
wall_label(i-1) = wall_label(i)
end do
iwwrk = iwwrk-1
cxpb
return
end
从源码寻找行不通
fort.44可能的数据
image.pngimage.png
image.png
%% initial the data dimension - 1
% wld.wldnek = zeros(nlim+nsts-1,nstra+1);
% wld.wldnep = zeros(nlim+nsts-1,nstra+1);
% wld.wldna = zeros(nlim+nsts,natm,nstra+1);
% wld.ewlda = zeros(nlim+nsts-1,natm,nstra+1);
% wld.wldnm = zeros(nlim+nsts-1,nmol,nstra+1);
% wld.ewldm = zeros(nlim+nsts-1,nmol,nstra+1);
% read_ft44_rfield(fid,ver,'ewlda',nlim+nsts);
% wld.wldnek(:,1) = read_ft44_rfield_m(fid,ver,'wldnek',nlim+nsts-1);
% wld.wldnep(:,1) = read_ft44_rfield_m(fid,ver,'wldnep',nlim+nsts-1);
% wld.wldna(:,:,1) = read_ft44_rfield_m(fid,ver,'wldna',[nlim+nsts-1,natm]);
% wld.ewlda(:,:,1) = read_ft44_rfield_m(fid,ver,'ewlda',[nlim+nsts-1,natm]);
% wld.wldnm(:,:,1) = read_ft44_rfield_m(fid,ver,'wldnm',[nlim+nsts-1,nmol]);
% wld.ewldm(:,:,1) = read_ft44_rfield_m(fid,ver,'ewldm',[nlim+nsts-1,nmol]);
%% 4*188=752 every element two point *2 ,and occur 2 times
% wld.poly = read_ft44_rfield(fid,ver,'wall_geometry',[4,nlim]);
%
% wld.wldra = read_ft44_rfield_m(fid,ver,'wldra',[nlim+nsts-1,natm]);
% wld.wldrm = read_ft44_rfield_m(fid,ver,'wldrm',[nlim+nsts-1,nmol]);
if (nstra > 1)
for i = 2:nstra+1
% wld.wldnek(:,i) = read_ft44_rfield_mn(fid,ver,'wldnek',nlim+nsts-1);
% wld.wldnep(:,i) = read_ft44_rfield_mn(fid,ver,'wldnep',nlim+nsts-1);
% wld.wldna(:,:,i) = read_ft44_rfield_mn(fid,ver,'wldna',[nlim+nsts-1,natm]);
% wld.ewlda(:,:,i) = read_ft44_rfield_mn(fid,ver,'ewlda',[nlim+nsts-1,natm]);
% wld.wldnm(:,:,i) = read_ft44_rfield_mn(fid,ver,'wldnm',[nlim+nsts-1,nmol]);
% wld.ewldm(:,:,i) = read_ft44_rfield_mn(fid,ver,'ewldm',[nlim+nsts-1,nmol]);
end
end
%% (NLIM+NSTS)*SPEISE
% wld.wldpp = zeros(nlim+nsts,nfla,nstra+1);
% wld.wldpa = zeros(nlim+nsts,natm,nstra+1);
% wld.wldpm = zeros(nlim+nsts,nmol,nstra+1);
% wld.wldpeb = zeros(nlim+nsts,nstra+1);
% wld.wldspt = zeros(nlim+nsts,nstra+1);
% wld.wldpp(:,:,1) = read_ft44_rfield_m(fid,ver,'wldpp',[nlim+nsts-1,nfla]);
% wld.wldpa(:,:,1) = read_ft44_rfield_m(fid,ver,'wldpa',[nlim+nsts-1,natm]);
% wld.wldpm(:,:,1) = read_ft44_rfield_m(fid,ver,'wldpm',[nlim+nsts-1,nmol]);
% wld.wldpeb(:,1) = read_ft44_rfield_m(fid,ver,'wldpeb',nlim+nsts-1);
% wld.wldspt(:,1) = read_ft44_rfield_m(fid,ver,'wldspt',nlim+nsts-1);
if (nstra > 1)
for i = 2:nstra+1
% wld.wldpp(:,:,i) = read_ft44_rfield_mn(fid,ver,'wldpp',[nlim+nsts-1,nfla]);
% wld.wldpa(:,:,i) = read_ft44_rfield_mn(fid,ver,'wldpa',[nlim+nsts-1,natm]);
% wld.wldpm(:,:,i) = read_ft44_rfield_mn(fid,ver,'wldpm',[nlim+nsts-1,nmol]);
% wld.wldpeb(:,i) = read_ft44_rfield_mn(fid,ver,'wldpeb',nlim+nsts-1);
% wld.wldspt(:,i) = read_ft44_rfield_mn(fid,ver,'wldspt',nlim+nsts-1);
end
end
wld.isrftype = read_ft44_ifield_m(fid,ver,'isrftype',nlim+nsts);
if nlwrmsh
wld.wlarea = read_ft44_rfield(fid,ver,'wlarea',nlim+nsts);
% %% find the pump location index
% wld.wlabsrp = zeros(natm+nmol+nion+nfla,nlim+nsts);
% % read_ft44_rfield_t(fid,ver,'wlabsrp',[natm,nlim+nsts]);
% wld.wlabsrp(1:natm,:) = read_ft44_rfield_t(fid,ver,'wlabsrp',[natm,nlim+nsts]);
% % line = fgetl(fid)
% ns = natm;
% wld.wlabsrp(ns+1:ns+nmol,:) = read_ft44_rfield_t(fid,ver,'wlabsrp',[nmol,nlim+nsts]);
% % line = fgetl(fid)
% ns = natm+nmol;
% wld.wlabsrp(ns+1:ns+nion,:) = read_ft44_rfield_t(fid,ver,'wlabsrp',[nion,nlim+nsts]);
% % line = fgetl(fid)
% ns = natm+nmol+nion;
% wld.wlabsrp(ns+1:ns+nfla,:) = read_ft44_rfield_t(fid,ver,'wlabsrp',[nfla,nlim+nsts]);
%%
%% find the pump location index
wld.wlpump = zeros(natm+nmol+nion+nfla,nlim+nsts);
% read_ft44_rfield_t(fid,ver,'wlabsrp',[natm,nlim+nsts]);
wld.wlpump(1:natm,:) = read_ft44_rfield_t(fid,ver,'wlpump(A)',[natm,nlim+nsts]);
% line = fgetl(fid)
ns = natm;
wld.wlpump(ns+1:ns+nmol,:) = read_ft44_rfield_t(fid,ver,'wlpump(M)',[nmol,nlim+nsts]);
% line = fgetl(fid)
ns = natm+nmol;
wld.wlpump(ns+1:ns+nion,:) = read_ft44_rfield_t(fid,ver,'wlpump(I)',[nion,nlim+nsts]);
% line = fgetl(fid)
% ns = natm+nmol+nion;
% wld.wlpump(ns+1:ns+nfla,:) = read_ft44_rfield_t(fid,ver,'wlpump(P)',[nfla,nlim+nsts]);
%% radiation rate
neut.eneutrad = read_ft44_rfield(fid,ver,'eneutrad',[nx,ny,natm]);
% field = read_rfield_m(fid,'wlpump_res(A)',[natm,ncl]);
% ftell(fid)
% tt=fgetl(fid);
% tt= read_ft44_ifield(fid,nsts+1);
% tt=fgetl(fid);
% [ind,typ,srf,start,end] = read_ft44_ifield_mn(fid,ver,'eirdiag')
% [ind,typ,srf,instart,inend]= read_ft44_ifield_mn(fid,ver,'eirdiag',nsts);
% wld.eirdiag_nds_ind = ind;
% wld.eirdiag_nds_typ = typ;
% wld.eirdiag_nds_srf = srf;
% wld.eirdiag_nds_start = instart;
% wld.eirdiag_nds_end = inend;
% ncl = wld.eirdiag_nds_ind(nsts+1);
% wld.sarea_res = read_ft44_rfield(fid,ver,'sarea_res',ncl);
% wld.wldna_res = read_ft44_rfield(fid,ver,'wldna_res',[natm,ncl]);
% wld.wldnm_res = read_ft44_rfield(fid,ver,'wldnm_res',[nmol,ncl]);
% wld.ewlda_res = read_ft44_rfield(fid,ver,'ewlda_res',[natm,ncl]);
% wld.ewldm_res = read_ft44_rfield(fid,ver,'ewldm_res',[nmol,ncl]);
% wld.ewldea_res = read_ft44_rfield(fid,ver,'ewldea_res',[natm,ncl]);
% wld.ewldem_res = read_ft44_rfield(fid,ver,'ewldem_res',[nmol,ncl]);
% wld.ewldrp_res = read_ft44_rfield(fid,ver,'ewldrp_res',ncl);
% wld.wldspt_res = read_ft44_rfield(fid,ver,'wldspt_res',ncl);
% wld.wldspta_res = read_ft44_rfield(fid,ver,'wldspta_res',[natm,ncl]);
% wld.wldsptm_res = read_ft44_rfield(fid,ver,'wldsptm_res',[nmol,ncl]);
%% PUMP
% wld.wlpump_resa = read_ft44_rfield_t(fid,ver,'wlpump_res(A)',[natm,ncl]);
% wld.wlpump_resm = read_ft44_rfield_t(fid,ver,'wlpump_res(M)',[natm,ncl]);
% wld.wlpump_resi = read_ft44_rfield_t(fid,ver,'wlpump_res(I)',[natm,ncl]);
% wld.wlpump_resp = read_ft44_rfield_t(fid,ver,'wlpump_res(P)',[natm,ncl]);
通过定位靶板所在的下标,就可找到对应的溅射信息
获得 b2wall.nc
- 根据manual 添加开关(这个开关是3.0.7版本有的,2019.3月份版本没有这个开关)
可能这个功能还没有完全放开
'b2stbr_wall_netcdf '1'
未出现 ‘b2time.nc’
- 添加搭配使用的开关
'b2mndr_stim' '0.0'
依然没有b2wall.nc
image.pngimage.png
b2plot 导出
-1. eprt (可行)
echo "phy pdena 'pdena_eir.last10' eprt" | b2plot
- wprt (可行)
echo "phy ei 'ei_wall.last10' wprt" | b2plot
- deposit, depo_ml 为空
- erel 化学溅射因子,有值全为空
- sput/2 无值
- sputchem 多个值,为零
- qrad 零
- vap pressure nan
网友评论