Add files via upload
This commit is contained in:
111
code/rdlai.f
Normal file
111
code/rdlai.f
Normal file
@ -0,0 +1,111 @@
|
||||
! $Id: rdlai.f,v 1.1 2009/06/09 21:51:54 daven Exp $
|
||||
SUBROUTINE RDLAI( JDAY, MONTH )
|
||||
|
||||
C**********************************************************************
|
||||
C *
|
||||
C HARVARD ATMOSPHERIC CHEMISTRY MODELING GROUP *
|
||||
C MODULE FOR SOIL NOx EMISSIONS *
|
||||
C by Yuhang Wang, Gerry Gardner and Prof. Daniel Jacob *
|
||||
C (Release V2.1) *
|
||||
C *
|
||||
C Contact person: Bob Yantosca (bmy@io.harvard.edu) *
|
||||
C *
|
||||
C**********************************************************************
|
||||
C Be sure to force double precision with the DBLE function *
|
||||
C and the "D" exponent, wherever necessary. (bmy, 10/6/99) *
|
||||
C**********************************************************************
|
||||
C Replace IMX with IGLOB and JMX with JGLOB (bmy, 6/25/02) *
|
||||
C**********************************************************************
|
||||
|
||||
! References to F90 modules (bmy, 2/11/03)
|
||||
USE GRID_MOD, ONLY : GET_XOFFSET, GET_YOFFSET
|
||||
|
||||
IMPLICIT NONE
|
||||
|
||||
C**********************************************************************
|
||||
C update daily the LAIs (Leaf Area Index) *
|
||||
C**********************************************************************
|
||||
C IREG = Number of landtypes in grid square (I,J) *
|
||||
C XLAI = Leaf Area Index of land type element K (I,J,K) *
|
||||
C current month *
|
||||
C XLAI2 = Leaf Area Index of land type element K (I,J,K) *
|
||||
C following month *
|
||||
C XYLAI = Leaf Area Index of land type element K (IJLOOP,K) *
|
||||
C**********************************************************************
|
||||
|
||||
# include "CMN_SIZE"
|
||||
# include "CMN_DEP"
|
||||
# include "CMN_VEL"
|
||||
|
||||
INTEGER STARTDAY(13),ISAVE
|
||||
DATA STARTDAY /15,45,74,105,135,166,196,227,258,288,319,349,380/
|
||||
DATA ISAVE /0/
|
||||
SAVE ISAVE
|
||||
|
||||
INTEGER IMUL
|
||||
INTEGER I,J,K,IJLOOP,MM,ITD
|
||||
INTEGER JDAY,MONTH,IREF,JREF
|
||||
|
||||
! Need to add I0, J0 as local variables (bmy, 2/11/03)
|
||||
INTEGER I0, J0
|
||||
|
||||
! Get nested-grid offsets (bmy, 2/11/03)
|
||||
I0 = GET_XOFFSET()
|
||||
J0 = GET_YOFFSET()
|
||||
|
||||
IF (ISAVE.EQ.0) THEN
|
||||
ISAVE=1
|
||||
CALL FINDMON(JDAY,MONTH,MM,STARTDAY)
|
||||
IF (JDAY.LT.STARTDAY(1)) THEN
|
||||
IMUL=365-STARTDAY(12)+JDAY
|
||||
ITD = 31
|
||||
ELSE
|
||||
IMUL=JDAY-STARTDAY(MM)
|
||||
ITD = STARTDAY(MM+1) - STARTDAY(MM)
|
||||
END IF
|
||||
CALL READLAI(MM)
|
||||
DO J=1,JGLOB
|
||||
DO I=1,IGLOB
|
||||
DO K=1,IREG(I,J)
|
||||
XLAI2(I,J,K) = (XLAI2(I,J,K)-XLAI(I,J,K))/(DBLE(ITD))
|
||||
XLAI(I,J,K)=XLAI(I,J,K)+ XLAI2(I,J,K) * DBLE(IMUL)
|
||||
END DO
|
||||
END DO
|
||||
END DO
|
||||
ELSE
|
||||
CALL FINDMON(JDAY,MONTH,MM,STARTDAY)
|
||||
IF (JDAY.EQ.STARTDAY(MM)) THEN
|
||||
ITD = STARTDAY(MM+1) - STARTDAY(MM)
|
||||
CALL READLAI(MM)
|
||||
DO J=1,JGLOB
|
||||
DO I=1,IGLOB
|
||||
DO K=1,IREG(I,J)
|
||||
XLAI2(I,J,K) = (XLAI2(I,J,K)-XLAI(I,J,K))/(DBLE(ITD))
|
||||
END DO
|
||||
END DO
|
||||
END DO
|
||||
ELSE
|
||||
DO J=1,JGLOB
|
||||
DO I=1,IGLOB
|
||||
DO K=1,IREG(I,J)
|
||||
XLAI(I,J,K)=XLAI(I,J,K)+ XLAI2(I,J,K)
|
||||
END DO
|
||||
END DO
|
||||
END DO
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IJLOOP = 0
|
||||
DO J = 1, JJPAR
|
||||
JREF = J + J0
|
||||
DO I = 1, IIPAR
|
||||
IJLOOP = IJLOOP + 1
|
||||
DO K=1,IJREG(IJLOOP)
|
||||
IREF = I + I0
|
||||
XYLAI(IJLOOP,K)=XLAI(IREF,JREF,K)
|
||||
END DO
|
||||
END DO
|
||||
END DO
|
||||
|
||||
! Return to calling program
|
||||
END SUBROUTINE RDLAI
|
Reference in New Issue
Block a user