#include "dims.h" SUBROUTINE QJNNO use cons_module,only: len1,len2,kmax,kmaxm1,kmaxp1,rmassinv, | expz,avo,p0,boltz use crates_module,only: beta2,beta4,beta6 implicit none C **** C **** CALCULATES ADDITIONS TO NEUTRAL GAS HEATING AND O2 C **** DISSOCIATION DUE TO N, NO CHEMISTRY C **** C **** NOTE: CMPN2D MUST BE CALLED BEFORE THLIS SUBROUTINE C **** IS CALLED C **** #include "params.h" #include "fcom.h" #include "vscr.h" #include "index.h" #include "buff.h" #include "crates_tdep.h" #include "mwt.h" #include "phys.h" ! ! Local: integer :: npnok,npn4sk,npn2dk,ntk,nps1k,nps2k,nno2k,nek,nqk,nrjk, | i,k ! NPNOK=NJ+NPNO NPN4SK=NJ+NPN4S NPN2DK=NPN2D+NJNP NTK=NJ+NT NPS1K=NJ+NPS NPS2K=NPS1K+KMAXP1 NNO2K=NNO2 NEK=NJ+NE NQK=NQ NRJK=NRJ C **** C **** S1 = NMBAR (K+1/2) C **** DO 1 K=1,KMAX DO 1 I=1,LEN1 S1(I,K)=expz(K) 1 CONTINUE DO 2 I=1,LEN2 S1(I,1)=p0*S1(I,1)/(boltz*F(I,NTK)*(F(I,NPS1K)*rmassinv(1)+ | F(I,NPS2K)*rmassinv(2)+(1.-F(I,NPS1K)-F(I,NPS2K))*rmassinv(3))) 2 CONTINUE ! call addfsech('XNMBAR',' ',' ',s1,zimxp,zkmxp,zkmx,j) ! call addfsech('F_O2' ,' ',' ',f(1,nj+nps ) ,zimxp,zkmxp,zkmx,j) ! call addfsech('F_O1' ,' ',' ',f(1,nj+nps2) ,zimxp,zkmxp,zkmx,j) ! call addfsech('F_NE' ,' ',' ',f(1,nj+ne ) ,zimxp,zkmxp,zkmx,j) ! call addfsech('F_NO' ,' ',' ',f(1,nj+npno) ,zimxp,zkmxp,zkmx,j) ! call addfsech('F_N4S' ,' ',' ',f(1,nj+npn4s) ,zimxp,zkmxp,zkmx,j) ! call addfsech('F_N2D' ,' ',' ',f(1,njnp+npn2d),zimxp,zkmxp,zkmx,j) DO 3 I=1,LEN2 C **** C **** S2 = DELTA(Q) (K+1/2) C **** S2(I,1)=1.602E-12*avo*S1(I,1)*(F(I,NPN4SK)/RMN4S*(BETA1(I,1)* | F(I,NPS1K)*rmassinv(1)*1.4+BETA3(I,1)*F(I,NPNOK)/RMNO*2.68)+ | F(I,NPN2DK)/RMN2D*(BETA2*F(I,NPS1K)*rmassinv(1)*1.84+ | BETA4*F(I,NPS2K)*rmassinv(2)*2.38+BETA5(I,1)*.5*(F(I,NEK)+ | F(I,NEK+1))*2.38/S1(I,1)+BETA6*F(I,NPNOK)/RMNO*5.63)) 3 CONTINUE ! call addfsech('DELTAQ',' ',' ',s2,zimxp,zkmxp,zkmx,j) ! call addfsech('QRJ_Q' ,' ',' ',f(1,nq),zimxp,zkmxp,zkmx,j) C **** C **** ADD DELTA(Q) TO Q (K) C **** ADD DELTA(RJ) TO RJ (K) C **** C **** LEVELS 2 THU KMAX C **** DO 4 I=LEN1+1,LEN2 if (S2(I,0)*S2(I,1)>=0.) then S7(I,1) = S2(I,0)*S2(I,1) else s7(i,1) = 1.e-20 endif F(I,NQK) = F(I,NQK)+SQRT(S7(I,1)) 4 CONTINUE C **** LEVELS 1 AND KMAXP1 DO 5 I=1,LEN1 F(I,NQK) = F(I,NQK)+1.5*S2(I,1)-0.5*S2(I,2) F(I,NQK+KMAX) = F(I,NQK+KMAX)+1.5*S2(I,KMAX)-0.5* 1 S2(I,KMAXM1) 5 CONTINUE ! call addfsech('QJNNO_Q',' ',' ',f(1,nq),zimxp,zkmxp,zkmx,j) RETURN END C