⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pfuimap.f

📁 一个有用的分子动力学小辅助程序
💻 F
字号:
	subroutine pfuimap(ntab, atumin, atumax, datui, tu, ipow, oner,     $                     ntab2,atumin2,atumax2,datui2,tu2,icode)	implicit none*	   ARGUMENTS	integer ntab,ntab2,ipow,icode	logical oner	double precision atumin,atumax,datui,atumin2,atumax2,datui2	double precision tu(ntab),tu2(ntab2)*	   PARAMETERS	double precision zero,one	parameter (zero=0.d0,one=1.d0)*	   LOCAL	integer itab2,mmm	double precision powi,datu2,arg2,arg,xxx,ddd,value	if (ipow.lt.1) then	   icode = 1	   return	endif	powi = one/ipow	atumin2 = atumin**ipow	atumax2 = atumax**ipow	datu2   = (atumax2-atumin2) / (ntab2-1)	datui2  = one/datu2	do itab2=1,ntab2	   arg2 = atumin2 + datu2*(itab2-1)	   if (arg2.lt.zero) then	      icode = 2	      return	   endif	   if (ipow.eq.2) then*	         most cases	      arg = sqrt(arg2)	   else	      arg = arg2**powi	   endif	   xxx = (arg - atumin)*datui + one	   mmm = xxx	   if (mmm.lt.1)      mmm = 1	   if (mmm.gt.ntab-1) mmm = ntab - 1	   ddd = xxx - mmm	   value = tu(mmm+1)*ddd + tu(mmm)*(one-ddd)	   if (oner) then	      if (arg.eq.zero) then*	            just a protection.  this value is supposed to be*	            very unlikely to be used.	         tu2(itab2) = zero	      else	         tu2(itab2) = - value/arg	      endif	   else	      tu2(itab2) = value	   endif	enddo	icode = 0	end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -