Skip to content

Commit

Permalink
changes for LBLRTM v12.16 release
Browse files Browse the repository at this point in the history
  • Loading branch information
jrmascio committed Dec 13, 2023
1 parent 8d6bb0f commit afb7dd7
Show file tree
Hide file tree
Showing 7 changed files with 100 additions and 49 deletions.
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ LBLRTM uses the line parameters and [MT_CKD continuum](https://github.com/AER-RC

| LBLRTM Release | MT_CKD Release | Line File |
| :---: | :---: | :---: |
| [v12.15.1](https://github.com/AER-RC/LBLRTM/releases/tag/v12.15.1) | [4.1.1](https://github.com/AER-RC/MT_CKD/releases/tag/4.1.1) | [v3.8.1](https://zenodo.org/record/4019178/files/aer_v_3.8.1.tar.gz?download=1) |
| [v12.16](https://github.com/AER-RC/LBLRTM/releases/tag/v12.16) | [4.2](https://github.com/AER-RC/MT_CKD/releases/tag/4.2) | [v3.8.1](https://zenodo.org/record/4019178/files/aer_v_3.8.1.tar.gz?download=1) |

If any build or run issues occur, please [create an issue](https://github.com/AER-RC/LBLRTM/issues) or contact the [AER-RC Group](https://github.com/AER-RC).

Expand Down Expand Up @@ -65,19 +65,19 @@ git submodule update

in the `LBLRTM` directory.

Currently, the latest release is LBLRTM v12.15.1, and it is recommended that this be the version that users clone and checkout (rather than the `master` branch). To do this, one needs to simply checkout the `v12.15.1` tag:
Currently, the latest release is LBLRTM v12.16, and it is recommended that this be the version that users clone and checkout (rather than the `master` branch). To do this, one needs to simply checkout the `v12.16` tag:

```
git checkout tags/v12.15.1
git checkout tags/v12.16
```

No releases before v12.9 are available via GitHub, but they can be requested by contacting the [AER-RC Group](https://github.com/AER-RC). For information on previous releases, please visit the [What's New Wiki page](https://github.com/AER-RC/LBLRTM/wiki/What's-New).

Instead of cloning, users can also download an LBLRTM [tarball](https://github.com/AER-RC/LBLRTM/archive/v12.15.1.zip) and unpack it:
Instead of cloning, users can also download an LBLRTM [tarball](https://github.com/AER-RC/LBLRTM/archive/v12.16.zip) and unpack it:

```
tar xvf lblrtm_v12.15.1.tar.gz
mv LBLRTM-12.15.1/ lblrtm
tar xvf lblrtm_v12.16.tar.gz
mv LBLRTM-12.16/ lblrtm
```

Though not necessary, the move to `lblrtm` is for consistency with previous release packages and the associated documentation.
Expand Down Expand Up @@ -246,7 +246,7 @@ Unformatted optical depth files can be requested in the LBLRTM using options spe

# Tests <a name="tests"></a>

As of LBLRTM v12.10, a [run example package](https://github.com/AER-RC/LBLRTM/releases/tag/v12.15/lblrtm_v12.15.examples.tar) is provided separately from the code repository. It can be used to validate building and running of the model for select atmospheric specifications and model configurations. See `README.setup` in top level of the package for further direction.
As of LBLRTM v12.10, a [run example package](https://github.com/AER-RC/LBLRTM/releases/tag/v12.16/lblrtm_v12.16.examples.tar) is provided separately from the code repository. It can be used to validate building and running of the model for select atmospheric specifications and model configurations. See `README.setup` in top level of the package for further direction.


# Frequently Asked Questions <a name="faq"></a>
Expand Down
2 changes: 1 addition & 1 deletion build/make_lblrtm
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ include makefile.common
# change those two variables from what is provided here, no need to set this variable.

PRODUCT = lblrtm
VERSION = v12.15.1
VERSION = v12.16

# Define makefile name
MAKEFILE=make_$(PRODUCT)
Expand Down
Binary file modified data/absco-ref_wv-mt-ckd.nc
Binary file not shown.
49 changes: 26 additions & 23 deletions src/contnm.f90
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ SUBROUTINE CONTNM(JRAD)
Use lblparams, ONLY: n_absrb, ipts, ipts2
USE phys_consts, ONLY: radcn2
USE mt_ckd_h2o
USE read_file

!
IMPLICIT REAL*8 (V)
Expand Down Expand Up @@ -49,10 +50,13 @@ SUBROUTINE CONTNM(JRAD)
& NLNGTH,KFILE,KPANEL,LINFIL,NFILE,IAFIL,IEXFIL, &
& NLTEFL,LNFIL4,LNGTH4

COMMON /CLOSURE/ FRGNX,mt_version
common /cntscl/ XSELF,XFRGN,XCO2C,XO3CN,XO2CN,XN2CN,XRAYL

real sh2o(n_absrb),fh2o(n_absrb)
logical radflag
character FRGNX
character*45 mt_version
!
!------------------------------------
! for analytic derivative calculation
Expand Down Expand Up @@ -284,8 +288,8 @@ SUBROUTINE CONTNM(JRAD)
radflag=.TRUE.
endif
call mt_ckd_h2o_absco(pave,tave,h2o_fac,v1abs,v2abs,dvabs,&
sh2o,fh2o,radflag=radflag)
sh2o,fh2o,FRGNX,radflag=radflag,mt_version=mt_version)

! Special code just for stand alone continuum

v1h = v1abs
Expand Down Expand Up @@ -319,8 +323,6 @@ SUBROUTINE CONTNM(JRAD)

endif



!=======================================================================

! ******** CARBON DIOXIDE ********
Expand Down Expand Up @@ -1024,15 +1026,15 @@ SUBROUTINE PRCNTM
COMMON /CNTPR/ CINFO1,CINFO2,cnam3,CINFO3,cnam4,CINFO4,CHEADING
!
!
CHARACTER*18 cnam3(9),cnam4(45)
CHARACTER*51 CINFO1(2,12),CINFO2(2,14),CINFO3(2,9),CINFO4(2,45)
CHARACTER*18 cnam3(9),cnam4(46)
CHARACTER*51 CINFO1(2,11),CINFO2(2,14),CINFO3(2,9),CINFO4(2,46)
CHARACTER*40 CHEADING(3,2)
!
WRITE (IPR,910) ((CINFO1(I,J),I=1,2),J=1,12)
WRITE (IPR,910) ((CINFO1(I,J),I=1,2),J=1,11)
WRITE (IPR,910) ((CINFO2(I,J),I=1,2),J=1,14)
WRITE (IPR,918) ((CHEADING(I,J),I=1,3),J=1,2)
WRITE (IPR,915) (cnam3(j),(CINFO3(I,J),I=1,2),J=1,9)
WRITE (IPR,915) (cnam4(j),(CINFO4(I,J),I=1,2),J=1,45)
WRITE (IPR,915) (cnam4(j),(CINFO4(I,J),I=1,2),J=1,46)

!
910 FORMAT (18x,2A51)
Expand All @@ -1048,8 +1050,8 @@ BLOCK DATA CNTINF
! Continuum information for output to TAPE6 in SUBROUTINE PRCNTM
!
COMMON /CNTPR/ CINFO1,CINFO2,CNAM3,CINFO3,CNAM4,CINFO4,CHEADING
CHARACTER*18 cnam3(9),cnam4(45)
CHARACTER*51 CINFO1(2,12),CINFO2(2,14),CINFO3(2,9),CINFO4(2,45)
CHARACTER*18 cnam3(9),cnam4(46)
CHARACTER*51 CINFO1(2,11),CINFO2(2,14),CINFO3(2,9),CINFO4(2,46)
CHARACTER*40 CHEADING(3,2)
!
DATA cnam3/ &
Expand Down Expand Up @@ -1107,24 +1109,23 @@ BLOCK DATA CNTINF
& ' " ', &
& ' mt_ckd_3.6 12.13', &
& ' mt_ckd_4.0 12.14', &
& ' mt_ckd_4.0.1 ', &
& ' mt_ckd_4.0.1 - ', &
& ' mt_ckd_4.1 12.15', &
& ' mt_ckd_4.1.1 '/
& ' mt_ckd_4.1.1 - ', &
& ' mt_ckd_4.2 12.16'/
! 123456789-123456789-123456789-123456789-123456789-1
!
DATA CINFO1/ &
& ' ', &
& ' ', &
& '*** CONTINUA mt_ckd_4.1.1 ', &
& ' ', &
& ' ', &
& ' Most recent significant change ', &
& ' H2O AIR 200 - 700 CM-1 ', &
& ' mt_ckd_4.1.1 - adjust for self FIR mod(Jan 2023)', &
& ' SELF 0 - 20000 CM-1 ', &
& ' mt_ckd_4.0 - revise code/data external(Sep 2022)', &
& ' SELF (T) 0 - 20000 CM-1 ', &
& ' mt_ckd_3.6 - power law T dependence (Jan 2022)', &
& ' H2O AIR 600 - 1400 CM-1 ', &
& ' mt_ckd_4.2 - adjustment & alt. frgn (Nov 2023)', &
& ' SELF 600 - 1400 CM-1 ', &
& ' mt_ckd_4.2 - adjustment in IR window (Nov 2023)', &
& ' SELF (T) 600 - 1400 CM-1 ', &
& ' mt_ckd_4.2 - adjustment in IR window (Nov 2023)', &
& ' CO2 AIR 0 - 10000 CM-1 ', &
& ' mt_ckd_2.5 - modify 2000-3000 cm-1 (Jan 2010)', &
& ' AIR (T) 2386 - 2434 CM-1 ', &
Expand Down Expand Up @@ -1236,7 +1237,7 @@ BLOCK DATA CNTINF
& 'ive result depends on starting wavenumber(Aug 2008)', &
& ' H2O: modification to self and foreign continuum (', &
& 'microwave and IR ARM data 0-600 cm-1) (Nov 2008)', &
& ' CO2: modification from 2000-3200 cm-1 (AERI(ARM), ', &
& ' CO2: modification from 2000-3200 cm-1 (AERI(ARM),', &
& 'IASI AIRS measurements); Temp. dep. added(Jan 2010)', &
& ' H2O: modification to self cont. 2000-3000 cm-1 ', &
& '(IASI data, fit to near-IR results of ', &
Expand Down Expand Up @@ -1271,15 +1272,17 @@ BLOCK DATA CNTINF
& ' Burch/Grynvak 1979, IR - Burch/Alt 1984 and Burch', &
& '/Grynvak; H2O foreign: MW - Payne et al. ', &
& ' Water vapor self continuum temperature dependence', &
& 'computed as a power law (Mlawer, Mascio) (Jun 2022)', &
& ' computed as a power law (Mlawer, Mascio)(Jun 2022)', &
& ' Water vapor continuum code/data now external (Cad', &
& 'y-Pereira/Mlawer) (Sep 2022)', &
& ' Added changes to handle negative frequencies for ', &
& 'water vapor continuum (Nov 2022)', &
& ' Revised foreign H2O continuum in far-IR to adjust', &
& 'for v3.5 changes to self (Mlawer, Mascio)(Dec 2022)', &
& ' Minor changes to MT_CKD_4.1 and MT_CKD_H2O_4.1 ', &
& ' (Jan 2023)'/
& ' (Jan 2023)', &
& ' IR window: Derived from AERI - Self, frgn, self T', &
& '-dep; alt. frgn; Mlawer/Mascio/Turner (Dec 2023)'/
!
end block data CNTINF
!
Expand Down
47 changes: 34 additions & 13 deletions src/lblrtm.f90
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,7 @@ PROGRAM LBLRTM
CHARACTER*18 HVRSOL
!
CHARACTER*1 CONE,CTWO,CTHREE,CFOUR,CA,CB,CC,CDOL,CPRCNT,CBLNK
CHARACTER*1 CMRG(2),CXIDA(80)
CHARACTER*1 IFRGNX,CMRG(2),CXIDA(80)
!

! PARAMETER (MXFSC=600, MXLAY=MXFSC+3,MXZMD=6000, &
Expand Down Expand Up @@ -449,7 +449,7 @@ PROGRAM LBLRTM

! -------------------------
!
DIMENSION IDCNTL(16),IFSDID(17),IWD(2),IWD2(2),IWD3(2),IWD4(2)
DIMENSION IDCNTL(17),IFSDID(17),IWD(2),IWD2(2),IWD3(2),IWD4(2)
!
COMMON /MANE/ P0,TEMP0,NLAYRS,DVXM,H2OSLF,WTOT,ALBAR,ADBAR,AVBAR, &
& AVFIX,LAYRFX,SECNT0,SAMPLE,DVSET,ALFAL0,AVMASS, &
Expand Down Expand Up @@ -500,6 +500,10 @@ PROGRAM LBLRTM
COMMON /RCNTRL/ ILNFLG
COMMON /FLFORM/ CFORM
COMMON /IODFLG/ DVOUT

COMMON /CLOSURE/ FRGNX
character*1 FRGNX

COMMON /CNTSCL/ XSELF,XFRGN,XCO2C,XO3CN,XO2CN,XN2CN,XRAYL
common /profil_scal/ nmol_scal,hmol_scal(64),xmol_scal(64), &
& n_xs_scal,h_xs_scal(64),x_xs_scal(64)
Expand Down Expand Up @@ -535,10 +539,10 @@ PROGRAM LBLRTM
& (IWD4(1),V1LD)
EQUIVALENCE (CXID,CXIDA(1))
!
DATA IDCNTL / ' HIRAC',' LBLF4',' CNTNM',' AERSL',' EMISS', &
& ' SCNFN',' FILTR',' PLOT',' TEST',' IATM', &
& ' IMRG',' ILAS',' OPDEP',' XSECT','ISOTPL' , &
& ' IBRD'/
DATA IDCNTL / ' HIRAC',' LBLF4',' FRGNX',' CNTNM',' AERSL', &
& ' EMISS',' SCNFN',' FILTR',' PLOT',' TEST', &
& ' IATM',' IMRG',' ILAS',' OPDEP',' XSECT', &
& 'ISOTPL',' IBRD'/
!
DATA CONE / '1'/,CTWO / '2'/,CTHREE / '3'/,CFOUR / '4'/, &
& CA / 'A'/,CB / 'B'/,CC / 'C'/
Expand Down Expand Up @@ -667,11 +671,20 @@ PROGRAM LBLRTM
CALL CPUTIM (TIME0)
WRITE (IPR,920) TIME0
!
READ(IRD,925,END=80) IHIRAC,ILBLF4,ICNTNM,IAERSL,IEMIT, &
READ(IRD,924,END=80) IHIRAC,ILBLF4,IFRGNX,ICNTNM,IAERSL,IEMIT, &
& ISCAN,IFILTR,IPLOT,ITEST,IATM,CMRG,ILAS, &
& IOD,IXSECT,IRAD,MPTS,NPTS,ISOTPL,IBRD
!


! Set flag for choosing foreign continuum:
! ----------------------------------------
! IFRGNX Value Continuum type
! 0 no closure
! 1 closure

FRGNX = IFRGNX


ICNTNM_sav = ICNTNM

! Set continuum flags as needed
Expand Down Expand Up @@ -818,8 +831,8 @@ PROGRAM LBLRTM
!
JRAD = 1
IF (IRAD.NE.0) JRAD = -1
WRITE (IPR,935) (IDCNTL(I),I=1,16)
WRITE (IPR,940) IHIRAC,ILBLF4,ICNTNM_sav,IAERSL,IEMIT,ISCAN, &
WRITE (IPR,935) (IDCNTL(I),I=1,17)
WRITE (IPR,939) IHIRAC,ILBLF4,FRGNX,ICNTNM_sav,IAERSL,IEMIT,ISCAN, &
& IFILTR,IPLOT,ITEST,IATM,IMRG,ILAS,IOD,IXSECT,ISOTPL,IBRD
!
IF (IHIRAC.EQ.4) THEN
Expand Down Expand Up @@ -1159,11 +1172,14 @@ PROGRAM LBLRTM
910 FORMAT (10A8)
915 FORMAT ('0',10A8,2X,2(1X,A8,1X))
920 FORMAT ('0 TIME ENTERING LBLRTM ',F15.4)
924 FORMAT (2(4X,I1),1X,A1,2X,I1,7(4X,I1),3X,2A1,3(4X,I1),I1,I4,1X, &
& I4,4X,I1,4x,I1,4x,I1)
925 FORMAT (10(4X,I1),3X,2A1,3(4X,I1),I1,I4,1X,I4,4X,I1,4x,I1,4x,I1)
!
930 FORMAT (I1)
935 FORMAT (16(A6,3X))
940 FORMAT (1X,I4,15I9)
935 FORMAT (17(A6,3X))
939 FORMAT (1X,I4,I9,8X,A1,14I9)
940 FORMAT (1X,I4,16I9)
!
950 FORMAT ('0 IEMIT=0 IS NOT IMPLEMENTED FOR NLTE ',/, &
& ' CHANGE IEMIT TO 1 OR IHIRAC TO 1 ')
Expand Down Expand Up @@ -6152,6 +6168,9 @@ SUBROUTINE OPDPTH (MPTS)
COMMON /CONVF/ CHI(251),RDVCHI,RECPI,ZSQBND,A3,B3,JCNVF4
!
COMMON /CNTSCL/ XSELF,XFRGN,XCO2C,XO3CN,XO2CN,XN2CN,XRAYL

COMMON /CLOSURE/ FRGNX,mt_version
character*45 mt_version
!
EQUIVALENCE (FSCDID(1),IHIRAC) , (FSCDID(2),ILBLF4), &
& (FSCDID(3),IXSCNT) , (FSCDID(4),IAERSL), &
Expand Down Expand Up @@ -6207,6 +6226,7 @@ SUBROUTINE OPDPTH (MPTS)
10 CONTINUE
CALL CONTNM (JRAD)
ENDIF
WRITE (IPR,917) mt_version
DVR4 = 0.
!
IF (ILBLF4.GE.1) THEN
Expand Down Expand Up @@ -6257,7 +6277,8 @@ SUBROUTINE OPDPTH (MPTS)
910 FORMAT ('0 VLAS ',F20.8,8X,'V1 RESET ',F12.5,8X,'V2 RESET ', &
& F12.5)
915 FORMAT ('0',10A8,2X,2(1X,A8,1X),/,'0 TIME ENTERING OPDPTH ', &
& F15.3)
& F15.3)
917 FORMAT ('Using MT_CKD',A38)
920 FORMAT ('0 IPTS4 FOR LINF4 = ',I5,3X,' DV FOR LINF4 = ',F10.5, &
& 5X,'BOUND FOR LINF4 =',F10.4)
925 FORMAT ('0 TIME LEAVING OPDPTH ',F15.3,' TOTAL FOR LAYER ', &
Expand Down
14 changes: 11 additions & 3 deletions src/mt_ckd_h2o_module.f90
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
! Description of output variables.
! self_absco - computed water vapor self continuum absorption coefficients (cm2/molec)
! for_absco - computed water vapor foreign continuum absorption coefficients (cm2/molec)
! for_closure_absco - same as above, but allows for closure (cm2/molec)

Module mt_ckd_h2o

Expand All @@ -65,14 +66,16 @@ Module mt_ckd_h2o

contains
subroutine mt_ckd_h2o_absco(p_atm,t_atm,h2o_vmr,wv1abs,wv2abs,dvabs,self_absco,for_absco, &
radflag)
FRGNX,radflag,mt_version)

! Inputs
real,dimension(:),intent(inout) :: self_absco,for_absco
real, intent(in) :: p_atm,t_atm,h2o_vmr
double precision, intent(in):: wv1abs,wv2abs
real, intent(in):: dvabs
character, intent(in):: FRGNX
logical,optional :: radflag
character(len=*),optional :: mt_version

! Local variables
integer :: ncoeff,nptabs,i1,i2,ist,lst,i
Expand All @@ -83,8 +86,9 @@ subroutine mt_ckd_h2o_absco(p_atm,t_atm,h2o_vmr,wv1abs,wv2abs,dvabs,self_absco,f
!real,dimension(:,:), allocatable,save :: coeff

real,dimension(:), allocatable :: sh2o_coeff,fh2o_coeff,rad
integer :: iret
integer :: iret,vlen
logical,save :: lread=.False.
character(len=85) :: version

if (.not. present(radflag)) then
radflag = .TRUE.
Expand All @@ -93,7 +97,11 @@ subroutine mt_ckd_h2o_absco(p_atm,t_atm,h2o_vmr,wv1abs,wv2abs,dvabs,self_absco,f
! Read in spectral range and coefficients
if (.not. lread) then
lread = .True.
if (getData(fDataname,dat)) STOP
if (getData(fDataname,FRGNX,dat,version)) STOP
if ( present(mt_version)) then
vlen = len(version)
mt_version=version(4:50)
endif

ncoeffin = size(dat%wavenumber)
if (allocated(wvn)) deallocate(wvn)
Expand Down
Loading

0 comments on commit afb7dd7

Please sign in to comment.