From c3c6b71deada473773a791829b00014bd57b89a8 Mon Sep 17 00:00:00 2001 From: bcroft Date: Fri, 12 Jan 2024 08:35:48 -0600 Subject: [PATCH 1/5] Bug fixes for TOMAS --- GeosCore/carbon_mod.F90 | 2 +- GeosCore/isorropiaII_mod.F90 | 8 +- GeosCore/sulfate_mod.F90 | 21 +- GeosCore/tomas_mod.F90 | 251 ++++++++++++++---- .../HISTORY.rc.templates/HISTORY.rc.fullchem | 137 +++++++++- run/GCHP/createRunDir.sh | 6 +- 6 files changed, 360 insertions(+), 65 deletions(-) diff --git a/GeosCore/carbon_mod.F90 b/GeosCore/carbon_mod.F90 index 3963f348e..c462e008f 100644 --- a/GeosCore/carbon_mod.F90 +++ b/GeosCore/carbon_mod.F90 @@ -4968,7 +4968,7 @@ SUBROUTINE EMISSCARBONTOMAS( Input_Opt, State_Chm, State_Grid, State_Met, & REAL*4 :: TEMPTMS ! calculated from State_Met REAL*4 :: PRES ! calculated from State_Met REAL(fp) :: OC2OM = 1.8d0 - LOGICAL :: SGCOAG = .True. + LOGICAL :: SGCOAG = .FALSE. ! bc,jrp turn off subgrid coag 18/12/23 INTEGER :: L, K, EMTYPE INTEGER :: ii=53, jj=29 INTEGER :: origUnit diff --git a/GeosCore/isorropiaII_mod.F90 b/GeosCore/isorropiaII_mod.F90 index e3c8bad54..2de6f8953 100644 --- a/GeosCore/isorropiaII_mod.F90 +++ b/GeosCore/isorropiaII_mod.F90 @@ -572,14 +572,18 @@ SUBROUTINE DO_ISORROPIAII( Input_Opt, State_Chm, State_Diag, & !----------------------------------------------- IF (N == 1) THEN - IF (Spc(id_SALAAL)%Conc(I,J,L) .GT. CONMIN) THEN +! IF (Spc(id_SALAAL)%Conc(I,J,L) .GT. CONMIN) THEN !bc 08/01/24 for floating point exception + IF (Spc(id_SALAAL)%Conc(I,J,L) .GT. CONMIN .and. & + Spc(id_SALA)%Conc(I,J,L) .GT. CONMIN) THEN AlkR = Spc(id_SALAAL)%Conc(I,J,L) / Spc(id_SALA)%Conc(I,J,L) AlkR = MAX( (1.0_fp-AlkR), CONMIN) ELSE AlkR = 1.0_fp ENDIF ELSE - IF (Spc(id_SALCAL)%Conc(I,J,L) .GT. CONMIN) THEN +! IF (Spc(id_SALCAL)%Conc(I,J,L) .GT. CONMIN) THEN !bc 08/01/24 for floating point exception + IF (Spc(id_SALCAL)%Conc(I,J,L) .GT. CONMIN .and. & + Spc(id_SALC)%Conc(I,J,L) .GT. CONMIN) THEN AlkR = Spc(id_SALCAL)%Conc(I,J,L) / Spc(id_SALC)%Conc(I,J,L) AlkR = MAX( (1.0_fp-AlkR), CONMIN) ELSE diff --git a/GeosCore/sulfate_mod.F90 b/GeosCore/sulfate_mod.F90 index 69c6a2780..fa3b660fc 100644 --- a/GeosCore/sulfate_mod.F90 +++ b/GeosCore/sulfate_mod.F90 @@ -1000,7 +1000,7 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) INTEGER :: N_TRACERS INTEGER :: IBINS - LOGICAL :: ERRORSWITCH, SGCOAG = .TRUE. + LOGICAL :: ERRORSWITCH, SGCOAG = .FALSE. ! bc,jrp - turn off subgridcoag 18/12/23 INTEGER :: FLAG, ERR logical :: pdbug !(temporary) win, 10/24/07 !integer :: ii, jj, ll @@ -1045,17 +1045,18 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) AREA = HcoState%Grid%AREA_M2%Val(:,:) !AREA3D(:,:,1) = AREA(:,:) !AREA3D(:,:,2) = AREA(:,:) - + + ! comment out if shut off subgridcoag bc,14/12/23 ! Define subgrid coagulation timescale (win, 10/28/08) - IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN - TSCALE = 10.*3600. ! 10 hours - ELSE IF ( TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN + !IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN + ! TSCALE = 10.*3600. ! 10 hours + !ELSE IF ( TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN TSCALE = 5.*3600. - ELSE IF ( TRIM(State_Grid%GridRes) == '0.5x0.625' ) THEN - TSCALE = 1.*3600. - ELSE IF ( TRIM(State_Grid%GridRes) == '0.25x0.3125' ) THEN - TSCALE = 0.5*3600. - ENDIF + !!ELSE IF ( TRIM(State_Grid%GridRes) == '0.5x0.625' ) THEN + ! TSCALE = 1.*3600. + !ELSE IF ( TRIM(State_Grid%GridRes) == '0.25x0.3125' ) THEN + ! TSCALE = 0.5*3600. + !ENDIF ! Point to species array TC1 => State_Chm%Species diff --git a/GeosCore/tomas_mod.F90 b/GeosCore/tomas_mod.F90 index 0462d2b7b..ceccd65e6 100644 --- a/GeosCore/tomas_mod.F90 +++ b/GeosCore/tomas_mod.F90 @@ -524,41 +524,41 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, & printneg = .FALSE. ! determine ion rate - !ionrate = 10. ! set as constant now !!jrp - - IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN - - if( (pres / 100.) .lt. cplevels(9) ) then - ionrate = cosmic_ions(i,j,9) * boxmass / boxvol - if(State_Met%FRCLND(I,J) .gt. 0.2) then - ionrate = ionrate + soil_ions(9) - endif - elseif((pres/100.) .gt. cplevels(1)) then - ionrate = cosmic_ions(i,j,1) * boxmass / boxvol - if( State_Met%FRCLND(I,J) .gt. 0.2 ) then - ionrate = ionrate + soil_ions(1) - endif - else - lev=2 - do while (pres / 100. .lt. cplevels(lev)) - lev=lev+1 - enddo - weight=( cplevels( lev - 1 ) - pres / 100. ) / & - ( cplevels( lev - 1 ) - cplevels(lev) ) - ionrate=( cosmic_ions(i,j,lev ) * weight + & - cosmic_ions(i,j,lev-1) * (1.e+0_fp - weight) ) & - * boxmass / boxvol - if( State_Met%FRCLND(I,J) .gt. 0.2) then - ionrate=ionrate + ( soil_ions( lev ) * weight + & - soil_ions( lev-1 ) * (1.e+0_fp-weight) ) - endif - endif - - ELSE - ionrate = 0.e+0_fp - ENDIF - - if(ionrate .le. 1.501) ionrate = 1.501 + ionrate = 10. ! set as constant now !!jrp, bc 18/12/23 and comment out below + +! IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN +! +! if( (pres / 100.) .lt. cplevels(9) ) then +! ionrate = cosmic_ions(i,j,9) * boxmass / boxvol +! if(State_Met%FRCLND(I,J) .gt. 0.2) then +! ionrate = ionrate + soil_ions(9) +! endif +! elseif((pres/100.) .gt. cplevels(1)) then +! ionrate = cosmic_ions(i,j,1) * boxmass / boxvol +! if( State_Met%FRCLND(I,J) .gt. 0.2 ) then +! ionrate = ionrate + soil_ions(1) +! endif +! else +! lev=2 +! do while (pres / 100. .lt. cplevels(lev)) +! lev=lev+1 +! enddo +! weight=( cplevels( lev - 1 ) - pres / 100. ) / & +! ( cplevels( lev - 1 ) - cplevels(lev) ) +! ionrate=( cosmic_ions(i,j,lev ) * weight + & +! cosmic_ions(i,j,lev-1) * (1.e+0_fp - weight) ) & +! * boxmass / boxvol +! if( State_Met%FRCLND(I,J) .gt. 0.2) then +! ionrate=ionrate + ( soil_ions( lev ) * weight + & +! soil_ions( lev-1 ) * (1.e+0_fp-weight) ) +! endif +! endif +! +! ELSE +! ionrate = 0.e+0_fp +! ENDIF +! +! if(ionrate .le. 1.501) ionrate = 1.501 !print*,'i',i,'j',j,'l',l,'ionrate',ionrate @@ -731,8 +731,16 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, & ERR_IND(2) = J ERR_IND(3) = L ERR_IND(4) = 0 +! IF (SPINUP(14.0) .and. Gcout(jc) /= Gcout(jc) ) THEN + IF( SPINUP(14.0) .AND. IT_IS_NAN( Gcout(jc) ) ) THEN + Gcout(jc) = 0.0e+0_fp ! reset Nan to zero during spinup, bc 18/12/23 + print*,'Reset Gcout NaN to zero at ',I,J,L + ELSEIF ( SPINUP(14.0) .AND. .not. IT_IS_FINITE( Gcout(jc) ) ) THEN + Gcout(jc) = 0.0e+0_fp ! reset Inf to zero during spinup, bc 18/12/23 + print*,'Reset Gcout Inf to zero at ',I,J,L + ELSE call check_value( Gcout(jc), ERR_IND, ERR_VAR, ERR_MSG ) - + ENDIF !if( IT_IS_FINITE(Gcout(jc))) then ! print *,'xxxxxxxxx Found Inf in Gcout xxxxxxxxxxxxxx' ! print *,'Location ',I,J,L, 'comp',jc @@ -3891,7 +3899,7 @@ SUBROUTINE SOACOND( MSOA, I, J, L, BOXVOL, TEMPTMS, PRES, BOXMASS,& ! For SOACOND warnings INTEGER, SAVE :: SOACOND_WARNING_CT = -1 - INTEGER, PARAMETER :: SOACOND_WARNING_MAX = 20 + INTEGER, PARAMETER :: SOACOND_WARNING_MAX = 2 !bc 02/01/24 shut off too many warnings !================================================================= ! SOACOND begins here @@ -6044,6 +6052,150 @@ SUBROUTINE AERODIAG( PTYPE, I, J, L, Nk, Nkd, Mk, Mkd, BOXMASS, & ENDDO ENDIF + IF ( PTYPE == 2 ) THEN + DO K=1,IBINS + State_Diag%TomasCOAGmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasCOAGnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasCOAGmass ) THEN + S = State_Diag%Map_TomasCOAGmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasCOAGmass(I,J,L,K) = & + State_Diag%TomasCOAGmass(I,J,L,K) + (MK(K,JS) - MKD(K,JS))/ & + DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasCOAGnumber ) THEN + S = State_Diag%Map_TomasCOAGnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasCOAGnumber(I,J,L,K) = & + State_Diag%TomasCOAGnumber(I,J,L,K) + (NK(K) - NKD(K))/ & + DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF + + IF ( PTYPE == 3 ) THEN + DO K=1,IBINS + State_Diag%TomasNUCLmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasNUCLnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasNUCLmass ) THEN + S = State_Diag%Map_TomasNUCLmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasNUCLmass(I,J,L,K) = & + State_Diag%TomasNUCLmass(I,J,L,K) + (MK(K,JS) - MKD(K,JS))/ & + DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + + IF ( State_Diag%Archive_TomasNUCLnumber ) THEN + S = State_Diag%Map_TomasNUCLnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasNUCLnumber(I,J,L,K) = & + State_Diag%TomasNUCLnumber(I,J,L,K) + (NK(K) - NKD(K))/ & + DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF + + IF ( PTYPE == 4 ) THEN + DO K=1,IBINS + State_Diag%TomasAQOXmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasAQOXnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasAQOXmass ) THEN + S = State_Diag%Map_TomasAQOXmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasAQOXmass(I,J,L,K) = & + State_Diag%TomasAQOXmass(I,J,L,K) + (MK(K,JS) - MKD(K,JS))/ & + DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasAQOXnumber ) THEN + S = State_Diag%Map_TomasAQOXnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasAQOXnumber(I,J,L,K) = & + State_Diag%TomasAQOXnumber(I,J,L,K) + (NK(K) - NKD(K))/ & + DTCHEM / BOXMASS ! no./kg air/sec \ + + ENDIF + ENDIF + ENDDO + ENDIF + + IF ( PTYPE == 5 ) THEN + DO K=1,IBINS + State_Diag%TomasMNFIXmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasMNFIXnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasMNFIXmass ) THEN + S = State_Diag%Map_TomasMNFIXmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXmass(I,J,L,K) = & + State_Diag%TomasMNFIXmass(I,J,L,K) + (MK(K,JS) - MKD(K,JS))/ & + DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasMNFIXnumber ) THEN + S = State_Diag%Map_TomasMNFIXnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasMNFIXnumber(I,J,L,K) = & + State_Diag%TomasMNFIXnumber(I,J,L,K) + (NK(K) - NKD(K))/ & + DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF + + IF ( PTYPE == 6 ) THEN + DO K=1,IBINS + State_Diag%TomasSOAmass(I,J,L,K) = 0.e+0_fp + State_Diag%TomasSOAnumber(I,J,L,K) = 0.e+0_fp + DO JS = 1, ICOMP-IDIAG + IF ( State_Diag%Archive_TomasSOAmass ) THEN + S = State_Diag%Map_TomasSOAmass%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasSOAmass(I,J,L,K) = & + State_Diag%TomasSOAmass(I,J,L,K) + (MK(K,JS) - MKD(K,JS))/ & + DTCHEM / BOXMASS ! kg/kg air/sec + ENDIF + ENDIF + ENDDO + IF ( State_Diag%Archive_TomasSOAnumber ) THEN + S = State_Diag%Map_TomasSOAnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasSOAnumber(I,J,L,K) = & + State_Diag%TomasSOAnumber(I,J,L,K) + (NK(K) - NKD(K))/ & + DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF + + IF ( PTYPE == 7 ) THEN + DO K=1,IBINS + State_Diag%TomasNUCRATEnumber(I,J,L,K) = 0.e+0_fp + IF ( State_Diag%Archive_TomasNUCRATEnumber ) THEN + S = State_Diag%Map_TomasNUCRATEnumber%id2slot(K) + IF ( S > 0 ) THEN + State_Diag%TomasNUCRATEnumber(I,J,L,K) = & + State_Diag%TomasNUCRATEnumber(I,J,L,K) + (NK(K) - NKD(K)) / & + DTCHEM / BOXMASS ! no./kg air/sec + ! print*,'Values for nuc',BOXMASS,DTCHEM,NK(K),NKD(K),K, & + ! (NK(K) - NKD(K)), (NK(K) - NKD(K)) / & + ! DTCHEM / BOXMASS ! no./kg air/sec + ENDIF + ENDIF + ENDDO + ENDIF + IF ( PTYPE == 11 ) THEN DO K=1,IBINS State_Diag%TomasMNFIXezwat1mass(I,J,L,K) = 0.e+0_fp @@ -6355,16 +6507,17 @@ SUBROUTINE INIT_TOMAS( Input_Opt, State_Chm, State_Grid, RC ) ! (bmy, 1/30/14) DATA_DIR = TRIM( Input_Opt%CHEM_INPUTS_DIR ) // 'TOMAS_201402/' + ! comment out if shut off subgridcoag 14/12/23, bc ! Define subgrid coagulation timescale (win, 10/28/08) - IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN - SGCTSCALE = 10.*3600. ! 10 hours - ELSE IF ( TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN - SGCTSCALE = 5.*3600. - ELSE IF ( TRIM(State_Grid%GridRes) == '0.5x0.625' ) THEN - SGCTSCALE = 1.*3600. - ELSE IF ( TRIM(State_Grid%GridRes) == '0.25x0.3125' ) THEN - SGCTSCALE = 0.5*3600. - ENDIF + !IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN + ! SGCTSCALE = 10.*3600. ! 10 hours + !ELSE IF ( TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN + ! SGCTSCALE = 5.*3600. + !ELSE IF ( TRIM(State_Grid%GridRes) == '0.5x0.625' ) THEN + ! SGCTSCALE = 1.*3600. + !ELSE IF ( TRIM(State_Grid%GridRes) == '0.25x0.3125' ) THEN + ! SGCTSCALE = 0.5*3600. + !ENDIF #if defined(TOMAS40) Mo = 1.0e-21_fp*2.e+0_fp**(-10) @@ -8559,7 +8712,7 @@ SUBROUTINE SUBGRIDCOAG( NDISTINIT, NDIST, MDIST, BOXVOLUME,TEMP, & if (kcoag(k).gt.0.e+0_fp)then fracdiaml(k,kk)=kij(k,kk)*ndist(kk)/kcoag(k) else - fracdiaml(k,kk)=0 + fracdiaml(k,kk)=0.e+0_fp endif !debug if(pdbug) print *, kk, fracdiaml(k,kk) @@ -8568,7 +8721,9 @@ SUBROUTINE SUBGRIDCOAG( NDISTINIT, NDIST, MDIST, BOXVOLUME,TEMP, & ! determine the number of new particles left after coagulation do k=1,ibins - ndistfinal(k)=ndistinit(k)*exp(-kcoag(k)*tscale) + !ndistfinal(k)=ndistinit(k)*exp(-kcoag(k)*tscale) + !print*, 'Betty is here tscale ',tscale,k,kcoag(k) + ndistfinal(k)=ndistinit(k)*exp(-1.e+0_fp*kcoag(k)*tscale) enddo ! determine the mass added to each bin coagulation diff --git a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem index a0cacd2cc..b00a64907 100644 --- a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem +++ b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem @@ -5011,7 +5011,142 @@ COLLECTIONS: @#'DefaultCollection', SpeciesConc.frequency: 010000 SpeciesConc.duration: 010000 SpeciesConc.mode: 'time-averaged' - SpeciesConc.fields: 'SpeciesConcVV_RCOOH ', 'GCHPchem', + SpeciesConc.fields: 'SpeciesConcVV_NK01 ', 'GCHPchem', + 'SpeciesConcVV_NK02 ', 'GCHPchem', + 'SpeciesConcVV_NK03 ', 'GCHPchem', + 'SpeciesConcVV_NK04 ', 'GCHPchem', + 'SpeciesConcVV_NK05 ', 'GCHPchem', + 'SpeciesConcVV_NK06 ', 'GCHPchem', + 'SpeciesConcVV_NK07 ', 'GCHPchem', + 'SpeciesConcVV_NK08 ', 'GCHPchem', + 'SpeciesConcVV_NK09 ', 'GCHPchem', + 'SpeciesConcVV_NK10 ', 'GCHPchem', + 'SpeciesConcVV_NK11 ', 'GCHPchem', + 'SpeciesConcVV_NK12 ', 'GCHPchem', + 'SpeciesConcVV_NK13 ', 'GCHPchem', + 'SpeciesConcVV_NK14 ', 'GCHPchem', + 'SpeciesConcVV_NK15 ', 'GCHPchem', + 'SpeciesConcVV_SF01 ', 'GCHPchem', + 'SpeciesConcVV_SF02 ', 'GCHPchem', + 'SpeciesConcVV_SF03 ', 'GCHPchem', + 'SpeciesConcVV_SF04 ', 'GCHPchem', + 'SpeciesConcVV_SF05 ', 'GCHPchem', + 'SpeciesConcVV_SF06 ', 'GCHPchem', + 'SpeciesConcVV_SF07 ', 'GCHPchem', + 'SpeciesConcVV_SF08 ', 'GCHPchem', + 'SpeciesConcVV_SF09 ', 'GCHPchem', + 'SpeciesConcVV_SF10 ', 'GCHPchem', + 'SpeciesConcVV_SF11 ', 'GCHPchem', + 'SpeciesConcVV_SF12 ', 'GCHPchem', + 'SpeciesConcVV_SF13 ', 'GCHPchem', + 'SpeciesConcVV_SF14 ', 'GCHPchem', + 'SpeciesConcVV_SF15 ', 'GCHPchem', + 'SpeciesConcVV_SS01 ', 'GCHPchem', + 'SpeciesConcVV_SS02 ', 'GCHPchem', + 'SpeciesConcVV_SS03 ', 'GCHPchem', + 'SpeciesConcVV_SS04 ', 'GCHPchem', + 'SpeciesConcVV_SS05 ', 'GCHPchem', + 'SpeciesConcVV_SS06 ', 'GCHPchem', + 'SpeciesConcVV_SS07 ', 'GCHPchem', + 'SpeciesConcVV_SS08 ', 'GCHPchem', + 'SpeciesConcVV_SS09 ', 'GCHPchem', + 'SpeciesConcVV_SS10 ', 'GCHPchem', + 'SpeciesConcVV_SS11 ', 'GCHPchem', + 'SpeciesConcVV_SS12 ', 'GCHPchem', + 'SpeciesConcVV_SS13 ', 'GCHPchem', + 'SpeciesConcVV_SS14 ', 'GCHPchem', + 'SpeciesConcVV_SS15 ', 'GCHPchem', + 'SpeciesConcVV_ECOB01 ', 'GCHPchem', + 'SpeciesConcVV_ECOB02 ', 'GCHPchem', + 'SpeciesConcVV_ECOB03 ', 'GCHPchem', + 'SpeciesConcVV_ECOB04 ', 'GCHPchem', + 'SpeciesConcVV_ECOB05 ', 'GCHPchem', + 'SpeciesConcVV_ECOB06 ', 'GCHPchem', + 'SpeciesConcVV_ECOB07 ', 'GCHPchem', + 'SpeciesConcVV_ECOB08 ', 'GCHPchem', + 'SpeciesConcVV_ECOB09 ', 'GCHPchem', + 'SpeciesConcVV_ECOB10 ', 'GCHPchem', + 'SpeciesConcVV_ECOB11 ', 'GCHPchem', + 'SpeciesConcVV_ECOB12 ', 'GCHPchem', + 'SpeciesConcVV_ECOB13 ', 'GCHPchem', + 'SpeciesConcVV_ECOB14 ', 'GCHPchem', + 'SpeciesConcVV_ECOB15 ', 'GCHPchem', + 'SpeciesConcVV_ECIL01 ', 'GCHPchem', + 'SpeciesConcVV_ECIL02 ', 'GCHPchem', + 'SpeciesConcVV_ECIL03 ', 'GCHPchem', + 'SpeciesConcVV_ECIL04 ', 'GCHPchem', + 'SpeciesConcVV_ECIL05 ', 'GCHPchem', + 'SpeciesConcVV_ECIL06 ', 'GCHPchem', + 'SpeciesConcVV_ECIL07 ', 'GCHPchem', + 'SpeciesConcVV_ECIL08 ', 'GCHPchem', + 'SpeciesConcVV_ECIL09 ', 'GCHPchem', + 'SpeciesConcVV_ECIL10 ', 'GCHPchem', + 'SpeciesConcVV_ECIL11 ', 'GCHPchem', + 'SpeciesConcVV_ECIL12 ', 'GCHPchem', + 'SpeciesConcVV_ECIL13 ', 'GCHPchem', + 'SpeciesConcVV_ECIL14 ', 'GCHPchem', + 'SpeciesConcVV_ECIL15 ', 'GCHPchem', + 'SpeciesConcVV_OCOB01 ', 'GCHPchem', + 'SpeciesConcVV_OCOB02 ', 'GCHPchem', + 'SpeciesConcVV_OCOB03 ', 'GCHPchem', + 'SpeciesConcVV_OCOB04 ', 'GCHPchem', + 'SpeciesConcVV_OCOB05 ', 'GCHPchem', + 'SpeciesConcVV_OCOB06 ', 'GCHPchem', + 'SpeciesConcVV_OCOB07 ', 'GCHPchem', + 'SpeciesConcVV_OCOB08 ', 'GCHPchem', + 'SpeciesConcVV_OCOB09 ', 'GCHPchem', + 'SpeciesConcVV_OCOB10 ', 'GCHPchem', + 'SpeciesConcVV_OCOB11 ', 'GCHPchem', + 'SpeciesConcVV_OCOB12 ', 'GCHPchem', + 'SpeciesConcVV_OCOB13 ', 'GCHPchem', + 'SpeciesConcVV_OCOB14 ', 'GCHPchem', + 'SpeciesConcVV_OCOB15 ', 'GCHPchem', + 'SpeciesConcVV_OCIL01 ', 'GCHPchem', + 'SpeciesConcVV_OCIL02 ', 'GCHPchem', + 'SpeciesConcVV_OCIL03 ', 'GCHPchem', + 'SpeciesConcVV_OCIL04 ', 'GCHPchem', + 'SpeciesConcVV_OCIL05 ', 'GCHPchem', + 'SpeciesConcVV_OCIL06 ', 'GCHPchem', + 'SpeciesConcVV_OCIL07 ', 'GCHPchem', + 'SpeciesConcVV_OCIL08 ', 'GCHPchem', + 'SpeciesConcVV_OCIL09 ', 'GCHPchem', + 'SpeciesConcVV_OCIL10 ', 'GCHPchem', + 'SpeciesConcVV_OCIL11 ', 'GCHPchem', + 'SpeciesConcVV_OCIL12 ', 'GCHPchem', + 'SpeciesConcVV_OCIL13 ', 'GCHPchem', + 'SpeciesConcVV_OCIL14 ', 'GCHPchem', + 'SpeciesConcVV_OCIL15 ', 'GCHPchem', + 'SpeciesConcVV_DUST01 ', 'GCHPchem', + 'SpeciesConcVV_DUST02 ', 'GCHPchem', + 'SpeciesConcVV_DUST03 ', 'GCHPchem', + 'SpeciesConcVV_DUST04 ', 'GCHPchem', + 'SpeciesConcVV_DUST05 ', 'GCHPchem', + 'SpeciesConcVV_DUST06 ', 'GCHPchem', + 'SpeciesConcVV_DUST07 ', 'GCHPchem', + 'SpeciesConcVV_DUST08 ', 'GCHPchem', + 'SpeciesConcVV_DUST09 ', 'GCHPchem', + 'SpeciesConcVV_DUST10 ', 'GCHPchem', + 'SpeciesConcVV_DUST11 ', 'GCHPchem', + 'SpeciesConcVV_DUST12 ', 'GCHPchem', + 'SpeciesConcVV_DUST13 ', 'GCHPchem', + 'SpeciesConcVV_DUST14 ', 'GCHPchem', + 'SpeciesConcVV_DUST15 ', 'GCHPchem', + 'SpeciesConcVV_AW01 ', 'GCHPchem', + 'SpeciesConcVV_AW02 ', 'GCHPchem', + 'SpeciesConcVV_AW03 ', 'GCHPchem', + 'SpeciesConcVV_AW04 ', 'GCHPchem', + 'SpeciesConcVV_AW05 ', 'GCHPchem', + 'SpeciesConcVV_AW06 ', 'GCHPchem', + 'SpeciesConcVV_AW07 ', 'GCHPchem', + 'SpeciesConcVV_AW08 ', 'GCHPchem', + 'SpeciesConcVV_AW09 ', 'GCHPchem', + 'SpeciesConcVV_AW10 ', 'GCHPchem', + 'SpeciesConcVV_AW11 ', 'GCHPchem', + 'SpeciesConcVV_AW12 ', 'GCHPchem', + 'SpeciesConcVV_AW13 ', 'GCHPchem', + 'SpeciesConcVV_AW14 ', 'GCHPchem', + 'SpeciesConcVV_AW15 ', 'GCHPchem', + 'SpeciesConcVV_RCOOH ', 'GCHPchem', 'SpeciesConcVV_O2 ', 'GCHPchem', 'SpeciesConcVV_N2 ', 'GCHPchem', 'SpeciesConcVV_H2 ', 'GCHPchem', diff --git a/run/GCHP/createRunDir.sh b/run/GCHP/createRunDir.sh index 412b1665f..85fb2ae2b 100755 --- a/run/GCHP/createRunDir.sh +++ b/run/GCHP/createRunDir.sh @@ -25,16 +25,16 @@ #BOC # Directory w/ GCHP rundir scripts (i.e. this directory) -srcrundir=$(pwd -P) +srcrundir=$(pwd) cd ${srcrundir} # GEOS-Chem "science codebase" directory cd ../.. -gcdir=$(pwd -P) +gcdir=$(pwd) # GCHP "wrapper" directory cd ../../../.. -wrapperdir=$(pwd -P) +wrapperdir=$(pwd) # Return to cd ${srcrundir} From dea155dd0f2ab8cd943cfa1622bcf0f3f3faf10a Mon Sep 17 00:00:00 2001 From: bcroft Date: Fri, 12 Jan 2024 08:53:52 -0600 Subject: [PATCH 2/5] revert to original createRunDir - only need to remove -P for WashU machine --- run/GCHP/createRunDir.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/run/GCHP/createRunDir.sh b/run/GCHP/createRunDir.sh index 85fb2ae2b..412b1665f 100755 --- a/run/GCHP/createRunDir.sh +++ b/run/GCHP/createRunDir.sh @@ -25,16 +25,16 @@ #BOC # Directory w/ GCHP rundir scripts (i.e. this directory) -srcrundir=$(pwd) +srcrundir=$(pwd -P) cd ${srcrundir} # GEOS-Chem "science codebase" directory cd ../.. -gcdir=$(pwd) +gcdir=$(pwd -P) # GCHP "wrapper" directory cd ../../../.. -wrapperdir=$(pwd) +wrapperdir=$(pwd -P) # Return to cd ${srcrundir} From 1fd5c26cde4243d7cf3a13656aa3311546648146 Mon Sep 17 00:00:00 2001 From: Melissa Sulprizio Date: Wed, 17 Jan 2024 13:07:47 -0500 Subject: [PATCH 3/5] Bug fix: Remove hardcoded TOMAS species from GCHP's HISTORY.rc.fullchem In the previous pull request merge, species for the TOMAS15 simulation were added to run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem. However, this causes non-TOMAS simulations to crash because those species aren't defined. To avoid this, those lines are removed from HISTORY.rc. Instead, the setupConfigFiles.sh script has been updated to add those lines to HISTORY.rc for TOMAS simulations using sed. Signed-off-by: Melissa Sulprizio --- .../HISTORY.rc.templates/HISTORY.rc.fullchem | 137 +-------- run/shared/setupConfigFiles.sh | 272 +++++++++--------- 2 files changed, 137 insertions(+), 272 deletions(-) diff --git a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem index b00a64907..a0cacd2cc 100644 --- a/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem +++ b/run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem @@ -5011,142 +5011,7 @@ COLLECTIONS: @#'DefaultCollection', SpeciesConc.frequency: 010000 SpeciesConc.duration: 010000 SpeciesConc.mode: 'time-averaged' - SpeciesConc.fields: 'SpeciesConcVV_NK01 ', 'GCHPchem', - 'SpeciesConcVV_NK02 ', 'GCHPchem', - 'SpeciesConcVV_NK03 ', 'GCHPchem', - 'SpeciesConcVV_NK04 ', 'GCHPchem', - 'SpeciesConcVV_NK05 ', 'GCHPchem', - 'SpeciesConcVV_NK06 ', 'GCHPchem', - 'SpeciesConcVV_NK07 ', 'GCHPchem', - 'SpeciesConcVV_NK08 ', 'GCHPchem', - 'SpeciesConcVV_NK09 ', 'GCHPchem', - 'SpeciesConcVV_NK10 ', 'GCHPchem', - 'SpeciesConcVV_NK11 ', 'GCHPchem', - 'SpeciesConcVV_NK12 ', 'GCHPchem', - 'SpeciesConcVV_NK13 ', 'GCHPchem', - 'SpeciesConcVV_NK14 ', 'GCHPchem', - 'SpeciesConcVV_NK15 ', 'GCHPchem', - 'SpeciesConcVV_SF01 ', 'GCHPchem', - 'SpeciesConcVV_SF02 ', 'GCHPchem', - 'SpeciesConcVV_SF03 ', 'GCHPchem', - 'SpeciesConcVV_SF04 ', 'GCHPchem', - 'SpeciesConcVV_SF05 ', 'GCHPchem', - 'SpeciesConcVV_SF06 ', 'GCHPchem', - 'SpeciesConcVV_SF07 ', 'GCHPchem', - 'SpeciesConcVV_SF08 ', 'GCHPchem', - 'SpeciesConcVV_SF09 ', 'GCHPchem', - 'SpeciesConcVV_SF10 ', 'GCHPchem', - 'SpeciesConcVV_SF11 ', 'GCHPchem', - 'SpeciesConcVV_SF12 ', 'GCHPchem', - 'SpeciesConcVV_SF13 ', 'GCHPchem', - 'SpeciesConcVV_SF14 ', 'GCHPchem', - 'SpeciesConcVV_SF15 ', 'GCHPchem', - 'SpeciesConcVV_SS01 ', 'GCHPchem', - 'SpeciesConcVV_SS02 ', 'GCHPchem', - 'SpeciesConcVV_SS03 ', 'GCHPchem', - 'SpeciesConcVV_SS04 ', 'GCHPchem', - 'SpeciesConcVV_SS05 ', 'GCHPchem', - 'SpeciesConcVV_SS06 ', 'GCHPchem', - 'SpeciesConcVV_SS07 ', 'GCHPchem', - 'SpeciesConcVV_SS08 ', 'GCHPchem', - 'SpeciesConcVV_SS09 ', 'GCHPchem', - 'SpeciesConcVV_SS10 ', 'GCHPchem', - 'SpeciesConcVV_SS11 ', 'GCHPchem', - 'SpeciesConcVV_SS12 ', 'GCHPchem', - 'SpeciesConcVV_SS13 ', 'GCHPchem', - 'SpeciesConcVV_SS14 ', 'GCHPchem', - 'SpeciesConcVV_SS15 ', 'GCHPchem', - 'SpeciesConcVV_ECOB01 ', 'GCHPchem', - 'SpeciesConcVV_ECOB02 ', 'GCHPchem', - 'SpeciesConcVV_ECOB03 ', 'GCHPchem', - 'SpeciesConcVV_ECOB04 ', 'GCHPchem', - 'SpeciesConcVV_ECOB05 ', 'GCHPchem', - 'SpeciesConcVV_ECOB06 ', 'GCHPchem', - 'SpeciesConcVV_ECOB07 ', 'GCHPchem', - 'SpeciesConcVV_ECOB08 ', 'GCHPchem', - 'SpeciesConcVV_ECOB09 ', 'GCHPchem', - 'SpeciesConcVV_ECOB10 ', 'GCHPchem', - 'SpeciesConcVV_ECOB11 ', 'GCHPchem', - 'SpeciesConcVV_ECOB12 ', 'GCHPchem', - 'SpeciesConcVV_ECOB13 ', 'GCHPchem', - 'SpeciesConcVV_ECOB14 ', 'GCHPchem', - 'SpeciesConcVV_ECOB15 ', 'GCHPchem', - 'SpeciesConcVV_ECIL01 ', 'GCHPchem', - 'SpeciesConcVV_ECIL02 ', 'GCHPchem', - 'SpeciesConcVV_ECIL03 ', 'GCHPchem', - 'SpeciesConcVV_ECIL04 ', 'GCHPchem', - 'SpeciesConcVV_ECIL05 ', 'GCHPchem', - 'SpeciesConcVV_ECIL06 ', 'GCHPchem', - 'SpeciesConcVV_ECIL07 ', 'GCHPchem', - 'SpeciesConcVV_ECIL08 ', 'GCHPchem', - 'SpeciesConcVV_ECIL09 ', 'GCHPchem', - 'SpeciesConcVV_ECIL10 ', 'GCHPchem', - 'SpeciesConcVV_ECIL11 ', 'GCHPchem', - 'SpeciesConcVV_ECIL12 ', 'GCHPchem', - 'SpeciesConcVV_ECIL13 ', 'GCHPchem', - 'SpeciesConcVV_ECIL14 ', 'GCHPchem', - 'SpeciesConcVV_ECIL15 ', 'GCHPchem', - 'SpeciesConcVV_OCOB01 ', 'GCHPchem', - 'SpeciesConcVV_OCOB02 ', 'GCHPchem', - 'SpeciesConcVV_OCOB03 ', 'GCHPchem', - 'SpeciesConcVV_OCOB04 ', 'GCHPchem', - 'SpeciesConcVV_OCOB05 ', 'GCHPchem', - 'SpeciesConcVV_OCOB06 ', 'GCHPchem', - 'SpeciesConcVV_OCOB07 ', 'GCHPchem', - 'SpeciesConcVV_OCOB08 ', 'GCHPchem', - 'SpeciesConcVV_OCOB09 ', 'GCHPchem', - 'SpeciesConcVV_OCOB10 ', 'GCHPchem', - 'SpeciesConcVV_OCOB11 ', 'GCHPchem', - 'SpeciesConcVV_OCOB12 ', 'GCHPchem', - 'SpeciesConcVV_OCOB13 ', 'GCHPchem', - 'SpeciesConcVV_OCOB14 ', 'GCHPchem', - 'SpeciesConcVV_OCOB15 ', 'GCHPchem', - 'SpeciesConcVV_OCIL01 ', 'GCHPchem', - 'SpeciesConcVV_OCIL02 ', 'GCHPchem', - 'SpeciesConcVV_OCIL03 ', 'GCHPchem', - 'SpeciesConcVV_OCIL04 ', 'GCHPchem', - 'SpeciesConcVV_OCIL05 ', 'GCHPchem', - 'SpeciesConcVV_OCIL06 ', 'GCHPchem', - 'SpeciesConcVV_OCIL07 ', 'GCHPchem', - 'SpeciesConcVV_OCIL08 ', 'GCHPchem', - 'SpeciesConcVV_OCIL09 ', 'GCHPchem', - 'SpeciesConcVV_OCIL10 ', 'GCHPchem', - 'SpeciesConcVV_OCIL11 ', 'GCHPchem', - 'SpeciesConcVV_OCIL12 ', 'GCHPchem', - 'SpeciesConcVV_OCIL13 ', 'GCHPchem', - 'SpeciesConcVV_OCIL14 ', 'GCHPchem', - 'SpeciesConcVV_OCIL15 ', 'GCHPchem', - 'SpeciesConcVV_DUST01 ', 'GCHPchem', - 'SpeciesConcVV_DUST02 ', 'GCHPchem', - 'SpeciesConcVV_DUST03 ', 'GCHPchem', - 'SpeciesConcVV_DUST04 ', 'GCHPchem', - 'SpeciesConcVV_DUST05 ', 'GCHPchem', - 'SpeciesConcVV_DUST06 ', 'GCHPchem', - 'SpeciesConcVV_DUST07 ', 'GCHPchem', - 'SpeciesConcVV_DUST08 ', 'GCHPchem', - 'SpeciesConcVV_DUST09 ', 'GCHPchem', - 'SpeciesConcVV_DUST10 ', 'GCHPchem', - 'SpeciesConcVV_DUST11 ', 'GCHPchem', - 'SpeciesConcVV_DUST12 ', 'GCHPchem', - 'SpeciesConcVV_DUST13 ', 'GCHPchem', - 'SpeciesConcVV_DUST14 ', 'GCHPchem', - 'SpeciesConcVV_DUST15 ', 'GCHPchem', - 'SpeciesConcVV_AW01 ', 'GCHPchem', - 'SpeciesConcVV_AW02 ', 'GCHPchem', - 'SpeciesConcVV_AW03 ', 'GCHPchem', - 'SpeciesConcVV_AW04 ', 'GCHPchem', - 'SpeciesConcVV_AW05 ', 'GCHPchem', - 'SpeciesConcVV_AW06 ', 'GCHPchem', - 'SpeciesConcVV_AW07 ', 'GCHPchem', - 'SpeciesConcVV_AW08 ', 'GCHPchem', - 'SpeciesConcVV_AW09 ', 'GCHPchem', - 'SpeciesConcVV_AW10 ', 'GCHPchem', - 'SpeciesConcVV_AW11 ', 'GCHPchem', - 'SpeciesConcVV_AW12 ', 'GCHPchem', - 'SpeciesConcVV_AW13 ', 'GCHPchem', - 'SpeciesConcVV_AW14 ', 'GCHPchem', - 'SpeciesConcVV_AW15 ', 'GCHPchem', - 'SpeciesConcVV_RCOOH ', 'GCHPchem', + SpeciesConc.fields: 'SpeciesConcVV_RCOOH ', 'GCHPchem', 'SpeciesConcVV_O2 ', 'GCHPchem', 'SpeciesConcVV_N2 ', 'GCHPchem', 'SpeciesConcVV_H2 ', 'GCHPchem', diff --git a/run/shared/setupConfigFiles.sh b/run/shared/setupConfigFiles.sh index 5b7a03980..e10c81d6b 100755 --- a/run/shared/setupConfigFiles.sh +++ b/run/shared/setupConfigFiles.sh @@ -728,142 +728,142 @@ function set_common_settings() { sed_ie "s|#'Default|'Default|" HISTORY.rc # Add TOMAS species - prev_line="'SpeciesConc_ACET ', 'GCHPchem'," - new_line=" 'SpeciesConc_NK1 ', 'GCHPchem',\n\ - 'SpeciesConc_NK02 ', 'GCHPchem',\n\ - 'SpeciesConc_NK03 ', 'GCHPchem',\n\ - 'SpeciesConc_NK04 ', 'GCHPchem',\n\ - 'SpeciesConc_NK05 ', 'GCHPchem',\n\ - 'SpeciesConc_NK06 ', 'GCHPchem',\n\ - 'SpeciesConc_NK07 ', 'GCHPchem',\n\ - 'SpeciesConc_NK08 ', 'GCHPchem',\n\ - 'SpeciesConc_NK09 ', 'GCHPchem',\n\ - 'SpeciesConc_NK10 ', 'GCHPchem',\n\ - 'SpeciesConc_NK11 ', 'GCHPchem',\n\ - 'SpeciesConc_NK12 ', 'GCHPchem',\n\ - 'SpeciesConc_NK13 ', 'GCHPchem',\n\ - 'SpeciesConc_NK14 ', 'GCHPchem',\n\ - 'SpeciesConc_NK15 ', 'GCHPchem',\n\ - 'SpeciesConc_SF01 ', 'GCHPchem',\n\ - 'SpeciesConc_SF02 ', 'GCHPchem',\n\ - 'SpeciesConc_SF03 ', 'GCHPchem',\n\ - 'SpeciesConc_SF04 ', 'GCHPchem',\n\ - 'SpeciesConc_SF05 ', 'GCHPchem',\n\ - 'SpeciesConc_SF06 ', 'GCHPchem',\n\ - 'SpeciesConc_SF07 ', 'GCHPchem',\n\ - 'SpeciesConc_SF08 ', 'GCHPchem',\n\ - 'SpeciesConc_SF09 ', 'GCHPchem',\n\ - 'SpeciesConc_SF10 ', 'GCHPchem',\n\ - 'SpeciesConc_SF11 ', 'GCHPchem',\n\ - 'SpeciesConc_SF12 ', 'GCHPchem',\n\ - 'SpeciesConc_SF13 ', 'GCHPchem',\n\ - 'SpeciesConc_SF14 ', 'GCHPchem',\n\ - 'SpeciesConc_SF15 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB01 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB02 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB03 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB04 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB05 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB06 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB07 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB08 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB09 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB10 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB11 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB12 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB13 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB14 ', 'GCHPchem',\n\ - 'SpeciesConc_ECOB15 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL01 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL02 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL03 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL04 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL05 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL06 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL07 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL08 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL09 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL10 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL11 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL12 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL13 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL14 ', 'GCHPchem',\n\ - 'SpeciesConc_ECIL15 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB01 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB02 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB03 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB04 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB05 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB06 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB07 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB08 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB09 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB10 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB11 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB12 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB13 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB14 ', 'GCHPchem',\n\ - 'SpeciesConc_OCOB15 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL01 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL02 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL03 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL04 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL05 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL06 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL07 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL08 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL09 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL10 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL11 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL12 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL13 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL14 ', 'GCHPchem',\n\ - 'SpeciesConc_OCIL15 ', 'GCHPchem',\n\ - 'SpeciesConc_SS01 ', 'GCHPchem',\n\ - 'SpeciesConc_SS02 ', 'GCHPchem',\n\ - 'SpeciesConc_SS03 ', 'GCHPchem',\n\ - 'SpeciesConc_SS04 ', 'GCHPchem',\n\ - 'SpeciesConc_SS05 ', 'GCHPchem',\n\ - 'SpeciesConc_SS06 ', 'GCHPchem',\n\ - 'SpeciesConc_SS07 ', 'GCHPchem',\n\ - 'SpeciesConc_SS08 ', 'GCHPchem',\n\ - 'SpeciesConc_SS09 ', 'GCHPchem',\n\ - 'SpeciesConc_SS10 ', 'GCHPchem',\n\ - 'SpeciesConc_SS11 ', 'GCHPchem',\n\ - 'SpeciesConc_SS12 ', 'GCHPchem',\n\ - 'SpeciesConc_SS13 ', 'GCHPchem',\n\ - 'SpeciesConc_SS14 ', 'GCHPchem',\n\ - 'SpeciesConc_SS15 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST01 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST02 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST03 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST04 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST05 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST06 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST07 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST08 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST09 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST10 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST11 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST12 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST13 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST14 ', 'GCHPchem',\n\ - 'SpeciesConc_DUST15 ', 'GCHPchem',\n\ - 'SpeciesConc_AW01 ', 'GCHPchem',\n\ - 'SpeciesConc_AW02 ', 'GCHPchem',\n\ - 'SpeciesConc_AW03 ', 'GCHPchem',\n\ - 'SpeciesConc_AW04 ', 'GCHPchem',\n\ - 'SpeciesConc_AW05 ', 'GCHPchem',\n\ - 'SpeciesConc_AW06 ', 'GCHPchem',\n\ - 'SpeciesConc_AW07 ', 'GCHPchem',\n\ - 'SpeciesConc_AW08 ', 'GCHPchem',\n\ - 'SpeciesConc_AW09 ', 'GCHPchem',\n\ - 'SpeciesConc_AW10 ', 'GCHPchem',\n\ - 'SpeciesConc_AW11 ', 'GCHPchem',\n\ - 'SpeciesConc_AW12 ', 'GCHPchem',\n\ - 'SpeciesConc_AW13 ', 'GCHPchem',\n\ - 'SpeciesConc_AW14 ', 'GCHPchem',\n\ - 'SpeciesConc_AW15 ', 'GCHPchem'," + prev_line="'SpeciesConcVV_ACET ', 'GCHPchem'," + new_line=" 'SpeciesConcVV_NK01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_NK15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SF15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECOB15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_ECIL15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCOB15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_OCIL15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_SS15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_DUST15 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW01 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW02 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW03 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW04 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW05 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW06 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW07 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW08 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW09 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW10 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW11 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW12 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW13 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW14 ', 'GCHPchem',\n\ + 'SpeciesConcVV_AW15 ', 'GCHPchem'," insert_text "${prev_line}" "${new_line}" HISTORY.rc From f4ed0691ca914067dcc6d66e6fe050853ecfba1a Mon Sep 17 00:00:00 2001 From: Melissa Sulprizio Date: Tue, 30 Jan 2024 14:03:44 -0500 Subject: [PATCH 4/5] Update restart file path for GCHP TOMAS simulations A spun-up sample restart file has been provided for TOMAS simulations in GCHP courtesy of Betty Croft. The GCHP/createRunDir.sh script has been updated so that GCHP TOMAS simulations point to the updated file in GEOSCHEM_RESTARTS/v2024-01. Signed-off-by: Melissa Sulprizio --- CHANGELOG.md | 1 + run/GCClassic/createRunDir.sh | 2 +- run/GCHP/createRunDir.sh | 12 +++++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8026d8c4c..57e6c029f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Increse requested time limits in GCHP integration tests (compile 2h30m, run 5h) - Changed CO2 concentration used in RRTMG to be modifiable in geoschem_config.yml - Changed water vapor used in RRTMG to match to tracer field at all altitudes +- Updated restart file path for GCHP TOMAS simulations ### Fixed - Fixed bug in stratospheric aerosols optical depths passed to Fast-JX diff --git a/run/GCClassic/createRunDir.sh b/run/GCClassic/createRunDir.sh index fa5cc66ef..6293da3a1 100755 --- a/run/GCClassic/createRunDir.sh +++ b/run/GCClassic/createRunDir.sh @@ -1045,7 +1045,7 @@ fi #-------------------------------------------------------------------- # Copy sample restart file to run directory -# Bash functions used here are from ../shared/setupForRestarts.sh +# Bash functions used here are from ./setupForRestarts.sh #-------------------------------------------------------------------- # Parse the download_data.yml file, which returns variable declarations diff --git a/run/GCHP/createRunDir.sh b/run/GCHP/createRunDir.sh index 6d30c536d..8c19e2833 100755 --- a/run/GCHP/createRunDir.sh +++ b/run/GCHP/createRunDir.sh @@ -651,9 +651,15 @@ ln -s ${wrapperdir}/run/runScriptSamples ${rundir}/runScriptSamples #-------------------------------------------------------------------- restarts=${GC_DATA_ROOT}/GEOSCHEM_RESTARTS if [[ "x${sim_name}" == "xfullchem" ]]; then - start_date='20190701' - restart_dir='GC_14.2.0' - restart_name="${sim_name}" + if [[ ${sim_extra_option} =~ "TOMAS" ]]; then + start_date='20190701' + restart_dir='v2024-01' + restart_name="${sim_extra_option}" + else + start_date='20190701' + restart_dir='GC_14.2.0' + restart_name="${sim_name}" + fi elif [[ "x${sim_name}" == "xtagO3" ]]; then # NOTE: we use the fullchem restart file for tagO3 start_date='20190701' From ca6545718e9dd476259447768f3ada1b116181b6 Mon Sep 17 00:00:00 2001 From: Melissa Sulprizio Date: Mon, 5 Feb 2024 17:01:12 -0500 Subject: [PATCH 5/5] Fix precision in code modified by TOMAS updates Signed-off-by: Melissa Sulprizio --- GeosCore/sulfate_mod.F90 | 8 ++++---- GeosCore/tomas_mod.F90 | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/GeosCore/sulfate_mod.F90 b/GeosCore/sulfate_mod.F90 index fa3b660fc..1844d4520 100644 --- a/GeosCore/sulfate_mod.F90 +++ b/GeosCore/sulfate_mod.F90 @@ -1049,13 +1049,13 @@ SUBROUTINE SRCSF30( Input_Opt, State_Grid, State_Met, State_Chm, TC2, RC ) ! comment out if shut off subgridcoag bc,14/12/23 ! Define subgrid coagulation timescale (win, 10/28/08) !IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN - ! TSCALE = 10.*3600. ! 10 hours + ! TSCALE = 10.0_fp*3600.0_fp ! 10 hours !ELSE IF ( TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN - TSCALE = 5.*3600. + TSCALE = 5.0_fp*3600.0_fp !!ELSE IF ( TRIM(State_Grid%GridRes) == '0.5x0.625' ) THEN - ! TSCALE = 1.*3600. + ! TSCALE = 1.0_fp*3600.0_fp !ELSE IF ( TRIM(State_Grid%GridRes) == '0.25x0.3125' ) THEN - ! TSCALE = 0.5*3600. + ! TSCALE = 0.5_fp*3600.0_fp !ENDIF ! Point to species array diff --git a/GeosCore/tomas_mod.F90 b/GeosCore/tomas_mod.F90 index ceccd65e6..fa309a6b5 100644 --- a/GeosCore/tomas_mod.F90 +++ b/GeosCore/tomas_mod.F90 @@ -524,7 +524,7 @@ SUBROUTINE AEROPHYS( Input_Opt, State_Chm, State_Grid, State_Met, & printneg = .FALSE. ! determine ion rate - ionrate = 10. ! set as constant now !!jrp, bc 18/12/23 and comment out below + ionrate = 10.0_fp ! set as constant now !!jrp, bc 18/12/23 and comment out below ! IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN ! @@ -6510,13 +6510,13 @@ SUBROUTINE INIT_TOMAS( Input_Opt, State_Chm, State_Grid, RC ) ! comment out if shut off subgridcoag 14/12/23, bc ! Define subgrid coagulation timescale (win, 10/28/08) !IF ( TRIM(State_Grid%GridRes) == '4.0x5.0' ) THEN - ! SGCTSCALE = 10.*3600. ! 10 hours + ! SGCTSCALE = 10.0_fp*3600.0_fp ! 10 hours !ELSE IF ( TRIM(State_Grid%GridRes) == '2.0x2.5' ) THEN - ! SGCTSCALE = 5.*3600. + ! SGCTSCALE = 5.0_fp*3600.0_fp !ELSE IF ( TRIM(State_Grid%GridRes) == '0.5x0.625' ) THEN - ! SGCTSCALE = 1.*3600. + ! SGCTSCALE = 1.0_fp*3600.0_fp !ELSE IF ( TRIM(State_Grid%GridRes) == '0.25x0.3125' ) THEN - ! SGCTSCALE = 0.5*3600. + ! SGCTSCALE = 0.50_fp*3600.0_fp !ENDIF #if defined(TOMAS40)