diff -Naur WRFV3/arch/configure_new.defaults WRFV3-patched/arch/configure_new.defaults
--- WRFV3/arch/configure_new.defaults	2011-05-13 13:50:30.000000000 -0700
+++ WRFV3-patched/arch/configure_new.defaults	2012-03-25 11:59:10.974024306 -0700
@@ -1106,6 +1106,61 @@
                      ../frame/module_internal_header_util.o \
                      ../frame/pack_utils.o
 
+###########################################################
+#ARCH    Windows 64-bit, PToolsWin  #serial smpar dmpar dm+sm
+#
+DMPARALLEL      =       # 1
+OMPCPP          =       # -D_OPENMP
+OMP             =       # -fopenmp
+OMPCC           =       # -fopenmp
+SFC             =       gfortran
+SCC             =       gcc
+CCOMP           =       gcc
+DM_FC           =       mpif90
+DM_CC           =       mpicc
+FC              =       CONFIGURE_FC
+CC              =       CONFIGURE_CC
+LD              =       $(FC)
+RWORDSIZE       =       CONFIGURE_RWORDSIZE
+PROMOTION       =       # -fdefault-real-8  # uncomment manually
+ARCH_LOCAL      =       -DNONSTANDARD_SYSTEM_SUBR -D_WIN32
+CFLAGS_LOCAL    =       -w -O3 -c -DMEMCPY_FOR_BCOPY -DLANDREAD_STUB
+LDFLAGS_LOCAL   =       
+CPLUSPLUSLIB    =
+ESMF_LDFLAG     =       $(CPLUSPLUSLIB)
+FCOPTIM         =       -O3 -ftree-vectorize -funroll-loops
+FCREDUCEDOPT    =       $(FCOPTIM)
+FCNOOPT         =       -O0
+FCDEBUG         =       # -g $(FCNOOPT)
+FORMAT_FIXED    =       -ffixed-form
+FORMAT_FREE     =       -ffree-form -ffree-line-length-none
+FCSUFFIX        =
+BYTESWAPIO      =       -fconvert=big-endian -frecord-marker=4
+FCBASEOPTS_NO_G =       -w $(FORMAT_FREE) $(BYTESWAPIO)
+FCBASEOPTS      =       $(FCBASEOPTS_NO_G) $(FCDEBUG)
+MODULE_SRCH_FLAG =
+TRADFLAG        =      -traditional
+CPP             =      /lib/cpp -C -P
+AR              =      x86_64-w64-mingw32-ar
+ARFLAGS         =      ru
+M4              =      m4 -G
+RANLIB          =      x86_64-w64-mingw32-ranlib
+CC_TOOLS        =      /usr/bin/gcc
+
+LIB_EXTERNAL    = \
+                     ../external/io_netcdf/libwrfio_nf.a CONFIGURE_NETCDF_PATH/lib/libnetcdf.lib \
+                     ../external/wavelet/libWavelet.a ../external/wavelet/lib_wavelet.a
+ESMF_IO_LIB     =    ../external/esmf_time_f90/libesmf_time.a
+LIB_BUNDLED     = \
+                     ../external/fftpack/fftpack5/libfftpack.a \
+                     ../external/io_grib1/libio_grib1.a \
+                     ../external/io_grib_share/libio_grib_share.a \
+                     ../external/io_int/libwrfio_int.a \
+                     $(ESMF_IO_LIB) \
+                     CONFIGURE_COMMS_LIB \
+                     ../frame/module_internal_header_util.o \
+                     ../frame/pack_utils.o
+LIB_LOCAL       = -lws2_32
 
 ###########################################################
 #ARCH  NULL
diff -Naur WRFV3/external/io_grib1/grib1_util/read_grib.c WRFV3-patched/external/io_grib1/grib1_util/read_grib.c
--- WRFV3/external/io_grib1/grib1_util/read_grib.c	2010-01-10 13:41:55.000000000 -0800
+++ WRFV3-patched/external/io_grib1/grib1_util/read_grib.c	2012-03-25 12:02:50.582479287 -0700
@@ -1900,7 +1900,7 @@
   time = mktime(&starttp);
   time += amount;
  #ifdef _WIN32
