Index: trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/external/esmf_time_f90/ESMF_TimeMgr.inc
===================================================================
--- trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/external/esmf_time_f90/ESMF_TimeMgr.inc	(revision 2013)
+++ trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/external/esmf_time_f90/ESMF_TimeMgr.inc	(revision 2016)
@@ -35,4 +35,9 @@
 #define SECONDS_PER_MINUTE 100_ESMF_KIND_I8
 #define HOURS_PER_DAY 24_ESMF_KIND_I8
+!VENUS
+!#define SECONDS_PER_DAY 4212_ESMF_KIND_I8
+!#define SECONDS_PER_HOUR 117_ESMF_KIND_I8
+!#define SECONDS_PER_MINUTE 9_ESMF_KIND_I8
+!#define HOURS_PER_DAY 36_ESMF_KIND_I8
 
 ! Note that MAX_ALARMS must match MAX_WRF_ALARMS defined in 
Index: trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/frame/module_domain.F
===================================================================
--- trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/frame/module_domain.F	(revision 2013)
+++ trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/frame/module_domain.F	(revision 2016)
@@ -2092,4 +2092,9 @@
 !!!MARS
           grid%gmt=hr+real(mn)/37.+real(sec)/3700.+real(ms)/(1000*3700)
+!!!VENUS
+!        juldayv = MODULO(juldayv,2400.)
+!        grid%gmt=(((juldayv)/100.))+(hr+real(mn)/13.+real(sec)/117.+real(ms)/(1000*117))/420000.
+!        grid%gmt = MODULO(grid%gmt,24.)
+
         WRITE( wrf_err_message , * ) 'DEBUG domain_setgmtetc():  julyr,hr,mn,sec,ms,julday = ', &
                                      grid%julyr,hr,mn,sec,ms,grid%julday
Index: trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/share/module_date_time.F
===================================================================
--- trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/share/module_date_time.F	(revision 2013)
+++ trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/share/module_date_time.F	(revision 2016)
@@ -36,4 +36,6 @@
 !      DATA MMD/99,99,99,99,99,99,75/
       INTEGER, DIMENSION(12) :: mmd
+!****VENUS 
+      !INTEGER :: mmd
 !****MARS
       DATA MMD/61,66,66,65,60,54,50,46,47,47,51,56/  !NB: like the GCM
@@ -41,5 +43,6 @@
       CALL split_date_char ( date_str , ny , nm , nd , nh , ni , ns , nt )
       GMT=nh+FLOAT(ni)/37.+FLOAT(ns)/3700.
-
+!****VENUS
+       MMD=24
 !      MY1=MOD(ny,4)
 !      MY2=MOD(ny,100)
@@ -51,4 +54,10 @@
         JULDAY=JULDAY+MMD(MONSS)
       ENDDO
+
+!****VNEUS
+      !JULDAYV=MODULO(JULDAYV,2400.)
+      !GMT=((JULDAYV/100.))+(nh+FLOAT(ni)/13.+FLOAT(ns)/117.)/420000.
+      !GMT=MODULO(GMT,24.)
+
 ! on Mars, Julday is the number of elapsed sols (between 1 and 669)
     END SUBROUTINE get_julgmt
@@ -72,4 +81,10 @@
       DATA MMD/61,66,66,65,60,54,50,46,47,47,51,56/  
 !****MARS
+!****VENUS
+     INTEGER :: mmd
+
+     MMD=24
+!****
+
      CALL split_date_char ( current_date , ny , nm , nd , nh , ni , ns , nt )
      GMT=nh+FLOAT(ni)/37.+FLOAT(ns)/3700.
@@ -87,4 +102,10 @@
        JULDAY=JULDAY+MMD(MONSS)
      ENDDO
+
+!****VENUS
+     !JULDAYV=MODULO(JULDAYV,2400.)
+     !GMT=((JULDAYv/100.))+(nh+FLOAT(ni)/13.+FLOAT(ns)/117.)/420000.
+     !GMT=MODULO(GMT,24.)
+
 ! on Mars, Julday is the number of elapsed sols (between 1 and 669)
    END SUBROUTINE geth_julgmt
@@ -171,4 +192,5 @@
       INTEGER :: yrold, moold, dyold, hrold, miold, scold
       INTEGER :: mday(12), i, newdys, olddys
+!     INTEGER :: mday !VENUS
       LOGICAL :: npass, opass
       INTEGER :: isign
@@ -199,4 +221,5 @@
       mday(11) = 51
       mday(12) = 56
+!     maday=24 !VENUS
       
       !  Break down old hdate into parts
@@ -248,4 +271,5 @@
       
       IF ((monew.GT.12).or.(monew.LT.1)) THEN
