Back to home page

darwin3

 
 

    


File indexing completed on 2024-12-17 18:39:14 UTC

view on githubraw file Latest commit 27f9df09 on 2018-02-19 15:43:37 UTC
27f9df093b Oliv*0001 #include "SUN_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C     !ROUTINE: SUN_INIT_VARIA
                0005 
                0006 C     !INTERFACE: ======================================================
                0007       SUBROUTINE SUN_INIT_VARIA( myThid )
                0008 
                0009 C     !DESCRIPTION:
                0010 C     Compute local east, north, and vertical vectors
                0011 C
                0012 C     !USES: ===========================================================
                0013       IMPLICIT NONE
                0014 #include "SIZE.h"
                0015 #include "EEPARAMS.h"
                0016 #include "PARAMS.h"
                0017 #include "GRID.h"
                0018 #include "SUN_FIELDS.h"
                0019 
                0020 C     !INPUT PARAMETERS: ===============================================
                0021       INTEGER myThid
                0022 CEOP
                0023 
                0024 #ifdef ALLOW_SUN
                0025 
                0026 C     !LOCAL VARIABLES: ================================================
                0027       INTEGER i,j,bi,bj
                0028       _RL rlon,cosx,sinx,rlat,cosy,siny,upxy
                0029 
                0030       DO bj = myByLo(myThid), myByHi(myThid)
                0031        DO bi = myBxLo(myThid), myBxHi(myThid)
                0032         DO j=1-OLy,sNy+OLy
                0033          DO i=1-OLx,sNx+OLx
                0034 
                0035 c  Convert geodetic lat/lon to Earth-centered, earth-fixed (ECEF)
                0036 c  vector (geodetic unit vector)
                0037           rlon = XC(i,j,bi,bj)*deg2rad
                0038           cosx = COS(rlon)
                0039           sinx = SIN(rlon)
                0040           rlat = YC(i,j,bi,bj)*deg2rad
                0041           cosy = COS(rlat)
                0042           siny = SIN(rlat)
                0043 
                0044 c  Compute the local up, East and North unit vectors
                0045           SUN_up(i,j,bi,bj,1) = cosy*cosx
                0046           SUN_up(i,j,bi,bj,2) = cosy*sinx
                0047           SUN_up(i,j,bi,bj,3) = siny
                0048           upxy = SQRT(SUN_up(i,j,bi,bj,1)*SUN_up(i,j,bi,bj,1)
                0049      &               +SUN_up(i,j,bi,bj,2)*SUN_up(i,j,bi,bj,2))
                0050           SUN_ea(i,j,bi,bj,1) = -SUN_up(i,j,bi,bj,2)/upxy
                0051           SUN_ea(i,j,bi,bj,2) = SUN_up(i,j,bi,bj,1)/upxy
                0052           SUN_no(i,j,bi,bj,1) = SUN_up(i,j,bi,bj,2)*SUN_ea(i,j,bi,bj,3)
                0053      &                        - SUN_up(i,j,bi,bj,3)*SUN_ea(i,j,bi,bj,2)
                0054           SUN_no(i,j,bi,bj,2) = SUN_up(i,j,bi,bj,3)*SUN_ea(i,j,bi,bj,1)
                0055      &                        - SUN_up(i,j,bi,bj,1)*SUN_ea(i,j,bi,bj,3)
                0056           SUN_no(i,j,bi,bj,3) = SUN_up(i,j,bi,bj,1)*SUN_ea(i,j,bi,bj,2)
                0057      &                        - SUN_up(i,j,bi,bj,2)*SUN_ea(i,j,bi,bj,1)
                0058 
                0059          ENDDO
                0060         ENDDO
                0061        ENDDO
                0062       ENDDO
                0063 
                0064 #endif
                0065 
                0066       RETURN
                0067       END