!-------------------------------------- LICENCE BEGIN ------------------------------------ !Environment Canada - Atmospheric Science and Technology License/Disclaimer, ! version 3; Last Modified: May 7, 2008. !This is free but copyrighted software; you can use/redistribute/modify it under the terms !of the Environment Canada - Atmospheric Science and Technology License/Disclaimer !version 3 or (at your option) any later version that should be found at: !http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html ! !This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; !without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. !See the above mentioned License/Disclaimer for more details. !You should have received a copy of the License/Disclaimer along with this software; !if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec), !CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca !-------------------------------------- LICENCE END -------------------------------------- ***s/p litblrad2 *subroutine litblrad2 (fichier,rdradf_d,mode) 1,1 * #include "impnone.cdk"
#include "phy_macros_f.h"
* character *(*) fichier integer mode external rdradf_d * *Author * B. Bilodeau (april 1994) - from lirg123 * *Revision * * 001 B. Dugas (Aug 97) - Redefine IUNIT for FORTRAN file * 002 M. Desgagne (Oct 98) - call back to rdradf_d (from dynamics) * 003 B. Bilodeau (Jan 01) - remove call to ozpak * 004 B. Bilodeau (May 03) - IBM conversion * - invert dimension of some radiation tables in order to * reduce the cache flooding in radir6 * *Object * to read the radiation table from file (either unformatted * fortran binary file or RPN standard file) for infra-red * radiation calculation * *Arguments * * - input - * fichier name of the radiation table file * rdradf_d call back routine from the dynamics to manage the file * * ** * #include "radpnt.cdk"
* #include "consphy.cdk"
* #include "radparam.cdk"
* #include "ozopnt.cdk"
* #include "raddata.cdk"
* ************************************************************************ * AUTOMATIC ARRAYS ************************************************************************ * AUTOMATIC ( BCNINV , REAL , (NTT, NCO2 ) ) AUTOMATIC ( DBCNINV , REAL , (NTT, NCO2 ) ) AUTOMATIC ( TH2OINV , REAL , (MXX, NCO2 ) ) AUTOMATIC ( YG3INV , REAL , (MXX, NCX, NCO2) ) * ************************************************************************ * integer i,j,k,ij,indice,long external rd_radtab * * calcul des pointeurs qui decoupent le champ g call pntg123
* call rdradf_d (fichier, rd_radtab, 'IRTAB', mode) * * inverser les dimensions de bcn, dbcn, th2o et yg3 pour * optimiser l'utilisation de la cache * do j=1,ntt do i=1,nco2 ij = (j-1)*nco2 + i - 1 bcninv (j,i) = g(bcn +ij) dbcninv(j,i) = g(dbcn+ij) end do end do * do j=1,mxx do i=1,nco2 ij = (j-1)*nco2 + i - 1 th2oinv(j,i) = g(th2o+ij) end do end do * do k=1,ncx do j=1,mxx do i=1,nco2 ij = (k-1)*mxx*nco2 + (j-1)*nco2 + i - 1 yg3inv(j,k,i) = g(yg3+ij) end do end do end do * do i=1,ntt*nco2 g(bcn +i-1) = bcninv (i,1) g(dbcn+i-1) = dbcninv(i,1) end do * do i=1,mxx*nco2 g(th2o+i-1) = th2oinv(i,1) end do * do i=1,mxx*ncx*nco2 g(yg3+i-1) = yg3inv(i,1,1) end do * return end