+!      IF ((monew.GT.99).or.(monew.LT.1)) THEN !VENUS
          PRINT*, 'GETH_IDTS:  Month of NDATE = ', monew
          npass = .false.
@@ -255,4 +279,5 @@
       
       IF ((moold.GT.12).or.(moold.LT.1)) THEN
+!      IF ((moold.GT.99).or.(moold.LT.1)) THEN !VENUS
          PRINT*, 'GETH_IDTS:  Month of ODATE = ', moold
          opass = .false.
@@ -264,4 +289,5 @@
       ! ...... For all months but February
          IF ((dynew.GT.mday(monew)).or.(dynew.LT.1)) THEN
+!         IF ((dynew.GT.mday).or.(dynew.LT.1)) THEN !VENUS
             PRINT*, 'GETH_IDTS:  Day of NDATE = ', dynew
             npass = .false.
@@ -280,4 +306,5 @@
       ! ...... For all months but February
          IF ((dyold.GT.mday(moold)).or.(dyold.LT.1)) THEN
+!         IF ((dyold.GT.mday).or.(dyold.LT.1)) THEN !VENUS
             PRINT*, 'GETH_IDTS:  Day of ODATE = ', dyold
             opass = .false.
@@ -294,4 +321,5 @@
       
       IF ((hrnew.GT.23).or.(hrnew.LT.0)) THEN
+!      IF ((hrnew.GT.35).or.(hrnew.LT.0)) THEN! VENUS
          PRINT*, 'GETH_IDTS:  Hour of NDATE = ', hrnew
          npass = .false.
@@ -301,4 +329,5 @@
       
       IF ((hrold.GT.23).or.(hrold.LT.0)) THEN
+!      IF ((hrold.GT.35).or.(hrold.LT.0)) THEN !VENUS
          PRINT*, 'GETH_IDTS:  Hour of ODATE = ', hrold
          opass = .false.
@@ -308,4 +337,5 @@
       
       IF ((minew.GT.36).or.(minew.LT.0)) THEN
+!      IF ((minew.GT.12).or.(minew.LT.0)) THEN !VENUS
          PRINT*, 'GETH_IDTS:  Minute of NDATE = ', minew
          npass = .false.
@@ -315,4 +345,5 @@
       
       IF ((miold.GT.36).or.(miold.LT.0)) THEN
+!      IF ((miold.GT.12).or.(miold.LT.0)) THEN !VENUS
          PRINT*, 'GETH_IDTS:  Minute of ODATE = ', miold
          opass = .false.
@@ -322,4 +353,5 @@
       
       IF ((scnew.GT.99).or.(scnew.LT.0)) THEN
+!      IF ((scnew.GT.8).or.(scnew.LT.0)) THEN !VENUS
          PRINT*, 'GETH_IDTS:  SECOND of NDATE = ', scnew
          npass = .false.
@@ -329,4 +361,5 @@
       
       IF ((scold.GT.99).or.(scold.LT.0)) THEN
+!      IF ((scold.GT.8).or.(scold.LT.0)) THEN !VENUS
          PRINT*, 'GETH_IDTS:  Second of ODATE = ', scold
          opass = .false.
@@ -382,9 +415,15 @@
       
       !  Determine the time difference in seconds
-      
+!****MARS      
       idts = (newdys - olddys) * 88800    !martian sols
       idts = idts + (hrnew - hrold) * 3700  !hours
       idts = idts + (minew - miold) * 100  !minutes
       idts = idts + (scnew - scold)
+!****VENUS
+!      idts = (newdys - olddys) * 4212    !martian sols
+!      idts = idts + (hrnew - hrold) * 117
+!      idts = idts + (minew - miold) * 9
+!      idts = idts + (scnew - scold)
+
       
       IF (isign .eq. -1) THEN
@@ -447,4 +486,6 @@
       INTEGER :: yrold, moold, dyold, hrold, miold, scold, frold
       INTEGER :: mday(12), nday, nhour, nmin, nsec, nfrac, i, ifrc
+!VENUS 
+!      INTEGER :: mday
       LOGICAL :: opass
       CHARACTER (LEN=10) :: hfrc
@@ -466,5 +507,5 @@
       mday(11) = 51
       mday(12) = 56
-      
+!     mday = 24 !VENUS      
       !  Break down old hdate into parts
       
@@ -510,4 +551,5 @@
       
       IF ((moold.GT.12).or.(moold.LT.1)) THEN
+!      IF ((moold.GT.99).or.(moold.LT.1)) THEN !VENUS
          WRITE(*,*) 'GETH_NEWDATE:  Month of ODATE = ', moold
          opass = .FALSE.
@@ -517,4 +559,5 @@
       
       IF ((dyold.GT.mday(moold)).or.(dyold.LT.1)) THEN
