[Dart-dev] DART/branches Revision: 12019

dart at ucar.edu dart at ucar.edu
Thu Oct 26 11:20:22 MDT 2017


mizzi at ucar.edu
2017-10-26 11:20:18 -0600 (Thu, 26 Oct 2017)
63
Update/clean up the WRF-Chem/DART chemistry forward operators




Modified: DART/branches/mizzi/mkmf/mkmf.template
===================================================================
--- DART/branches/mizzi/mkmf/mkmf.template	2017-10-26 14:10:06 UTC (rev 12018)
+++ DART/branches/mizzi/mkmf/mkmf.template	2017-10-26 17:20:18 UTC (rev 12019)
@@ -128,7 +128,7 @@
 #FFLAGS  = -g -C -CB -ftz -vec-report0 -mcmodel=medium -shared-intel -fp-model precise $(INCS)
 #
 # for development or debugging, use this instead:
- FFLAGS = -g -C -check noarg_temp_created -fpe0 -mcmodel=large -shared-intel \
+ FFLAGS = -g -C -CB -check noarg_temp_created -fpe0 -mcmodel=large -shared-intel \
           -fp-model precise  -ftrapuv -traceback \
           -warn argument_checking,declarations,uncalled,unused $(INCS)
  LDFLAGS = $(FFLAGS) $(LIBS)

Modified: DART/branches/mizzi/models/wrf_chem/WRF_DART_utilities/dart_to_wrf.f90
===================================================================
--- DART/branches/mizzi/models/wrf_chem/WRF_DART_utilities/dart_to_wrf.f90	2017-10-26 14:10:06 UTC (rev 12018)
+++ DART/branches/mizzi/models/wrf_chem/WRF_DART_utilities/dart_to_wrf.f90	2017-10-26 17:20:18 UTC (rev 12019)
@@ -42,10 +42,10 @@
 character(len=72)  :: adv_mod_command   = './wrf.exe'
 !
 ! LXL/APM +++
-logical            :: add_emiss = .false., use_log_co = .false.
+logical            :: add_emiss = .false., use_log_co = .false., use_log_o3 = .false.
 
 namelist /dart_to_wrf_nml/ model_advance_file, dart_restart_name, &
-                           adv_mod_command, print_data_ranges, debug, add_emiss, use_log_co
+                           adv_mod_command, print_data_ranges, debug, add_emiss, use_log_co, use_log_o3
 ! LXL/APM ---
 !
 
@@ -319,15 +319,34 @@
 !            print *, 'APM: dart_to_wrf 2D CO conversion '
             do jj=1,wrf%var_size(2,ind)
                do ii=1,wrf%var_size(1,ind)
-                  if(wrf_var_2d(ii,jj).gt.-9.0) then
-                     wrf_var_2d(ii,jj)=(10.**wrf_var_2d(ii,jj))*1.e6
-                  else
-                     wrf_var_2d(ii,jj)=1.e-3
-                     print *, 'APM 2d: dart_to_wrf reset ',ii,jj
-                  endif
+                  wrf_var_2d(ii,jj)=10.**wrf_var_2d(ii,jj)
+!
+!                  if(wrf_var_2d(ii,jj).gt.-3.0) then
+!                     wrf_var_2d(ii,jj)=10.**wrf_var_2d(ii,jj)
+!                  else
+!                     wrf_var_2d(ii,jj)=1.e-3
+!                     print *, 'APM 2d: dart_to_wrf reset ',ii,jj
+!                  endif
                enddo
             enddo
          endif
+!
+! APM: code to reverse log10(x) transform of O3 chemistry field
+         if (use_log_o3 .and. trim(my_field).eq.'o3') then
+!            print *, 'APM: dart_to_wrf 2D O3 conversion '
+            do jj=1,wrf%var_size(2,ind)
+               do ii=1,wrf%var_size(1,ind)
+                  wrf_var_2d(ii,jj)=10.**wrf_var_2d(ii,jj)
+!
+!                  if(wrf_var_2d(ii,jj).gt.-3.0) then
+!                     wrf_var_2d(ii,jj)=10.**wrf_var_2d(ii,jj)
+!                  else
+!                     wrf_var_2d(ii,jj)=4.e-3
+!                     print *, 'APM 2d: dart_to_wrf reset ',ii,jj
+!                  endif
+               enddo
+            enddo
+         endif
 ! APM: ---
 !
          if ( print_data_ranges ) write(*,"(A,2F16.6)") trim(my_field)//': data min/max after  bounds: ', &
@@ -407,16 +426,37 @@
             do kk=1,wrf%var_size(3,ind)
                do jj=1,wrf%var_size(2,ind)
                   do ii=1,wrf%var_size(1,ind)
-                     if(wrf_var_3d(ii,jj,kk).gt.-9.0) then
-                        wrf_var_3d(ii,jj,kk)=(10.**wrf_var_3d(ii,jj,kk))*1.e6
-                     else
-                        wrf_var_3d(ii,jj,kk)=1.e-3
-                        print *, 'APM 3d: dart_to_wrf reset ',ii,jj,kk
-                     endif
+                     wrf_var_3d(ii,jj,kk)=10.**wrf_var_3d(ii,jj,kk)
+!
+!                     if(wrf_var_3d(ii,jj,kk).gt.-3.0) then
+!                        wrf_var_3d(ii,jj,kk)=10.**wrf_var_3d(ii,jj,kk)
+!                     else
+!                        wrf_var_3d(ii,jj,kk)=1.e-3
+!                        print *, 'APM 3d: dart_to_wrf reset ',ii,jj,kk
+!                     endif
                   enddo
                enddo
             enddo
          endif
+!
+! APM: code to reverse log10(x) transform of O3 chemistry field
+         if (use_log_o3 .and. trim(my_field).eq.'o3') then
+!            print *, 'APM: dart_to_wrf 3D O3 conversion '
+            do kk=1,wrf%var_size(3,ind)
+               do jj=1,wrf%var_size(2,ind)
+                  do ii=1,wrf%var_size(1,ind)


More information about the Dart-dev mailing list