-   localtime_s(&endtp, &time);
+   _localtime64_s(&endtp, &time);
  #else
    localtime_r(&time, &endtp);
  #endif
diff -Naur WRFV3/external/io_grib1/MEL_grib1/grib_enc.c WRFV3-patched/external/io_grib1/MEL_grib1/grib_enc.c
--- WRFV3/external/io_grib1/MEL_grib1/grib_enc.c	2009-10-30 10:08:18.000000000 -0700
+++ WRFV3-patched/external/io_grib1/MEL_grib1/grib_enc.c	2012-03-25 11:59:10.975024227 -0700
@@ -11,7 +11,7 @@
 #undef htonl
 #define htonl(x)     swap_byte4(x)
 #elif defined(_WIN32)
-#include <Winsock2.h>
+#include <winsock2.h>
 #else
 #include <netinet/in.h>
 #endif
diff -Naur WRFV3/external/io_grib1/MEL_grib1/gribputgds.c WRFV3-patched/external/io_grib1/MEL_grib1/gribputgds.c
--- WRFV3/external/io_grib1/MEL_grib1/gribputgds.c	2009-10-30 10:08:18.000000000 -0700
+++ WRFV3-patched/external/io_grib1/MEL_grib1/gribputgds.c	2012-03-25 11:59:10.975024227 -0700
@@ -6,7 +6,7 @@
 #undef htonl
 #define htonl(x)     swap_byte4(x)
 #elif defined(_WIN32)
-#include <Winsock2.h>
+#include <winsock2.h>
 #else
 #include <netinet/in.h>
 #endif
diff -Naur WRFV3/external/io_grib1/MEL_grib1/gribputpds.c WRFV3-patched/external/io_grib1/MEL_grib1/gribputpds.c
--- WRFV3/external/io_grib1/MEL_grib1/gribputpds.c	2009-10-30 10:08:18.000000000 -0700
+++ WRFV3-patched/external/io_grib1/MEL_grib1/gribputpds.c	2012-03-25 11:59:10.976024147 -0700
@@ -6,7 +6,7 @@
 #ifdef XT3_Catamount
 #include <features.h>
 #elif defined(_WIN32)
-#include <Winsock2.h>
+#include <winsock2.h>
 #else
 #include <netinet/in.h>
 #endif
diff -Naur WRFV3/external/io_grib1/MEL_grib1/isdb.h WRFV3-patched/external/io_grib1/MEL_grib1/isdb.h
--- WRFV3/external/io_grib1/MEL_grib1/isdb.h	2006-05-23 16:08:12.000000000 -0700
+++ WRFV3-patched/external/io_grib1/MEL_grib1/isdb.h	2012-03-25 11:59:10.976024147 -0700
@@ -42,7 +42,11 @@
    int day;			/* day number in month */
    int type;			/* time coordinate type, default time type */
 				/* is calendar time 			   */
+#ifdef _WIN32
+} ISDB_DATE;
+#else
 } DATE;
