! $Id: JVALUE.f,v 1.1 2009/09/16 14:06:47 bmy Exp $ SUBROUTINE JVALUE( SA ) !----------------------------------------------------------------------- c Calculate the actinic flux at each level for the current SZA value. ! quit when SZA > 98.0 deg ==> tangent height = 63 km ! or 99. 80 km !----------------------------------------------------------------------- ! Add the following input variables for CTM interface (bmy, 9/13/99) ! ! Variable Type Dimensn Units Description ! -------- ---- ------- ----- ----------- ! SA dble - - Surface Albedo !----------------------------------------------------------------------- c c AVGF Attenuation of beam at each level for each wavelength c FFF Actinic flux at each desired level c WAVE Effective wavelength of each wavelength bin c XQO2 Absorption cross-section of O2 c XQO3 Absorption cross-section of O3 c !----------------------------------------------------------------------- # include "define.h" USE CMN_FJ_MOD, ONLY : IPAR, JPAR, LPAR, JPMAX, JPPJ, JPNL USE JV_CMN_MOD IMPLICIT NONE !=============== INPUT PARAMETERS ====================================== REAL*8, INTENT(IN) :: SA !=============== LOCAL VARIABLES ======================================= integer j, k real*8 wave, xseco3, xseco2,ZFLUXX,DIRRAD,FLTOT,FJBOTT,DIFRAD real*8 AVGF(lpar),XQO3(NB),XQO2(NB), DIRNOX, DIFNOX real*8 DIRRAD1,DIRRAD2,DIRRAD3,DIRRAD4,DIRRAD5,DIRRAD6,DIRRAD7 real*8 DIFRAD1,DIFRAD2,DIFRAD3,DIFRAD4,DIFRAD5,DIFRAD6,DIFRAD7 ! do J=1,jpnl do K=NW1,NW2 FFF(K,J) = 0.d0 enddo enddo c c---SZA check c write(6,1000) SZA, RFLECT, (OD(nslon,nslat,j),j=1,lpar) if(SZA.gt.szamax) GOTO 99 c !---Calculate spherical weighting functions CALL SPHERE c !---Loop over all wavelength bins do K=NW1,NW2 WAVE = WL(K) do J=1,NB XQO3(J) = XSECO3(K,dble(TJ(J))) enddo do J=1,NB XQO2(J) = XSECO2(K,dble(TJ(J))) enddo !----------------------------------------- CALL OPMIE(K,WAVE,XQO2,XQO3,AVGF) !----------------------------------------- C-----------------------------------------mcz 2/20/2011 (below) (updated 4/17/2012) do J=1,jpnl !if (J .LT. 2) then !FFF(K,J) = a0(1) * (FFF(K,J) + FL(K)*AVGF(J)) !else FFF(K,J) = FFF(K,J) + FL(K)*AVGF(J) !write(6,*), 'K,J,FFF', K, J, FFF(K,J) !write(6,*), 'FL1,FL2,FL3,FL4', FL(1), FL(2), FL(3), FL(4) !endif enddo enddo FLTOT = FL(1) + FL(2) + FL(3) + FL(4) + FL(5) + FL(6) + FL(7) !write(6,*), 'FL(1)', FL(1) !write(6,*), 'FL(2)', FL(2) !write(6,*), 'FL(3)', FL(3) !write(6,*), 'FL(4)', FL(4) !write(6,*), 'FL(5)', FL(5) DIRRAD = ZFLUXX*FLTOT DIFRAD = FJBOTT*FLTOT DIRRAD1 = ZFLUXX*FL(1) !write(6,*), 'DIRRAD1', DIRRAD1 !write(200,*), 'DIRRAD1', DIRRAD1 DIRRAD2 = ZFLUXX*FL(2) !write(6,*), 'DIRRAD2', DIRRAD2 !write(200,*), 'DIRRAD2', DIRRAD2 DIRRAD3 = ZFLUXX*FL(3) !write(6,*), 'DIRRAD3', DIRRAD3 !write(200,*), 'DIRRAD3', DIRRAD3 DIRRAD4 = ZFLUXX*FL(4) !write(6,*), 'DIRRAD4', DIRRAD4 !write(200,*), 'DIRRAD4', DIRRAD4 DIRRAD5 = ZFLUXX*FL(5) !write(6,*), 'DIRRAD5', DIRRAD5 !write(200,*), 'DIRRAD5', DIRRAD5 DIRRAD6 = ZFLUXX*FL(6) !write(6,*), 'DIRRAD6', DIRRAD6 !write(200,*), 'DIRRAD6', DIRRAD6 DIRRAD7 = ZFLUXX*FL(7) !write(6,*), 'DIRRAD7', DIRRAD7 !write(200,*), 'DIRRAD7', DIRRAD7 DIRNOX = ZFLUXX * (FL(2) + FL(3) + FL(4) + FL(5)) !write(6,*), 'DIRNOX', DIRNOX DIFRAD1 = FJBOTT*FL(1) !write(6,*), 'DIFRAD1', DIFRAD1 !write(200,*), 'DIFRAD1', DIFRAD1 DIFRAD2 = FJBOTT*FL(2) !write(6,*), 'DIFRAD2', DIFRAD2 !write(200,*), 'DIFRAD2', DIFRAD2 DIFRAD3 = FJBOTT*FL(3) !write(6,*), 'DIFRAD3', DIFRAD3 !write(200,*), 'DIFRAD3', DIFRAD3 DIFRAD4 = FJBOTT*FL(4) !write(6,*), 'DIFRAD4', DIFRAD4 !write(200,*), 'DIFRAD4', DIFRAD4 DIFRAD5 = FJBOTT*FL(5) !write(6,*), 'DIFRAD5', DIFRAD5 !write(200,*), 'DIFRAD5', DIFRAD5 DIFRAD6 = FJBOTT*FL(6) !write(6,*), 'DIFRAD6', DIFRAD6 !write(200,*), 'DIFRAD6', DIFRAD6 DIFRAD7 = FJBOTT*FL(7) !write(6,*), 'DIFRAD7', DIFRAD7 !write(200,*), 'DIFRAD7', DIFRAD7 DIFNOX = FJBOTT * (FL(2) + FL(3) + FL(4) + FL(5)) !write(6,*), 'DIFNOX', DIFNOX !write(6,*), 'ZFLUX', ZFLUX !write(6,*), 'ZFLUXX', ZFLUXX !write(6,*), 'FJBOTT', FJBOTT !write(6,*), 'DIRRAD', DIRRAD !write(6,*), 'DIFRAD', DIFRAD c---------------------------------------mcz 2/20/2011(above) (updated 4/17/2012) c 99 continue 1000 format(' SZA=',f6.1,' Reflectvty=',f6.3,' OD=',10(1pe10.3)) return end