diff --git a/CHANGELOG.md b/CHANGELOG.md index b27ede66a..d6ad1ff2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -121,6 +121,16 @@ The format is loosely based on [Keep a Changelog](https://keepachangelog.com/). overflows and a step never ends); `NSAMAX` above `NSBMAX`; an evolved species number outside 1 to `MIN(NSMAX, NSBMAX)`; a background species number outside 1 to `NSMAX`. +- **trx: the per-channel power integrals of `TRGLOB` are in MW** (#270; + issue #238). Ten of them (`PIC_NSNIC`, `PLH_NSNLH`, `PEC_NSNEC`, + `PNB_NSNNB`, `PNBIN_NSNNB`, `PNBCL_NSNNB`, `PNF_NSNNF`, `PNFIN_NSNNF`, + `PNFCL_NSNNF`, `PNFNN_NNF`) stayed in W where `PINT`, `QF` and the + confinement times take MW, so `PNF_TOT` entered `PINT` 1e6 too large and + corrupted `PINT`, `QF`, `TAUE1`, `TAUE2` and, through fractional powers, + `TAUE89`, `TAUE98` and `H98Y2` of runs with fusion. In NBI runs the + printed beam collisional powers (`PBCLE` to `PBCLA`) are now in MW; + `PNB_TOT` and `PRF_TOT` are not fixed by this, since the arrays they + integrate are never filled in trx (#238). - **MCP servers `eq_mcp`, `tr_mcp`, `tot_mcp`: Fortran output no longer reaches the JSON-RPC pipe.** A stdio server's fd 1 is the pipe to its client, and the library's `WRITE(6,...)` went into it: in one stdio diff --git a/trx/trrslt.f90 b/trx/trrslt.f90 index 853fd77b5..835a5b61d 100644 --- a/trx/trrslt.f90 +++ b/trx/trrslt.f90 @@ -164,15 +164,15 @@ SUBROUTINE TRGLOB DO NS=1,NSMAX DO NIC=1,NICMAX PIC_NSNIC(NS,NIC) & - =SUM(PIC_NSNICNR(NS,NIC,1:NRMAX)*DVRHO(1:NRMAX))*DR + =SUM(PIC_NSNICNR(NS,NIC,1:NRMAX)*DVRHO(1:NRMAX))*DR/1.D6 END DO DO NLH=1,NLHMAX PLH_NSNLH(NS,NLH) & - =SUM(PLH_NSNLHNR(NS,NLH,1:NRMAX)*DVRHO(1:NRMAX))*DR + =SUM(PLH_NSNLHNR(NS,NLH,1:NRMAX)*DVRHO(1:NRMAX))*DR/1.D6 END DO DO NEC=1,NECMAX PEC_NSNEC(NS,NEC) & - =SUM(PEC_NSNECNR(NS,NEC,1:NRMAX)*DVRHO(1:NRMAX))*DR + =SUM(PEC_NSNECNR(NS,NEC,1:NRMAX)*DVRHO(1:NRMAX))*DR/1.D6 END DO END DO DO NIC=1,NICMAX @@ -231,11 +231,11 @@ SUBROUTINE TRGLOB SNB_NSNNB(NS,NNB) & =SUM(SNB_NSNNBNR(NS,NNB,1:NRMAX)*DVRHO(1:NRMAX))*DR PNB_NSNNB(NS,NNB) & - =SUM(PNB_NSNNBNR(NS,NNB,1:NRMAX)*DVRHO(1:NRMAX))*DR + =SUM(PNB_NSNNBNR(NS,NNB,1:NRMAX)*DVRHO(1:NRMAX))*DR/1.D6 PNBIN_NSNNB(NS,NNB) & - =SUM(PNBIN_NSNNBNR(NS,NNB,1:NRMAX)*DVRHO(1:NRMAX))*DR + =SUM(PNBIN_NSNNBNR(NS,NNB,1:NRMAX)*DVRHO(1:NRMAX))*DR/1.D6 PNBCL_NSNNB(NS,NNB) & - =SUM(PNBCL_NSNNBNR(NS,NNB,1:NRMAX)*DVRHO(1:NRMAX))*DR + =SUM(PNBCL_NSNNBNR(NS,NNB,1:NRMAX)*DVRHO(1:NRMAX))*DR/1.D6 END DO END DO DO NNB=1,NNBMAX @@ -280,11 +280,11 @@ SUBROUTINE TRGLOB SNF_NSNNF(NS,NNF) & =SUM(SNF_NSNNFNR(NS,NNF,1:NRMAX)*DVRHO(1:NRMAX))*DR PNF_NSNNF(NS,NNF) & - =SUM(PNF_NSNNFNR(NS,NNF,1:NRMAX)*DVRHO(1:NRMAX))*DR + =SUM(PNF_NSNNFNR(NS,NNF,1:NRMAX)*DVRHO(1:NRMAX))*DR/1.D6 PNFIN_NSNNF(NS,NNF) & - =SUM(PNFIN_NSNNFNR(NS,NNF,1:NRMAX)*DVRHO(1:NRMAX))*DR + =SUM(PNFIN_NSNNFNR(NS,NNF,1:NRMAX)*DVRHO(1:NRMAX))*DR/1.D6 PNFCL_NSNNF(NS,NNF) & - =SUM(PNFCL_NSNNFNR(NS,NNF,1:NRMAX)*DVRHO(1:NRMAX))*DR + =SUM(PNFCL_NSNNFNR(NS,NNF,1:NRMAX)*DVRHO(1:NRMAX))*DR/1.D6 END DO END DO @@ -325,7 +325,7 @@ SUBROUTINE TRGLOB SNFNN_NNF(NNF) & =SUM(SNFNN_NNFNR(NNF,1:NRMAX)*DVRHO(1:NRMAX))*DR PNFNN_NNF(NNF) & - =SUM(PNFNN_NNFNR(NNF,1:NRMAX)*DVRHO(1:NRMAX))*DR + =SUM(PNFNN_NNFNR(NNF,1:NRMAX)*DVRHO(1:NRMAX))*DR/1.D6 END DO SNFNN_TOT=SUM(SNFNN_NNF(1:NNFMAX))