#include "dims.h" SUBROUTINE AMIEPA (VELNS,VELEW,POTEN,CUSP,ALFA1,ALFA2, + FLUX1,FLUX2,DRIZL,WION) use cons_module,only: imax use amie_module,only: ekvg, efxg, crad, phida implicit none ! gl 15/07/2002 - modified by taking out the unused AMIE parameters ! like VELNS, VELEW, POTEN, WION C C GET ION VELOCITIES, POTENTIAL AND AURORAL OVAL FROM AMIE RESULTS C #include "params.h" #include "cflowv3.h" #include "phys.h" #include "trgm.h" #include "ovalr.h" ! ! Local: real :: VELNS(ZIMX),VELEW(ZIMX),POTEN(ZIMX),WION(ZIMX), ! | ALFA(ZIMXP,2),FLUX(ZIMXP,2),DRIZL(ZIMX),CUSP(ZIMX),DLAT(ZIMX), ! | DLON(ZIMX) | ALFA1(ZIMX),ALFA2(ZIMX),FLUX1(ZIMX),FLUX2(ZIMX), | DRIZL(ZIMX),CUSP(ZIMX),DLAT(ZIMX),DLON(ZIMX) integer :: ih,i real :: s5,s10,s20,pi,f1,f2,seca s5 = 0.08726646 s10 = 0.174532925 s20 = 0.34906585 pi = 3.14159265358979 C IH = 1 IF (J .GE. ZJMX/2) IH = 2 C GET AURORAL OVAL DO I=1,IMAX DLAT(I) = RLATM(I+2,J) DLON(I) = RLONM(I+2,J)-DLONS(J) ENDDO C CALCULATE COLAT AND ALON FOR CUSP AND DRIZZLE C VALUES IN OVALPOS WILL ALREADY BE DETERMINED FROM CALL TO FLOWXX FOR C S. H. DO I=1,IMAX SINLAT(I) = SIN(ABS(DLAT(I))) COSLAT(I) = COS(DLAT(I)) SINLON(I) = SIN(DLON(I)) COSLON(I) = COS(DLON(I)) COLAT(I) = ACOS( SINLAT(I) ) ALON(I) = AMOD(ATAN2(+SINLON(I)*COSLAT(I),COSLAT(I)*COSLON(I)) | +3.*PI,2.*PI) - PI ENDDO C SUBSTITUTE IN AMIE VALUES C POTKV IN KV, POTEN IN V C VIXYZA IN M/S, VELEW,NS,WION IN CM/S C EKEVA (2*ALFA) IN KEV, ALFA IN KEV C EFLXA IN mW/M2, NFLUX ASSUMES IT IS IN ERG/CM2-S DO I=1,IMAX ! print *,'AMIEPA: i,j,ekvg(i,j),efxg(i,j)=',i,j,ekvg(i,j),efxg(i,j) if (ekvg(i,j) .lt. 1.0) then ! write(6,"('amiepa: negative mean energy at i=',i3, ! | 'j=',i3,e12.4)") i,j,ekvg(i,j) ekvg(i,j) = 1.0 endif ALFA1(I) = ekvg(I,J)/2. ALFA2(I) = ALFA20 CUSP(I)=(EXP(-((CRAD(IH)-COLAT(I))/S5)**2)+EXP(-((PI-CRAD(IH)- | COLAT(I))/S5)**2))*EXP(-(ATAN2(SIN(ALON(I)-PHIDA(IH)), | COS(ALON(I) - PHIDA(IH)))/S20)**2) DRIZL(I) = EXP(-(( COLAT(I)-CRAD(IH) + ABS(COLAT(I)-CRAD(IH)) ) | / S10)**2) FLUX1(I) = AMAX1(efxg(I,J)/(2.*ALFA1(I) * 1.602E-9),1.E-20) WK1(I) = COS(ATAN2(SIN(ALON(I)-RROTE),COS(ALON(I)-RROTE))) WK2(I) = H0*(1.-RH*COS(ATAN2(SIN(ALON(I)-RROTH),COS(ALON(I)- | RROTH))) ) WK3(I) = COLAT(I) - CRAD(IH) FLUX2(I) = E20*(1.-RE2*WK1(I)) * EXP(-(WK3(I)/WK2(I))**2) | / (2. * ALFA20 * 1.602E-9) ENDDO ! print *,'End of amiepa >>>' RETURN END C