+#endif
 
 typedef struct {		/* info from table as_band */
     long   chan_num;		/* channel number within sensor */
@@ -100,7 +104,11 @@
 
 typedef struct {		/* info from table sat_oe */
     char   seq_name[21];	/* orb-elem sequence name */
+#ifdef _WIN32
+    ISDB_DATE   date;		/* date for orbital elements */
+#else
     DATE   date;		/* date for orbital elements */
+#endif
     double hour;		/* hour of day for orbital elements */
     double parm_1;		/* orb-elem parm 1 value */
     double parm_2;		/* orb-elem parm 2 value */
@@ -111,6 +119,7 @@
     double parm_7;		/* orb-elem parm 7 value */
 } ORB_ELEM;
 
+#ifndef _WIN32
 typedef struct {		/* bit-map structure */
    short lin_cnt;		/* count of lines in bitmap */
    short smp_cnt;		/* count of samples per line in bitmap */
@@ -119,5 +128,6 @@
 				   bitmap data begins */
    unsigned char *bmap;		/* unsigned char array containing bitmap */
 } BITMAP;
+#endif
 
 #endif  /* ISDB_INCLUDE */
diff -Naur WRFV3/external/io_grib1/MEL_grib1/pack_spatial.c WRFV3-patched/external/io_grib1/MEL_grib1/pack_spatial.c
--- WRFV3/external/io_grib1/MEL_grib1/pack_spatial.c	2009-10-30 10:08:18.000000000 -0700
+++ WRFV3-patched/external/io_grib1/MEL_grib1/pack_spatial.c	2012-03-25 11:59:10.977024069 -0700
@@ -9,7 +9,7 @@
 #undef htonl
 #define htonl(x)     swap_byte4(x)
 #elif defined(_WIN32)
-#include <Winsock2.h>
+#include <winsock2.h>
 #else
 #include <netinet/in.h>
 #endif
diff -Naur WRFV3/external/io_mcel/timeconvert.c WRFV3-patched/external/io_mcel/timeconvert.c
--- WRFV3/external/io_mcel/timeconvert.c	2008-07-11 11:03:45.000000000 -0700
+++ WRFV3-patched/external/io_mcel/timeconvert.c	2012-03-25 12:03:53.802358604 -0700
@@ -105,10 +105,18 @@
   tt1 = mktime(&t1);
   tt2 = tt1+(unsigned long int )*time;
   t2=t1;
+#ifdef _WIN32
+  _localtime64_s(&t2,&tt2);
+#else
   localtime_r(&tt2,&t2);
+#endif
   if (t2.tm_isdst) 
     tt2 -= 3600;
+#ifdef _WIN32
+  _localtime64_s(&t2,&tt2);
+#else
   localtime_r(&tt2,&t2);
+#endif
 
   sprintf(date,"%04d%02d%02d%02d%02d%02d",
 	  1900+t2.tm_year,
diff -Naur WRFV3/external/RSL_LITE/c_code.c WRFV3-patched/external/RSL_LITE/c_code.c
--- WRFV3/external/RSL_LITE/c_code.c	2011-03-04 11:03:12.000000000 -0800
+++ WRFV3-patched/external/RSL_LITE/c_code.c	2012-03-25 11:59:10.977024069 -0700
@@ -10,7 +10,7 @@
 #endif
 
 #ifdef _WIN32
-#include <Winsock2.h>
+#include <winsock2.h>
 #endif
 
 #define STANDARD_ERROR 2
diff -Naur WRFV3/phys/module_cu_g3.F WRFV3-patched/phys/module_cu_g3.F
--- WRFV3/phys/module_cu_g3.F	2011-08-26 09:22:51.000000000 -0700
+++ WRFV3-patched/phys/module_cu_g3.F	2012-03-25 11:59:10.979023920 -0700
@@ -3119,7 +3119,7 @@
        pcrit,acrit,acritt
 
      integer :: nall2,ixxx,irandom
-     integer,  dimension (8) :: seed
+     integer,  dimension (12) :: seed
 
 
       DATA PCRIT/850.,800.,750.,700.,650.,600.,550.,500.,450.,400.,    &
diff -Naur WRFV3/phys/module_mp_morr_two_moment.F WRFV3-patched/phys/module_mp_morr_two_moment.F
--- WRFV3/phys/module_mp_morr_two_moment.F	2011-06-10 09:18:40.000000000 -0700
+++ WRFV3-patched/phys/module_mp_morr_two_moment.F	2012-03-25 11:59:10.981023780 -0700
@@ -1286,7 +1286,7 @@
 ! fix 053011
 !            AIN(K) = DUM*AI
 ! AA revision 4/1/11: Ikawa and Saito 1991 air-density correction 
-            AIN(K) = (RHOSU/RHO(K))**0.35
+            AIN(K) = (RHOSU/RHO(K))**0.35*AI
             ARN(K) = DUM*AR
             ASN(K) = DUM*AS
 !            ACN(K) = DUM*AC
