7 SUBROUTINE impurity_one(TE,NE,NZ1,NZM1,VPR,VPRM,R0,BT,BTPRIME,DIFF,FLUX,FLUX_INTER,rho,&
8 vconv,nrho,simp2,nsource,nz_bnd,nz_bnd_type,control_double,control_integer,g1,imp_radiation,se_exp,&
9 max_nzimp,amns_ei,amns_rc,amns_lr,amns_br,amns_eip,lin_rad1,brem_rad1,jon_en1,rec_los1)
11 SUBROUTINE impurity_one(TE,NE,NZ1,NZM1,VPR,VPRM,R0,BT,BTPRIME,DIFF,FLUX,FLUX_INTER,rho,&
12 vconv,nrho,simp2,nsource,nz_bnd,nz_bnd_type,control_double,control_integer,g1,imp_radiation,se_exp,&
49 INTEGER :: iimp, simp2,simp,isimp
50 INTEGER :: izimp, nzimp
51 INTEGER :: nz_bnd_type(simp2)
55 REAL (R8) :: bt, btm, btprime
57 REAL (R8) :: rho(nrho)
59 real(r8) :: vprm(nrho)
61 REAL (R8) :: nz1(nrho,simp2)
62 REAL (R8) :: nzm1(nrho,simp2)
63 real(r8) ::
flux(nrho,simp2)
64 real(r8) :: flux_inter(nrho,simp2)
65 REAL (R8) :: ne(nrho),te(nrho)
66 REAL (R8) :: diff(nrho,simp2)
67 REAL (R8) :: vconv(nrho,simp2)
68 REAL (R8) :: nsource(nrho,simp2)
69 REAL (R8) :: nz_bnd(3,simp2)
71 REAL (R8) :: real_index_t
72 REAL (R8) :: alfa(nrho,simp2)
73 REAL (R8) :: beta(nrho,simp2)
74 REAL (R8) :: gama(nrho,simp2)
75 REAL (R8) :: slin(nrho,simp2)
76 REAL (R8) :: imp_radiation(nrho,simp2)
77 REAL (R8) :: alfa_nz(max_nzimp+2,500)
78 REAL (R8) :: beta_nz(max_nzimp+2,500)
79 REAL (R8) :: slin_nz(max_nzimp+2,500)
80 REAL (R8) :: gama_nz(max_nzimp+2,500)
81 REAL (R8) :: potential(nrho,1:max_nzimp+2)
82 REAL (R8) :: amix, tau
85 REAL (R8) :: lin_rad1(nrho,simp2)
86 REAL (R8) :: brem_rad1(nrho,simp2)
87 REAL (R8) :: jon_en1(nrho,simp2)
88 REAL (R8) :: rec_los1(nrho,simp2)
90 REAL (R8) :: se_exp(nrho)
92 INTEGER :: solut_method
95 INTEGER :: solver_type
107 REAL (R8) :: v(2), u(2), w(2)
109 REAL (R8) :: fun1(nrho), intfun1(nrho)
112 INTEGER,
INTENT(IN) :: control_integer(2)
113 REAL (R8),
INTENT(IN) :: control_double(5)
115 REAL (R8) :: dnz(nrho)
116 REAL (R8) :: int_source(nrho)
117 REAL (R8) :: nzp(nrho,simp2)
118 REAL (R8) :: a1p(nrho), b1p(nrho)
119 REAL (R8) :: c1p(nrho), d1pp(nrho)
120 REAL (R8) :: vp(2), up(2), wp(2)
121 REAL (R8) :: drho, drhop, drhom
122 REAL (R8) :: a2p(simp2), b2p(simp2)
123 REAL (R8) :: c2p(simp2), d2pp(simp2)
127 REAL :: densityfluxin(nrho)
128 REAL :: fluxin, fluxout
142 type (amns_handle_rx_type
) :: amns_ei(1:max_nzimp+1), amns_rc(1:max_nzimp+1), &
143 amns_lr(1:max_nzimp+1), amns_br(1:max_nzimp+1),amns_eip(1:max_nzimp+1)
160 amix = control_double(2)
161 tau = control_double(1)
162 solver_type = control_integer(1)
186 if(izimp .ne. nzimp+1)
then
187 call itm_amns_rx(amns_ei(izimp),alfa(:,izimp),te,ne)
189 call itm_amns_rx(amns_lr(izimp),slin(:,izimp),te,ne)
190 call itm_amns_rx(amns_eip(izimp+1),potential(:,izimp),te,ne)
195 if(izimp .ne. 1)
then
196 call itm_amns_rx(amns_rc(izimp),beta(:,izimp),te,ne)
197 call itm_amns_rx(amns_br(izimp),gama(:,izimp),te,ne)
209 call
read_data(alfa_nz,beta_nz,gama_nz,slin_nz,max_nzimp,simp)
210 slin_nz = slin_nz * 1.e-30
211 gama_nz = gama_nz * 1.e-20
215 rho_loopa:
DO irho=1, nrho
217 index_t = int( 499.0/5.0*log10(te(irho)) ) + 1
218 real_index_t = 499.0/5.0*log10(te(irho)) + 1.0
220 imp_loopa:
DO isimp=1,simp+1
222 alfa(irho,isimp) = ( alfa_nz(isimp,index_t+1) - alfa_nz(isimp,index_t) )*(real_index_t - index_t) + alfa_nz(isimp,index_t)
223 beta(irho,isimp) = ( beta_nz(isimp,index_t+1) - beta_nz(isimp,index_t) )*(real_index_t - index_t) + beta_nz(isimp,index_t)
224 slin(irho,isimp) = ( slin_nz(isimp,index_t+1) - slin_nz(isimp,index_t) )*(real_index_t - index_t) + slin_nz(isimp,index_t)
225 gama(irho,isimp) = ( gama_nz(isimp,index_t+1) - gama_nz(isimp,index_t) )*(real_index_t - index_t) + gama_nz(isimp,index_t)
242 SELECT CASE (solut_method)
254 imp_loop1:
DO isimp=2,simp+1
278 rho_loop3:
DO irho=1,nrho
280 y(irho) = nz1(irho,isimp)
281 ym(irho) = nzm1(irho,isimp)
285 d(irho) = vpr(irho)*g1(irho)*diff(irho,isimp)
286 e(irho) = vpr(irho)*g1(irho)*vconv(irho,isimp) &
287 - btprime/2.d0/bt*rho(irho)*vpr(irho)
288 f(irho) = vpr(irho)*nsource(irho,isimp)+vpr(irho)*( nz1(irho,isimp-1)*ne(irho)*alfa(irho,isimp-1) &
289 + nz1(irho,isimp+1)*ne(irho)*beta(irho,isimp+1) )
290 g(irho) = vpr(irho)*(ne(irho)*alfa(irho,isimp) + ne(irho)*beta(irho,isimp) )
291 IF (irho.eq.nrho)
then
307 IF(diff(1,isimp).GT.0.d0)
THEN
308 v(1) = -diff(1,isimp)
309 u(1) = vconv(1,isimp)
321 IF(nz_bnd_type(isimp).EQ.1)
THEN
324 w(2) = nz_bnd(1,isimp)
328 IF(nz_bnd_type(isimp).EQ.2)
THEN
331 w(2) = nz_bnd(1,isimp)
335 IF(nz_bnd_type(isimp).EQ.3)
THEN
336 v(2) = nz_bnd(1,isimp)
342 IF(nz_bnd_type(isimp).EQ.4)
THEN
343 v(2) = -g1(nrho)*diff(nrho,isimp)*vpr(nrho)
344 u(2) = g1(nrho)*vconv(nrho,isimp)*vpr(nrho)
345 w(2) = nz_bnd(1,isimp)
349 IF(nz_bnd_type(isimp).EQ.5)
THEN
350 v(2) = nz_bnd(1,isimp)
351 u(2) = nz_bnd(2,isimp)
352 w(2) = nz_bnd(3,isimp)
356 IF(nz_bnd_type(isimp).EQ.0)
THEN
358 CALL
derivn(nrho,rho,y,dy)
362 rho_loop4:
DO irho=1,nrho
383 solver%EQ_FLAG(ndim) = flag
389 rho_loop5:
DO irho=1,nrho
391 solver%RHO(irho) = rho(irho)
392 solver%Y(ndim,irho) = y(irho)
393 solver%DY(ndim,irho) = dy(irho)
394 solver%YM(ndim,irho) = ym(irho)
395 solver%A(ndim,irho) = a(irho)
396 solver%B(ndim,irho) = b(irho)
397 solver%C(ndim,irho) = c(irho)
398 solver%D(ndim,irho) = d(irho)
399 solver%E(ndim,irho) = e(irho)
400 solver%F(ndim,irho) = f(irho)
401 solver%G(ndim,irho) = g(irho)
420 rho_loop6:
DO irho=1,nrho
422 y(irho) =
solver%Y(ndim,irho)
423 dy(irho) =
solver%DY(ndim,irho)
430 rho_loop7:
DO irho=1,nrho
432 nzm1(irho,isimp) = nz1(irho,isimp)
433 nz1(irho,isimp) = y(irho)
435 IF (rho(irho).NE.0.0d0)
THEN
436 fun1(irho) = 1.d0/rho(irho)*(vpr(irho)*nsource(irho,isimp) &
437 + vprm(irho)*nzm1(irho,isimp)/tau &
438 - nz1(irho,isimp)*vpr(irho)*(1.d0/tau))
439 ELSE IF (rho(irho).EQ.0.0d0)
THEN
440 fun1(irho) = 4.d0*itm_pi**2*r0* (nsource(irho,isimp) &
441 + nzm1(irho,isimp)/tau - nz1(irho,isimp)*(1.d0/tau))
450 CALL
integr(nrho,rho,fun1,intfun1)
452 rho_loop8:
DO irho=1,nrho
453 flux_inter(irho,isimp) = intfun1(irho) &
454 + btprime/2.d0/bt*rho(irho)*vpr(irho)*y(irho)
457 flux(irho,isimp) = vpr(irho)*g1(irho)* &
458 ( y(irho)*vconv(irho,isimp) - dy(irho)*diff(irho,isimp) )
466 loop_change:
DO isimp=2,simp+1
469 nzm1(irho,isimp)=nz1(irho,isimp)
483 imp_loop21:
DO isimp=simp+1, 2, -1
509 rho_loop23:
DO irho=1,nrho
511 y(irho) = nz1(irho,isimp)
512 ym(irho) = nzm1(irho,isimp)
516 d(irho) = vpr(irho)*g1(irho)*diff(irho,isimp)
517 e(irho) = vpr(irho)*g1(irho)*vconv(irho,isimp) &
518 - btprime/2.d0/bt*rho(irho)*vpr(irho)
519 f(irho) = vpr(irho)*nsource(irho,isimp)+vpr(irho)*(nz1(irho,isimp-1)*ne(irho)*alfa(irho,isimp-1) &
520 + nz1(irho,isimp+1)*ne(irho)*beta(irho,isimp+1) )
521 g(irho) = vpr(irho)*(ne(irho)*alfa(irho,isimp) + ne(irho)*beta(irho,isimp) )
538 IF(diff(1,isimp).GT.0.d0)
THEN
539 v(1) = -diff(1,isimp)
540 u(1) = vconv(1,isimp)
552 IF(nz_bnd_type(isimp).EQ.1)
THEN
555 w(2) = nz_bnd(1,isimp)
559 IF(nz_bnd_type(isimp).EQ.2)
THEN
562 w(2) = nz_bnd(1,isimp)
566 IF(nz_bnd_type(isimp).EQ.3)
THEN
567 v(2) = nz_bnd(1,isimp)
573 IF(nz_bnd_type(isimp).EQ.4)
THEN
574 v(2) = -g1(nrho)*diff(nrho,isimp)*vpr(nrho)
575 u(2) = g1(nrho)*vconv(nrho,isimp)*vpr(nrho)
576 w(2) = nz_bnd(1,isimp)
580 IF(nz_bnd_type(isimp).EQ.5)
THEN
581 v(2) = nz_bnd(1,isimp)
582 u(2) = nz_bnd(2,isimp)
583 w(2) = nz_bnd(3,isimp)
589 IF(nz_bnd_type(isimp).EQ.0)
THEN
591 CALL
derivn(nrho,rho,y,dy)
595 rho_loop24:
DO irho=1,nrho
615 solver%EQ_FLAG(ndim) = flag
620 rho_loop25:
DO irho=1,nrho
622 solver%RHO(irho) = rho(irho)
623 solver%Y(ndim,irho) = y(irho)
624 solver%DY(ndim,irho) = dy(irho)
625 solver%YM(ndim,irho) = ym(irho)
626 solver%A(ndim,irho) = a(irho)
627 solver%B(ndim,irho) = b(irho)
628 solver%C(ndim,irho) = c(irho)
629 solver%D(ndim,irho) = d(irho)
630 solver%E(ndim,irho) = e(irho)
631 solver%F(ndim,irho) = f(irho)
632 solver%G(ndim,irho) = g(irho)
651 rho_loop26:
DO irho=1,nrho
653 y(irho) =
solver%Y(ndim,irho)
654 dy(irho) =
solver%DY(ndim,irho)
659 rho_loop27:
DO irho=1,nrho
661 nzm1(irho,isimp) = nz1(irho,isimp)
662 nz1(irho,isimp) = y(irho)
664 IF (rho(irho).NE.0.0d0)
THEN
665 fun1(irho) = 1.d0/rho(irho)*(vpr(irho)*nsource(irho,isimp) &
666 + vprm(irho)*nzm1(irho,isimp)/tau &
667 - nz1(irho,isimp)*vpr(irho)*(1.d0/tau))
668 ELSE IF (rho(irho).EQ.0.0d0)
THEN
669 fun1(irho) = 4.0d0*itm_pi**2*r0*(nsource(irho,isimp) &
670 + nzm1(irho,isimp)/tau &
671 - nz1(irho,isimp)*(1.d0/tau))
679 CALL
integr(nrho,rho,fun1,intfun1)
681 rho_loop28:
DO irho=1,nrho
684 flux_inter(irho,isimp) = intfun1(irho) &
685 + btprime/2.d0/bt*rho(irho)*vpr(irho)*y(irho)
688 flux(irho,isimp) = vpr(irho)*g1(irho)* &
689 ( y(irho)*vconv(irho,isimp) - dy(irho)*diff(irho,isimp) )
716 IF(diff(1,isimp).GT.0.d0)
THEN
717 v(1) = -diff(1,isimp)
718 u(1) = vconv(1,isimp)
728 IF(nz_bnd_type(isimp).EQ.1)
THEN
731 w(2) = nz_bnd(1,isimp)
735 IF(nz_bnd_type(isimp).EQ.2)
THEN
738 w(2) = nz_bnd(1,isimp)
742 IF(nz_bnd_type(isimp).EQ.3)
THEN
743 v(2) = nz_bnd(1,isimp)
749 IF(nz_bnd_type(isimp).EQ.4)
THEN
750 v(2) = -g(nrho)*diff(nrho,isimp)
751 u(2) = g(nrho)*vconv(nrho,isimp)
752 w(2) = nz_bnd(1,isimp)
756 IF(nz_bnd_type(isimp).EQ.5)
THEN
757 v(2) = nz_bnd(1,isimp)
758 u(2) = nz_bnd(2,isimp)
759 w(2) = nz_bnd(3,isimp)
765 vp(1) = u(1) - v(1)/(rho(2)-rho(1))
766 up(1) = v(1)/(rho(2)-rho(1))
769 vp(2) = u(2) + v(2)/(rho(nrho)-rho(nrho-1))
770 up(2) = - v(2)/(rho(nrho)-rho(nrho-1))
779 rho_loop33:
DO irho=1,nrho
785 d(irho) = vpr(irho)*g1(irho)*diff(irho,isimp)
786 e(irho) = vpr(irho)*g1(irho)*vconv(irho,isimp) &
787 - btprime/2.d0/bt*rho(irho)*vpr(irho)
799 drho = 0.5*(rho(irho+1)-rho(irho-1))
801 drhop = rho(irho+1)-rho(irho)
803 drhom = rho(irho)-rho(irho-1)
806 a1p(irho) = h/drho/c(irho)*( 0.5*(d(irho+1)+d(irho))/drhop ) - &
807 h/drho/c(irho)*( 0.5*(e(irho)+e(irho)) )
809 b1p(irho) = a(irho) + &
810 h/drho/c(irho)*( 0.5*(d(irho+1)+d(irho))/drhop + 0.5*(d(irho)+d(irho-1))/drhom ) - &
811 h/drho/c(irho)*( 0.25*(e(irho+1)-e(irho-1)) )
813 c1p(irho) = h/drho/c(irho)*( 0.5*(d(irho)+d(irho-1))/drhom ) + &
814 h/drho/c(irho)*( 0.5*(e(irho)+e(irho-1)) )
816 d1pp(irho) = b(irho)*nz1(irho,isimp)
825 CALL
unhide_iimp(nrho, simp,isimp, a1p, b1p, c1p, d1pp, vp, up, wp, nzp)
830 nz1(:,isimp) = nzp(:,isimp)
854 a2p(isimp) = a(irho)*ne(irho)*beta(irho,isimp+1)*tau
856 b2p(isimp) = a(irho)*ne(irho)*( alfa(irho,isimp)+beta(irho,isimp) )*tau + a(irho)
858 c2p(isimp) = a(irho)*ne(irho)*alfa(irho,isimp-1)*tau
860 d2pp(isimp) = a(irho)*nz1(irho,isimp)
870 CALL
unhide_nrho(nrho, simp, irho, a2p, b2p, c2p, d2pp, nz1(irho,1), nzp)
874 nz1(irho,:) = nzp(irho,:)
891 densityfluxin(irho) = alfa(irho,1)*vpr(irho)*nz1(irho,1)*ne(irho)-beta(irho,2)*vpr(irho)*nz1(irho,2)*ne(irho)
896 fluxin =
calkatrapez( densityfluxin, nrho-1, rho(nrho)-rho(nrho-1) )
900 fluxout = fluxout - vpr(nrho)*g1(nrho)*diff(nrho,isimp)*(nz1(nrho,isimp)-nz1(nrho-1,isimp))/(rho(nrho)-rho(nrho-1))
916 y(irho)=nz1(irho,isimp)
918 IF (rho(irho).NE.0.0d0)
THEN
919 fun1(irho) = 1.d0/rho(irho)*(vpr(irho)*nsource(irho,isimp) &
920 +vprm(irho)*nzm1(irho,isimp)/tau &
921 -nz1(irho,isimp)*vpr(irho)*(1.d0/tau))
922 ELSE IF (rho(irho).EQ.0.0d0)
THEN
923 fun1(irho) = 4.d0*itm_pi**2*r0*(nsource(irho,isimp) &
924 +nzm1(irho,isimp)/tau &
925 -nz1(irho,isimp)*(1.d0/tau))
930 CALL
integr(nrho,rho,fun1,intfun1)
932 CALL
derivn(nrho,rho,y,dy)
937 flux_inter(irho,isimp) = intfun1(irho) &
938 + btprime/2.d0/bt*rho(irho)*vpr(irho)*y(irho)
941 flux(irho,isimp) = vpr(irho)*g1(irho)* &
942 ( y(irho)*vconv(irho,isimp) - dy(irho)*diff(irho,isimp) )
958 lin_rad1(irho,isimp) = ne(irho)*nz1(irho,isimp)*slin(irho,isimp)
959 brem_rad1(irho,isimp) = ne(irho)*nz1(irho,isimp)*gama(irho,isimp)
960 jon_en1(irho,isimp) = ne(irho)*nz1(irho,isimp)*potential(irho,isimp)*alfa(irho,isimp)
961 rec_los1(irho,isimp) = ne(irho)*nz1(irho,isimp)*potential(irho,isimp-1)*beta(irho,isimp)
962 imp_radiation(irho,isimp) = lin_rad1(irho,isimp) + brem_rad1(irho,isimp) + jon_en1(irho,isimp)*itm_ev &
963 - rec_los1(irho,isimp)*itm_ev
971 se_exp(irho) = se_exp(irho) &
972 + nz1(irho,isimp)*ne(irho)*alfa(irho,isimp) - nz1(irho,isimp)*ne(irho)*beta(irho,isimp)
974 se_exp(irho) = se_exp(irho) - nz1(irho,simp+1)*ne(irho)*beta(irho,simp+1)
1024 SUBROUTINE unhide_iimp(NRHO, SIMP, ISIMP, As, Bs, Cs, ds, Vbnd, Ubnd, Wbnd, NZPs)
1032 INTEGER,
PARAMETER :: dp = kind(1.0d0)
1034 INTEGER nrho, simp, isimp
1036 REAL (DP),
DIMENSION(NRHO, SIMP+2) :: nzps
1038 REAL (DP),
DIMENSION(NRHO) :: as, bs, cs, ds
1040 REAL (DP),
DIMENSION(2) :: vbnd, ubnd, wbnd
1042 REAL (DP),
DIMENSION(NRHO) :: alfas, betas
1048 REAL (DP) a1_bound, b1_bound, c1_bound
1050 REAL (DP) an_bound, bn_bound, cn_bound
1062 alfas(1) = -b1_bound/a1_bound
1063 betas(1) = c1_bound/a1_bound
1071 alfas(irho) = as(irho)/( bs(irho) - cs(irho)*alfas(irho-1) )
1073 betas(irho) = ( cs(irho)*betas(irho-1) + ds(irho) )/( bs(irho) - cs(irho)*alfas(irho-1) )
1079 nzps(nrho,isimp) = ( cn_bound - betas(nrho-1)*bn_bound )/( an_bound - alfas(nrho-1)*bn_bound )
1082 DO irho=nrho-1, 2, -1
1084 nzps(irho,isimp) = alfas(irho)*nzps(irho+1,isimp) + betas(irho)
1090 nzps(1,isimp)=alfas(1)*nzps(2,isimp) + betas(1)
1111 INTEGER,
PARAMETER :: dp = kind(1.0d0)
1113 INTEGER nrho, simp, irho
1117 REAL (DP),
DIMENSION(NRHO,SIMP+2) :: nzps
1119 REAL (DP),
DIMENSION(SIMP+2) :: as, bs, cs, ds
1121 REAL (DP),
DIMENSION(SIMP+2) :: alfas, betas
1126 REAL a1_bound, b1_bound, c1_bound
1128 REAL an_bound, bn_bound, cn_bound
1141 alfas(1) = -b1_bound/a1_bound
1142 betas(1) = c1_bound/a1_bound
1150 alfas(isimp) = as(isimp)/( bs(isimp) - cs(isimp)*alfas(isimp-1) )
1152 betas(isimp) = ( cs(isimp)*betas(isimp-1) + ds(isimp) )/( bs(isimp) - cs(isimp)*alfas(isimp-1) )
1157 nzps(irho,simp+2) = ( cn_bound - betas(simp+1)*bn_bound )/( an_bound - alfas(simp+1)*bn_bound )
1161 DO isimp=simp+1, 2, -1
1163 nzps(irho,isimp) = alfas(isimp)*nzps(irho,isimp+1) + betas(isimp)
1168 nzps(irho,1) = alfas(1)*nzps(irho,2) + betas(1)
1177 REAL,
DIMENSION(n+1) :: wartosc
1191 SUBROUTINE read_data (ALFA_NZ,BETA_NZ,Gama_nz,SLIN_NZ,max_nzimp,simp,potential)
1198 INTEGER,
PARAMETER :: dp = kind(1.0d0)
1199 INTEGER isimp, jt,simp,max_nzimp
1201 CHARACTER*70,
DIMENSION(3,74) :: atomname
1203 REAL (DP) :: alfa_nz(max_nzimp+2,500)
1204 REAL (DP) :: beta_nz(max_nzimp+2,500)
1205 REAL (DP) :: gama_nz(max_nzimp+2,500)
1206 REAL (DP) :: slin_nz(max_nzimp+2,500)
1207 REAL (DP) :: potential(max_nzimp+2)
1209 atomname(1,1)=
'./src/atomdata/HTABLE'
1210 atomname(2,1)=
'./src/atomdata/HPROM_OLD'
1211 atomname(3,1)=
'./src/atomdata/HJON'
1213 atomname(1,2)=
'./src/atomdata/HETABLE1'
1214 atomname(2,2)=
'./src/atomdata/HEPROM1'
1215 atomname(3,2)=
'./src/atomdata/HEJON'
1217 atomname(1,3)=
'./src/atomdata/LITABLE1'
1218 atomname(2,3)=
'./src/atomdata/LIPROM1'
1219 atomname(3,3)=
'./src/atomdata/LIJON'
1221 atomname(1,4)=
'./src/atomdata/BETABLE1'
1222 atomname(2,4)=
'./src/atomdata/BEPROM1'
1223 atomname(3,4)=
'./src/atomdata/BEJON'
1225 atomname(1,5)=
'./src/atomdata/BTABLE1'
1226 atomname(2,5)=
'./src/atomdata/BPROM1'
1227 atomname(3,5)=
'./src/atomdata/BJON'
1229 atomname(1,6)=
'./src/atomdata/CTABLE1'
1230 atomname(2,6)=
'./src/atomdata/CPROM1'
1231 atomname(3,6)=
'./src/atomdata/CJON'
1234 atomname(1,7)=
'./src/atomdata/NTABLE1'
1235 atomname(2,7)=
'./src/atomdata/NPROM1'
1236 atomname(3,7)=
'./src/atomdata/NJON'
1238 atomname(1,8)=
'./src/atomdata/OTABLE1'
1239 atomname(2,8)=
'./src/atomdata/OPROM1'
1240 atomname(3,8)=
'./src/atomdata/OJON'
1242 atomname(1,10)=
'./src/atomdata/NETABLE1'
1243 atomname(2,10)=
'./src/atomdata/NEPROM1'
1244 atomname(3,10)=
'./src/atomdata/NEJON'
1246 atomname(1,14)=
'./src/atomdata/SITABLE1'
1247 atomname(2,14)=
'./src/atomdata/SIPROM1'
1248 atomname(3,14)=
'./src/atomdata/SIJON'
1250 atomname(1,18)=
'./src/atomdata/ARTABLE1'
1251 atomname(2,18)=
'./src/atomdata/ARPROM1'
1252 atomname(3,18)=
'./src/atomdata/ARJON'
1254 atomname(1,26)=
'./src/atomdata/FETABLE1'
1255 atomname(2,26)=
'./src/atomdata/FEPROM1'
1256 atomname(3,26)=
'./src/atomdata/FEJON'
1258 atomname(1,28)=
'./src/atomdata/NITABLE1'
1259 atomname(2,28)=
'./src/atomdata/NIPROM1'
1261 atomname(1,42)=
'./src/atomdata/MOTABLE1'
1262 atomname(2,42)=
'./src/atomdata/MOPROM1'
1263 atomname(3,42)=
'./src/atomdata/MOJON'
1265 atomname(1,74)=
'./src/atomdata/WTABLE1'
1266 atomname(2,74)=
'./src/atomdata/WPROM1'
1267 atomname(3,74)=
'./src/atomdata/WJON'
1270 alfa_nz = 0.0; beta_nz = 0.0; gama_nz = 0.0
1274 OPEN(23,file=atomname(1,simp),status=
'OLD')
1278 DO isimp=1,simp;
READ(23,*) (alfa_nz(isimp,jt),beta_nz(isimp+1,jt),gama_nz(isimp+1,jt), jt=1, 500);
ENDDO
1286 OPEN(33,file=atomname(2,simp),status=
'OLD')
1288 READ(33,*) ((slin_nz(isimp,jt),jt=1, 500 ), isimp = 1,simp+1 )
1292 40
OPEN(43,file=atomname(3,simp),status=
'OLD')
1294 READ(43,*) (potential(isimp), isimp = 1,simp )
subroutine solution_interface(SOLVER, ifail)
INTERFACE TO NUMERICAL SOLVER.
subroutine unhide_nrho(NRHO, SIMP, IRHO, As, Bs, Cs, ds, Nbnd, NZPs)
REAL function calkatrapez(wartosc, n, dx)
subroutine derivn(N, X, Y, DY1)
These subroutines calculate first and second derivatives, DY1 and DY2, of function Y respect to argum...
subroutine allocate_numerics(NDIM, NRHO, SOLVER, ifail)
subroutine flux(psitok, rk, zk, nk)
subroutine impurity_one(TE, NE, NZ1, NZM1, VPR, VPRM, R0, BT, BTPRIME, DIFF, FLUX, FLUX_INTER, rho, VCONV, NRHO, SIMP2, NSOURCE, NZ_BND, NZ_BND_TYPE, control_double, CONTROL_INTEGER, G1, IMP_RADIATION, SE_EXP, max_nzimp)
subroutine integr(N, X, Y, INTY)
This subroutine calculates integral of function Y(X)*X from X=0 until X=X(N)
subroutine read_data(ALFA_NZ, BETA_NZ, Gama_nz, SLIN_NZ, max_nzimp, simp, potential)
subroutine deallocate_numerics(SOLVER, ifail)
Deallocate plasma profiles needed by the transport solver.
subroutine unhide_iimp(NRHO, SIMP, ISIMP, As, Bs, Cs, ds, Vbnd, Ubnd, Wbnd, NZPs)