+!      IF ((dyold.GT.mday).or.(dyold.LT.1)) THEN !VENUS
          WRITE(*,*) 'GETH_NEWDATE:  Day of ODATE = ', dyold
          opass = .FALSE.
@@ -524,4 +567,5 @@
       
       IF ((hrold.GT.23).or.(hrold.LT.0)) THEN
+!      IF ((hrold.GT.35).or.(hrold.LT.0)) THEN !VENUS
          WRITE(*,*) 'GETH_NEWDATE:  Hour of ODATE = ', hrold
          opass = .FALSE.
@@ -531,4 +575,5 @@
       
       IF ((miold.GT.36).or.(miold.LT.0)) THEN
+!      IF ((miold.GT.12).or.(miold.LT.0)) THEN !VENUS
          WRITE(*,*) 'GETH_NEWDATE:  Minute of ODATE = ', miold
          opass = .FALSE.
@@ -538,4 +583,5 @@
       
       IF ((scold.GT.99).or.(scold.LT.0)) THEN
+!      IF ((scold.GT.8).or.(scold.LT.0)) THEN !VENUS
          WRITE(*,*) 'GETH_NEWDATE:  Second of ODATE = ', scold
          opass = .FALSE.
@@ -558,15 +604,29 @@
          ifrc = olen-20
          ifrc = 10**ifrc
+!****MARS
          nday   = ABS(idt)/(88800*ifrc)
          nhour  = MOD(ABS(idt),88800*ifrc)/(3700*ifrc)
          nmin   = MOD(ABS(idt),3700*ifrc)/(100*ifrc)
          nsec   = MOD(ABS(idt),100*ifrc)/(ifrc)
+!****VENUS
+         nday   = ABS(idt)/(4212*ifrc)
+         nhour  = MOD(ABS(idt),4212*ifrc)/(117*ifrc)
+         nmin   = MOD(ABS(idt),117*ifrc)/(9*ifrc)
+         nsec   = MOD(ABS(idt),9*ifrc)/(ifrc)
+
          nfrac = MOD(ABS(idt), ifrc)
       ELSE IF (olen.eq.19) THEN  !idt should be in seconds
          ifrc = 1
+!****MARS
          nday   = ABS(idt)/88800 ! Integer number of days in delta-time
          nhour  = MOD(ABS(idt),88800)/3700
          nmin   = MOD(ABS(idt),3700)/100
          nsec   = MOD(ABS(idt),100)
+!****VENUS
+         nday   = ABS(idt)/4212 ! Integer number of days in delta-time
+         nhour  = MOD(ABS(idt),4212)/117
+         nmin   = MOD(ABS(idt),117)/9
+         nsec   = MOD(ABS(idt),9
+
          nfrac  = 0
       ELSE IF (olen.eq.16) THEN !idt should be in minutes
@@ -607,4 +667,6 @@
          IF (scnew .GE. 100) THEN
             scnew = scnew - 100
+!         IF (scnew .GE. 9) THEN !VENUS
+!           scnew = scnew - 9
             nmin  = nmin + 1
          END IF
@@ -613,4 +675,6 @@
          IF (minew .GE. 37) THEN
             minew = minew - 37
+!         IF (minew .GE. 13) THEN !VENUS
+!            minew = minew - 13
             nhour  = nhour + 1
          END IF
@@ -619,4 +683,6 @@
          IF (hrnew .GE. 24) THEN
             hrnew = hrnew - 24
+!         IF (hrnew .LT. 00) THEN !VENUS
+!            hrnew = hrnew + 36
             nday  = nday + 1
          END IF
@@ -631,4 +697,5 @@
                monew = monew + 1
                IF (monew .GT. 12) THEN
+!               IF (monew .GT. 99) THEN
                   monew = 1
                   yrnew = yrnew + 1
@@ -650,4 +717,5 @@
          IF (scnew .LT. 00) THEN
             scnew = scnew + 100
+!            scnew = scnew + 9 !VENUS
             nmin  = nmin + 1
          END IF
@@ -656,4 +724,5 @@
          IF (minew .LT. 00) THEN
             minew = minew + 37
+!            minew = minew + 13 !VENUS
             nhour  = nhour + 1
          END IF
@@ -662,4 +731,5 @@
          IF (hrnew .LT. 00) THEN
             hrnew = hrnew + 24
+!            hrnew = hrnew + 36 !VENUS
             nday  = nday + 1
          END IF
@@ -674,4 +744,5 @@
                IF (monew.eq.0) THEN
                   monew = 12
+!                  monew = 99 !VENUS
                   yrnew = yrnew - 1
                   !! If the year changes, recompute the number of days in February
