fortran转换 matlab代码,大家帮帮忙!fortran转换成matlab
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Fc
c****************************************************************
c OUTPUT POWER SIMULATION FOR A STRAIGHT STRIPE SLED
c****************************************************************
DOUBLE PRECISION Nto,Ao,c,h,Nold,delta,qel,PI,n2,n1
&,v,Ncar,df,dr,gain,Psp,LHS,Qsp,Po,Qo,PN,QN,RHS
&,Pow,Imax,ISTEP,Iinj,Br,Conf,Clad,Scat,Jinj,lambda
&,Ro,RL,Pin,W,L,d,PL,QZ(500,500),PZ(500,500),z,DZ
&,gmth,gth,Nth,Ith
INTEGER itest,count,Icount,Insteps,IZ,countz
c---------INPUT DATA ----------------------------------------------
OPEN(51,FILE='in4.idat')
read(51,*) W
read(51,*) L
read(51,*) d
read(51,*) Ro
read(51,*) RL
read(51,*) Pin
read(51,*) Imax
read(51,*) Insteps
read(51,*) lambda
read(51,*) Conf
read(51,*) Br
read(51,*) Clad
read(51,*) Scat
read(51,*) Nto
read(51,*) delta
read(51,*) IZ
close(51)
c------------------------------------------------------------------
c... All lengths in um and current in A:
Ao=1.5d-08
c=3.0d+14
n2=3.38d0
n1=3.55d0
h=6.626d-34
qel=1.602d-19
PI=4.0d0*datan(1.0d0)
df=dacos(n2/n1)*(W/L)/(2.0d0*PI)
dr=df
v=c/n1
ISTEP=Imax/dble(Insteps)
DZ=L/dble(IZ)
c------------------------------------------------------------------
c...Threshold modal gain (um-1):
gmth=-dlog(Ro*RL)/(2.0d0*L)
c...Material gain at threshold (um-1):
gth=(gmth-(1.0d0-Conf)*Clad-Scat)/Conf
c...Carrier denisty at threshold (um-3):
Nth=Nto+gth/Ao
c...Threshold current(printed in mA):
Ith=W*L*qel*d*Br*Nth*Nth
print*,Ith*1.0d+03
c------------------------------------------------------------------
OPEN(30,FILE='licurve.dat')
OPEN(32,FILE='pz.dat')
c------------------------------------------------------------------
Nold=1.0d04
DO 100 Icount=1,Insteps
Iinj=dble(Icount)*ISTEP
Jinj=Iinj/(W*L)
LHS=Jinj/(qel*d*v)
call stripe(Conf,Ao,Nto,Br,Pin,Clad,Scat
&,df,dr,Ro,RL,v,L,LHS,delta,Ncar,Psp,Qsp,gain,count
&,Po,Qo)
PL=dexp(gain*L)*Pin/(1.0d0-Ro*RL*dexp(2.0d0*gain*L))
&+(dexp(gain*L)-1.0d0)*(Psp+Ro*dexp(gain*L)*Qsp)
&/(1.0d0-Ro*RL*dexp(2.0d0*gain*L))
Pow=(1.0d0-RL)*PL*v*W*d*h*c*1.0d+03/lambda
c..note Power Output in mW
WRITE(30,9991) Iinj,Pow,count
print *,Iinj,count,Ncar,dsqrt(Jinj/(qel*d*Br))
c &(1.0d0-Ro
c &*RL*dexp(2.0d0*gain*L)),gain
do 50 countz=1,IZ
z=dble(countz)*DZ
PZ(Icount,countz)=Po*dexp(gain*z)+Psp*(dexp(gain*z)-1.0d0)
QZ(Icount,countz)=Qo*dexp(-gain*z)+Qsp*(dexp(-gain*z)-1.0d0)
write(32,9992) z,PZ(Icount,countz),QZ(Icount,countz)
50 continue
write(32,*)
100 CONTINUE
9991 FORMAT(E16.5,4x,E16.5,4x,I8)
9992 FORMAT(E16.5,4x,E16.5,4x,E16.5)
CLOSE(30)
CLOSE(32)
END
c------------------------------------------------------------------------------c
SUBROUTINE stripe(Conf,Ao,Nto,Br,Pin,Clad,Scat
&,df,dr,Ro,RL,v,L,LHS,delta,Ncar,Psp,Qsp,gain,count
&,Po,Qo)
DOUBLE PRECISION Nto,Ao,Nold,delta,v,Ncar,df,dr,gain,LHS
&,Qsp,Po,Qo,PN,QN,RHS,Br,Conf,Clad,Scat,Ro,RL,Pin,L,Psp
INTEGER itest,count
itest=0
count=0
Nold=1.0d+05
do 50 while(itest.eq.0)
Ncar=Nold
gain=Conf*Ao*(Ncar-Nto)+(1.0d0-Conf)*Clad+Scat
Psp=df*Ncar*Ncar*Br/(gain*v)
Qsp=dr*Ncar*Ncar*Br/(gain*v)
Po=(Pin+Ro*(dexp(gain*L)-1.0d0)*(RL*dexp(gain*L)*Psp+Qsp))
&/(1.0d0-Ro*RL*dexp(2.0d0*gain*L))
Qo=RL*dexp(2.0d0*gain*L)*Po
&+RL*dexp(gain*L)*(dexp(gain*L)-1.0d0)*Psp
&+(dexp(gain*L)-1.0d0)*Qsp
PN=(dexp(gain*L)-1.0d0)*(Po+Psp)/(gain*L)-Psp
QN=(1.0d0-dexp(-gain*L))*(Qo+Qsp)/(gain*L)-Qsp
RHS=gain*(PN+QN)+Br*Ncar*Ncar/v
if(dabs(LHS-RHS).lt.delta)then
itest=1
Nold=Ncar
else
itest=0
if(LHS.lt.RHS)then
Nold=Ncar-Ncar*0.001d0
elseif(LHS.gt.RHS)then
Nold=Ncar+Ncar*0.001d0
endif
endif
count=count+1
50 continue
RETURN
END
c------------------------------------------------------------------------------c
fortran转换 matlab代码,大家帮帮忙!fortran转换成matlab相关推荐
- 让书写的Matlab代码运行更快 Recipes for Faster Matlab Code
Matlab 在 Research 中用得非常多,确实也是非常方便实用,只是有一个问题就是写 Matlab 代码的时候经常需要用一些比较奇怪独特的方式来思考和处理问题,否则写出来的代码虽然同样能工作, ...
- 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码
粒子群(pso)算法详解matlab代码 (1)---- 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,C ...
- 多径传输系统MATLAB代码,求助大佬帮忙写毕设代码啊。。用matlab做MIMO-FrFT-OFDM系统...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 或者有没朋友可以帮我看看这个bug怎么改呀?matlab里的错误提示是无法执行赋值,因为左侧的索引与右侧的大小不兼容.代码在下面,错误是在下面一段代码的第 ...
- 关联矩阵古林法的matlab代码,[转载][原创]灰色关联分析及Matlab程序实现
灰色系统理论由我国著名学者邓聚龙教授于1982提出.灰色关联分析是灰色系统理论的一个分支,应用灰色关联分析方法对受多种因素影响的事物和现象从整体观念出发进行综合评价是一个被广为接受的方法. 一.灰色关 ...
- hill图matlab代码,Hill密码的加密论文(内含matlab程序代码).doc
Hill密码的加密论文(内含matlab程序代码) Hill密码的加密,解密与破译 摘要 对于问题1.1:本文采用密码通信,对明文进行加密.利用已知的密钥矩阵,首先,将密文转化为对应表值数字.其次,对 ...
- burg算法的matlab代码实现_导向滤波算法及其matlab代码实现
导向滤波同样是一种平滑滤波算法,其与最小二乘滤波和双边滤波相比,同样是一种具有边缘保持的功能的图形滤波算法,可以用于处理图形噪点较多的图像,而且此种滤波算法与最小二乘滤波和双边滤波相比,有其独特的特点 ...
- bp 预测 matlab代码,bp神经网络进行交通预测的Matlab源代码.docx
%bp神经网络进行交通预测的Matlab源代码% BP 神经网络用于预测% 使用平台 - Matlab7.0% 数据为1986年到2000年的交通量 ,网络为3输入,1输出% 15组数据,其中9组为正 ...
- a*算法matlab代码_蚁群算法(含MATLAB代码)
CSDN-专业IT技术社区-登录blog.csdn.net
- 【数字信号处理】卷积编程实现 ( Matlab 卷积和多项式乘法 conv 函数 | 使用 matlab 代码求卷积并绘图 )
文章目录 一.Matlab 卷积和多项式乘法 conv 函数 二.使用 matlab 代码求卷积并绘图 一.Matlab 卷积和多项式乘法 conv 函数 Matlab 文档地址 : https:// ...
最新文章
- 基于FPGA的HDB3数字编码器设计
- SSD: how to optimize your Solid State Drive for Linux Mint 17.3, Ubuntu 16.04 and Debian
- linux创建线程未定义,Linux中未定义的对p线程_CREATE的引用
- 2017年第八届蓝桥杯C/C++ C组国赛 —— 第三题:表达式计算
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]43 为AES 对抗侧信道攻击的防御
- catia怎么将特征参数化_搭建商城网站怎么将页面简洁化?这三个步骤不能少
- TableStore:爬虫数据存储和查询利器
- python查询mysql decimal报错_python读取MySQL数据表时,使用ast模块转换decimal格式数据的坑...
- docker安装mysql8_Centos7-Docker-安装Mysql8
- 《众妙之门 JavaScript与jQuery技术精粹》 - 读书笔记总结[无章节版][1-60]
- stata学习之空间权重矩阵制作
- Android应用开发--MP3音乐播放器代码实现(一),学Android看这就完事了
- 1、BimRevit 二次开发配置和环境搭建
- 计算机病毒的危害与防范
- 怎么使用阿里巴巴矢量图标
- 计算机高级应用都有啥,计算机二级MS OFFICE高级应用都有什么题型?
- mysql求平方根_MySQL数据库中如何求一个数的二次平方根(SQRT函数)呢?
- uniapp onChooseAvatar,uniapp微信头像昵称填写,uniapp chooseAvatar,does not have a method “onChooseAvatar“
- 互联网面试知识点总结(三)- 计算机网络篇
- 报错:Error: module property was removed from Dependency