diff --git a/.gitignore b/.gitignore index 52785ce..afe7afc 100644 --- a/.gitignore +++ b/.gitignore @@ -17,13 +17,27 @@ *.grb1 *.grb2 dp-p[0-9]* + bin.block/example_modis_sst/* bin.block/example_reynolds_sst/* +bin.block/mk-blkfiles* +bin.block/CreateSSTblockfiles.sc +bin.block/run_test_sstfiles.sc + bin.dp.grib1/example_data/* +bin.dp.grib1/dgrib* +bin.dp.grib1/rams_wgrib + bin.dp.grib2/example_data/* -bin.revu/example_data/* bin.dp.grib2/wgrib* +bin.dp.grib2/dgrib* + +bin.revu/example_data/* +bin.revu/revu* + bin.rams/dprep.test/* +bin.rams/rams* +bin.rams/cleanup.sc # Ignore external libraries misc/* diff --git a/bin.block/Makefile b/bin.block/Makefile new file mode 100755 index 0000000..97e7c8b --- /dev/null +++ b/bin.block/Makefile @@ -0,0 +1,74 @@ +#Makefile +############################################################################### +# Include definitions +############################################################################### +include ../include.mk +############################################################################### +# Compiler commands +############################################################################### +INCLUDES = $(UTILS_INCS) $(PAR_INCS) $(HDF5_INCS) +F_CD1 = $(F_COMP) -c $(F_OPTS1) $(INCLUDES) +F_CD2 = $(F_COMP) -c $(F_OPTS2) $(INCLUDES) +C_CD = $(C_COMP) -c $(C_OPTS) $(INCLUDES) $(PAR_DEFS) $(HDF5_DEFS) + +C_CM =$(C_CD) -D$(CMACH) $< && $(ARCH) $@ $( FT ccn conc. (m) - for CCN_PROF=3 CCN_FT = 100., ! Free Tropospheric CCN Concentration - for CCN_PROF=3 CIN_MAX = 0.01, ! Ice Nuclei (#/mg) CIN_SH = 5000., ! Ice Nuclei expoential scale height (for IIFN = 1 or 2) - GCCN_MAX = 0.01, ! Giant-CCN (#/mg) + CCN1_MAX = 1000., ! CCN-mode-1 (#/mg) + CCN2_MAX = 0.01, ! CCN-mode-2 (#/mg) DUST1_MAX = 100., ! Small Dust Mode (#/mg) DUST2_MAX = 10., ! Large Dust Mode (#/mg) SALTF_MAX = 100., ! Film Sea Salt (#/mg) @@ -609,7 +612,7 @@ AERO_EPSILON = 0.90,0.90,0.05,0.05,1.00,1.00,1.00,0.05,0.05,0.20,0.20, ! Aerosol 9 categories initial median radius (meters) - AERO_MEDRAD = 0.04e-6,3.00e-6, !CCN,GCCN + AERO_MEDRAD = 0.04e-6,3.00e-6, !CCN-1,CCN-2 0.05e-6,0.50e-6, !Dust1,Dust2 0.10e-6,1.00e-6,6.00e-6, !SeaSalt: film,jet,spume 0.05e-6,0.05e-6, !Absorbing carbon diff --git a/bin.rams/REVUIN.supercell b/bin.rams/REVUIN.testrunonly similarity index 100% rename from bin.rams/REVUIN.supercell rename to bin.rams/REVUIN.testrunonly diff --git a/bin.rams/cleanup.sc b/bin.rams/cleanup.sc new file mode 100755 index 0000000..b3018bf --- /dev/null +++ b/bin.rams/cleanup.sc @@ -0,0 +1,3 @@ +#!/bin/bash +rm -f *.mod rams rams*.a +rm -fr testrun.output diff --git a/bin.rams/machs b/bin.rams/machs new file mode 100644 index 0000000..a762292 --- /dev/null +++ b/bin.rams/machs @@ -0,0 +1 @@ +floyd diff --git a/bin.rams/machs.master b/bin.rams/machs.master index 79e7de4..e237f51 100755 --- a/bin.rams/machs.master +++ b/bin.rams/machs.master @@ -9,28 +9,8 @@ #SINGLE MACHINE #`hostname` -#Using "ccn" cluster with MPICH -#node01:1 -#node02:8 -#node03:8 -#node04:8 -#node05:8 -#node06:8 -#node07:8 -#node08:8 - -#Using "ccn" cluster with openMPI -#node01 slots=1 -#node02 slots=8 -#node03 slots=8 -#node04 slots=8 -#node05 slots=8 -#node06 slots=8 -#node07 slots=8 -#node08 slots=8 - #Using "frost" cluster with MPICH -#frost:1 +#frost:16 #frost1:16 #frost2:16 #frost3:16 @@ -40,12 +20,18 @@ #frost7:16 #frost8:16 -#Using "ice" cluster (infiniband) MPICH -#icehome_ib:8 -#ice1_ib:12 -#ice2_ib:12 -#ice3_ib:12 -#ice4_ib:12 +#Using "ice" cluster +#ice:8 +#ice1:12 +#ice2:12 +#ice3:12 +#ice4:12 + +#Using "snow" cluster +#snow:1 +#snowfall1:64 +#snowfall2:64 +#snowfall3:64 #Ciracluster (head node is cm00, but do not include that in list) #cc00:12 diff --git a/bin.rams/run_test_supercell.sc b/bin.rams/run_testrunonly.sc similarity index 83% rename from bin.rams/run_test_supercell.sc rename to bin.rams/run_testrunonly.sc index d7ac8b9..5d45142 100755 --- a/bin.rams/run_test_supercell.sc +++ b/bin.rams/run_testrunonly.sc @@ -8,7 +8,7 @@ # this script in parallel or serial. # # A couple of important items here for this test simulation. -# 1. RAMSIN.supercell - produces a 3D 1-grid supercell simulation with +# 1. RAMSIN.testrunonly - produces a 3D 1-grid supercell simulation with # LEVEL=3 microphysics # 2. This idealized simulation does not require geographical data (sfctypehdf5) # for running since geography does not matter. Also, we do not need gridded @@ -19,25 +19,29 @@ # but NOT on a supercomputer using a PBS QSUB queuing system. Consult their # userguides for running parallel jobs on their systems. Each system is unique. # /home/smsaleeb/software/mpich-3.3.2/bin/mpiexec -machinefile machs -np 8 \ -# ./bin.rams/rams-6.3.01 -f RAMSIN.supercell -# Note: might have to add (-ifrace eth0) to this executable statement or +# ./bin.rams/rams-6.3.01 -f RAMSIN.testrunonly +# Note: might have to add (-iface eth0) to this executable statement or # something similar depending on how your compute nodes communicate. Use # utility (ifconfig) to find out how your nodes communicate (ie. eth0 or eth1). # # Do not blindly use this script for running every simulation. It is simply # included here as a starting point and because I use this frequently on my # desktop Linux workstation for RAMS tests and debugging. If using this script -# please become familiar with its flags, settings, and functionality. It cannot -# be used for every runtime situation. +# and RAMSIN namelist, please become familiar with its flags, settings, and +# functionality. They cannot be used for every runtime situation. Many RAMSIN +# flags in this test example are turned on for testing only and are not +# appropriate for a real simulation to study. ############################################################################### # Set your RAMS root path rd=`pwd`/.. +# RAMSIN name +ramsin="RAMSIN.testrunonly" # RAMS version (ie. 6.1.6) -vs=6.3.02 +vs=6.3.04 # Set flag for type of test (0=sequential, 1=parallel) -runtype=0 +runtype=1 # Set number of nodes for parallel run. -n=10 +n=8 # Set delete flag (0 = do not delete, 1 = delete and start over) del=1 @@ -56,8 +60,8 @@ a3=$rd/bin.rams/rams-$vs a4=$rd/bin.revu/revu-$vs #Check to see that RAMSIN namelist exists -if [ ! -f $rd/bin.rams/RAMSIN.supercell ]; then - echo "Input paths for this file is incorrect: RAMSIN.supercell" +if [ ! -f $rd/bin.rams/$ramsin ]; then + echo "Input paths for this file is incorrect: RAMSIN.testrunonly" exit fi @@ -92,11 +96,10 @@ fi # DONE WITH NECESSARY USER CHANGES ############################################################################### -for dirname in $rd/bin.rams/test.supercell +for dirname in $rd/bin.rams/testrun.output do if [ -d $dirname -a $del -eq 1 ]; then - rm -f $dirname/*.h5 $dirname/*.txt $dirname/*.tag \ - $dirname/r.* $dirname/ct.* $dirname/out + rm -f $dirname/*.h5 $dirname/*.txt else if [ ! -d $dirname ]; then mkdir $dirname; fi; fi @@ -114,9 +117,4 @@ else exit fi -$rc1 $rd/bin.rams/RAMSIN.supercell - -#Try running REVU on test simulation output if REVU is compiled -if [ -f $a4 ]; then - $a4 -f $rd/bin.rams/REVUIN.supercell -fi +$rc1 $rd/bin.rams/$ramsin diff --git a/docs/ComputerDocs-Cheyenne/README_compile_cheyenne.dms b/docs/ComputerDocs-Cheyenne/README_compile_cheyenne.dms deleted file mode 100644 index 3e0b30f..0000000 --- a/docs/ComputerDocs-Cheyenne/README_compile_cheyenne.dms +++ /dev/null @@ -1,44 +0,0 @@ -I could not get the large channel sim to run on Cheyenne until I compiled our versions of the MPI -HDF5 libraries and linked to those (as opposed to the Cheyenne built-in libraries). - - - -In order to do compile our own HDF5 and MPI libriares, you need to clear paths to the -Cheyenne built-in libraries. Load/unload modules to get the following state: - - stephenh@cheyenne2:~/Rams/misc> module list - - Currently Loaded Modules: - 1) ncarenv/1.2 2) intel/17.0.1 3) ncarcompilers/0.4.1 4) slurm/17.02.4 - -Then save this state as your default: - - module save default - -Then log out and log back in again. You need to do all of the above steps in order to clear out a -bunch of variables that point to the built-in libraries (NCAR_LDFLAGS_*, specifically). - - - -Once the environment is set properly, untar the source code for the MPI libraries and run configure -(change --prefix path to where you want the libraries to be installed): - - ./configure --prefix=/glade/u/home/stephenh/Rams/misc/mpich2-1.4.1-install --disable-f77 -disable-fc --disable-cxx -enable-fast=O3 CPPFLAGS=-DNDEBUG --with-device=ch3:nemesis CC=icc FC=ifort F90= - -Then compile the MPI libraries: - - make - make install - -Compile the HDF5 libraries (set --prefix to where you want the libraries installed, and set the path -to mpicc accordingly): - - ./configure --prefix=/glade/u/home/stephenh/Rams/misc/hdf5-1.8.9-install --disable-fortran --disable-fortran2003 --enable-parallel CC=/glade/u/home/stephenh/Rams/misc/mpich2-1.4.1-install/bin/mpicc - make - make install - - -Then use the source code saved in rams_20171109_rce_6.2.08 to compile RAMS. Set the paths for -HDF5_ROOT and MPI_ROOT accordingly in the include.mk.cheyenne.mylibs file. - - diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/README_compile_cheyenne b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/README_compile_cheyenne deleted file mode 100644 index 3e0b30f..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/README_compile_cheyenne +++ /dev/null @@ -1,44 +0,0 @@ -I could not get the large channel sim to run on Cheyenne until I compiled our versions of the MPI -HDF5 libraries and linked to those (as opposed to the Cheyenne built-in libraries). - - - -In order to do compile our own HDF5 and MPI libriares, you need to clear paths to the -Cheyenne built-in libraries. Load/unload modules to get the following state: - - stephenh@cheyenne2:~/Rams/misc> module list - - Currently Loaded Modules: - 1) ncarenv/1.2 2) intel/17.0.1 3) ncarcompilers/0.4.1 4) slurm/17.02.4 - -Then save this state as your default: - - module save default - -Then log out and log back in again. You need to do all of the above steps in order to clear out a -bunch of variables that point to the built-in libraries (NCAR_LDFLAGS_*, specifically). - - - -Once the environment is set properly, untar the source code for the MPI libraries and run configure -(change --prefix path to where you want the libraries to be installed): - - ./configure --prefix=/glade/u/home/stephenh/Rams/misc/mpich2-1.4.1-install --disable-f77 -disable-fc --disable-cxx -enable-fast=O3 CPPFLAGS=-DNDEBUG --with-device=ch3:nemesis CC=icc FC=ifort F90= - -Then compile the MPI libraries: - - make - make install - -Compile the HDF5 libraries (set --prefix to where you want the libraries installed, and set the path -to mpicc accordingly): - - ./configure --prefix=/glade/u/home/stephenh/Rams/misc/hdf5-1.8.9-install --disable-fortran --disable-fortran2003 --enable-parallel CC=/glade/u/home/stephenh/Rams/misc/mpich2-1.4.1-install/bin/mpicc - make - make install - - -Then use the source code saved in rams_20171109_rce_6.2.08 to compile RAMS. Set the paths for -HDF5_ROOT and MPI_ROOT accordingly in the include.mk.cheyenne.mylibs file. - - diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/fix_file_timestamps b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/fix_file_timestamps deleted file mode 100644 index 284b61e..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/fix_file_timestamps +++ /dev/null @@ -1,25 +0,0 @@ -#! /bin/bash -# -# Script to fix timestamps on the RAMS analysis files. -# -# For some reason the HDF5 files are getting dated in the future -# which is subsequently causing the repack script to wait until -# that future date to compress the file. -# -# The header files are getting the correct timestamp. To fix -# this, use touch command to make the timestamp on each -# analysis file match that of its corresponding header -# file. - -RamsDir="$1" - -for Hfile in $(ls -1 $RamsDir/*-head.txt) -do - AfilePat=$(echo $Hfile | sed 's/-head.txt/-*.h5/') - Afiles=$(ls $AfilePat) - - echo "**********************************************************" - Cmd="touch -r $Hfile $Afiles" - echo "Running: $Cmd" - $Cmd -done diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/include.mk.cheyenne b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/include.mk.cheyenne deleted file mode 100644 index 5d00dbb..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/include.mk.cheyenne +++ /dev/null @@ -1,120 +0,0 @@ -############################################################################# -# Define make (gnu make works best) -############################################################################# -MAKE=/usr/bin/make - -############################################################################# -# Set your RAMS root path and version number -############################################################################# -RAMS_ROOT=/glade/u/home/stephenh/Rams/rams_20171109_rce_6.2.08 -RAMS_VERSION=6.2.08 - -#HDF5_ROOT=/glade/u/home/stephenh/Rams/misc/hdf5-1.8.9-install -#MPI_ROOT=/glade/u/home/stephenh/Rams/misc/mpich2-1.4.1-install - -MODEL=$(RAMS_ROOT)/src/$(RAMS_VERSION) -UTILS_INCS=-I$(MODEL)/include - -############################################################################# -# HDF libraries -# Note that linking libraries below are in a particular order to work! -############################################################################# -#HDF5_LIBS=-L$(HDF5_ROOT)/lib -lhdf5_hl -lhdf5 -lsz -lz -#HDF5_INCS=-I$(HDF5_ROOT)/include -#HDF5_DEFS= - -############################################################################# -# TYPE OF COMPUTER SYSTEM (used for DEFINE statements for intrinsic calls) -############################################################################# -CMACH=PC_LINUX1 #Standard Linux (only option available now) - -############################################################################# -# UNCOMMENT 1 LINUX FORTRAN COMPILER SET OF FLAGS BELOW -############################################################################# -# Note that some Fortran optimizations greater than -O1 will not necessarily -# produce identical results when running same executable multiple times. -# This is perhaps due to order of operations or unrolling loop order that -# changes solutions slightly. This is not ideal for research applications -# involving sensitivity studies that require exact duplication. As such, -# the Makefile is setup to allow different optimizations for different source -# files. The F_OPTS1 and F_OPTS2 variables below can hold different compiler -# flags as needed. Further, for duplication of results you may need to force -# IEEE standard which is done in examples below. -# Please coordinate variables below with the commands in the Makefile. -# Mandatory fortran variables are (F_COMP, F_OPTS1, F_OPTS2, LOADER,OPTS). - -#Definitions of compiler flags below -# F_COMP = path to compiler executable -# F_OPTS1 = Uses of flags for lower optimization for some files -# F_OPTS2 = Uses of flags for higher optimization for some files -# LOADER_OPTS = Flags and optimaztion for LOADER -# LIBS = Extra system libraries for linking that some compilers need - -#***************************** -# FOR INTEL IFORT COMPILER -#***************************** -# (-g) for debugging, (-traceback) for more compiler error info -# (-check bounds) for array bounds checking, (-fp-model precise) for IEEE -# (-check uninit) for finding uninitialized variables, (-free) for free format -F_COMP=mpif90 -F_OPTS=-free -static-intel -fp-model precise -traceback -march=corei7 -axAVX -#F_OPTS=-free -fp-model precise -traceback -static-intel -march=corei7 -axAVX -check bounds -check uninit -F_OPTS1=-O1 $(F_OPTS) -F_OPTS2=-O2 $(F_OPTS) -LOADER=$(F_COMP) -LOADER_OPTS=$(F_OPTS2) -#LOADER=./run_ld -#LOADER_OPTS= -#LIBS=-L/usr/lib/x86_64-linux-gnu -lrt - -#***************************** -# FOR PGI PGF90 COMPILER -#***************************** -# (-g) for debugging, (-Kieee) for IEEE, (-Mfree) for free format -#F_COMP=/usr/local/pgi/linux86-64/15.10/bin/pgf90 -#F_OPTS1=-Mfree -O1 -Kieee -#F_OPTS2=-Mfree -O2 -Kieee -#LOADER_OPTS=-Mfree -O2 -Kieee -#LIBS= - -#***************************** -# FOR GFORTRAN COMPILER -#***************************** -# (-Wall) for warnings, (-ffree-form) for free format -# (-fno-sign-zero) for not making zeros negative values -# (-fcheck=bounds) check for array bounds issues -# (-fcheck=all) all runtime checking -#F_COMP=/usr/bin/gfortran -#F_OPTS1=-ffree-form -O1 -#F_OPTS2=-ffree-form -O2 -#LOADER_OPTS=-ffree-form -O2 -#LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread - -############################################################################# -# LINUX C compiler choice and flags (gcc) -############################################################################# -C_COMP=mpicc -C_OPTS=-O3 -DUNDERSCORE -DLITTLE - -############################################################################# -# System archive command syntax -############################################################################# -ARCH=ar rs - -############################################################################# -# MPI - parallel processing choices -############################################################################# -PAR_LIBS= #leave blank (override below if using MPI) -PAR_DEFS= #leave blank (override below if using MPI) -#---------------------------------------------------------------------------- -# If using MPI libraries: -#---------------------------------------------------------------------------- -#---------------LINUX MPICH---------------------------------------------------- -#PAR_INCS=-I$(MPI_ROOT)/include -#PAR_LIBS=-L$(MPI_ROOT)/lib -lmpich -lmpl -llmpe -PAR_DEFS=-DRAMS_MPI - -#---------------LINUX OPENMPI------------------------------------------------ -#PAR_INCS=-I$(MPI_ROOT)/include -#PAR_LIBS=-L$(MPI_ROOT)/lib -lmpi -#PAR_DEFS=-DRAMS_MPI diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/repack_files b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/repack_files deleted file mode 100644 index 2e00507..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/repack_files +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash - -############################################################################################## -# Script to repack (compress) HDF5 simulation output files - -Usage="USAGE: $0 " - -if [ "$1" == "" ] -then - echo "ERROR: must supply one argument to script" - echo "" - echo $Usage - exit -1 -fi - -RamsinFile=$1 - -GzipLevel=6 - -# Get the analysis file prefix out of the ramsin file, and use -# this for a pattern match to find the rams output files for this -# simulation. -# -# The first sed filter is to get rid of comments (don't want to pick up a commented -# out value for AFILEPREF) -FilePref=$(sed 's/[!].*//g' $RamsinFile | grep AFILEPREF | sed -e 's/.*=//' -e "s/[', \t]//g") - -for RamsFile in ${FilePref}*.h5 -do - echo "***************** $RamsFile ****************************" - NumGzipDsets=$(h5stat --dset $RamsFile | grep GZIP | sed 's/GZIP filter: //') - if [ $NumGzipDsets -gt 0 ] - then - echo "File is already compressed" - else - echo "File needs to be compressed" - - TempFile="${RamsFile}.temp" - RepackCmd="h5repack -f SHUF -f GZIP=$GzipLevel $RamsFile $TempFile" - echo "$RepackCmd" - $RepackCmd - - # only replace the original file if the repack command succeeded - if [ $? -eq 0 ] - then - MvCmd="mv $TempFile $RamsFile" - echo "$MvCmd" - $MvCmd - fi - fi -done - diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_job b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_job deleted file mode 100644 index d925327..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_job +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/bin/env bash - -############################################################################################## -# Script to automatically restart a RAMS simulation (HISTORY start). -# -# This is useful after starting the first run (RUNTYPE = 'INITIAL'), and you want -# to automatically fire off a new job via a history start (RUNTYPE = 'HISTORY'). - -Usage="USAGE: $0 " - -if [ $# != 3 ] -then - echo "ERROR: must supply exactly three arguments to script" - echo "" - echo $Usage - exit -1 -fi - -QsubScript=$1 -RamsFile=$2 -EndRamsFile=$3 - -echo "***************************************************************" -echo "Attempting to restart RAMS job" -echo " qsub script: $QsubScript" -echo " ramsin file: $RamsFile" -echo " end rams file: $EndRamsFile" -echo "" - -RamsFileTemplate="${RamsFile}.template" -if [ ! -f $RamsFileTemplate ] -then - echo "ERROR: cannot read RAMSIN template file: $RamsFileTemplate" - echo "" - echo $Usage - exit -2 -fi - -# Get the pbs job name from the qsub script file and see if the job is running. -# Unfortunately, the only way I know of getting the full job name is through -# the "qstat -f job_id" invocation of qstat. Doing less verbose options of qstat -# will truncate the name if longer than 11 or 15 characters. So, do an initial -# qstat to find the all of this users jobs that are in the queue, and check each -# one to see if it matches the full job name. -JobName=$(grep PBS $QsubScript | grep "\-N" | sed 's/.* //') -UserName=$(id -un) -NumJobsRunning=$( - for JobId in $(qstat -u $UserName | grep $UserName | sed 's/\..*//') - do - qstat -f $JobId | grep Job_Name | sed 's/.* //' - done | grep -c "^${JobName}$" - ) - -if [ $NumJobsRunning -gt 0 ] -then - echo "Job is still running, try again later" - exit 0 -fi - -# If we made it here, we are going to attempt a history start. -# -# Determine the file to use for the history start. Use either the last or next -# to last of the header files. The idea is that the RAMS analysis files are -# written before the header file so if a header file exists, the associated -# analysis files are intact. Ideally, you want to use the latest header file, -# but if the job died during the write of that header file, the restart won't -# work. If that's the case, the last header file will not match in size with -# the second to the last header file. In this case the second to last header -# file should be used for the restart. -# - If there are not at least two header files, then might as well do an -# initial run again. -# - If the sizes of the final two header files match, then use the final -# header file. -# - If the sizes don't match, use the second to last header file. - -# Get the analysis file prefix out of the RAMS file. -FilePref="$(sed 's/[!].*//g' $RamsFile | grep AFILEPREF | sed -e 's/.*=//' -e "s/[', \t]//g")-A-" - -# Set positional parameters to the final two header files. If there are < 2 files, -# then bail out. HeadFile1 will be the second to last file, HeadFile2 will be -# the last file. -set -- $(ls ${FilePref}*-head.txt | tail -n 2) -HeadFile1=$1 -HeadFile2=$2 -if [ "$HeadFile1" == "" ] || [ "$HeadFile2" == "" ] -then - echo "Not enough header files for a restart. Redo the INITIAL run." - exit 0 -fi - -# Get the sizes of the two header files. If sizes match, use header 2. -# If sizes don't match, use header 1. -SizeHF1=$(wc -c $HeadFile1 | sed 's/ .*//') -SizeHF2=$(wc -c $HeadFile2 | sed 's/ .*//') - -if [ $SizeHF1 -eq $SizeHF2 ] -then - RestartFile=$HeadFile2 -else - RestartFile=$HeadFile1 -fi - -# Check the restart file to see if it matches the end file. If so, then the -# job has completed in which case the restart is not necessary. -if [ "$RestartFile" == "$EndRamsFile" ] -then - echo "Job has completed, skipping restart." - exit 0 -fi - -# Change HFILIN to the new restart file in the RAMS file -# Use "@" for delimiter in the substitue command for sed below since -# RestartFile can contain slashes. -sed "s@@$RestartFile@g" $RamsFileTemplate > ${RamsFile}.temp -if [ $? -ne 0 ] -then - echo "Error occurred while attempting to change HFILIN in $RamsFile" - echo "Skipping the restart" - exit -3 -else - mv ${RamsFile}.temp $RamsFile -fi - -# Fire off the history restart -QsubCmd="qsub ./$QsubScript" - -echo "Restarting RAMS:" -echo " HFILIN: $RestartFile" -echo " Command: $QsubCmd" -echo "" - -$QsubCmd diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_rce_sims b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_rce_sims deleted file mode 100644 index 9a45bfb..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_rce_sims +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -############################################################################################## -# Script to restart a list of RCE simulations - -#SimList="RCE_3km_1mom_db_udef RCE_3km_1mom_db_rlongup RCE_3km_2mom_db_udef RCE_3km_2mom_db_rlongup" -SimList="RCE_CHAN_S300" - -echo "Restarting RCE simulations: $SimList" -echo - -for Sim in $SimList -do - cd $HOME/Sims/${Sim} - restart_job run_rams RAMSIN ./RAMS/${Sim}-A-2012-04-30-000000-head.txt - echo -done diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_1grid b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_1grid deleted file mode 100644 index b4fbe9d..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_1grid +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -############################################################################################## -# Script to restart the 1 grid TS Debby simulation - -#cd $HOME/Sims/TSD_SPIN_UP_1G -#restart_job run_rams RAMSIN.spin_up ./RAMS/TSD_SPIN_UP_1G-A-2006-08-22-060000-head.txt -cd $HOME/Sims/TSD_SD_1G -restart_job run_rams RAMSIN ./RAMS/TSD_SD_1G-A-2006-08-24-180000-head.txt diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_1km b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_1km deleted file mode 100644 index adfe8b9..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_1km +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -############################################################################################## -# Script to restart the 1 grid TS Debby simulation - -cd $HOME/Sims/TSD_SD_1KM -restart_job run_rams RAMSIN ./RAMS/TSD_SD_1G-A-2006-08-24-140000-head.txt diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_3grids b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_3grids deleted file mode 100644 index 97a72fb..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_3grids +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -############################################################################################## -# Script to restart the 3 grid TS Debby simulation - -#cd $HOME/Sims/TSD_SPIN_UP -#restart_job run_rams RAMSIN.spin_up ./RAMS/TSD_SPIN_UP-A-2006-08-22-060000-head.txt -cd $HOME/Sims/TSD_SD -restart_job run_rams RAMSIN ./RAMS/TSD_SD-A-2006-08-24-180000-head.txt diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_500m b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_500m deleted file mode 100644 index 2f7903b..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/restart_tsd_500m +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -############################################################################################## -# Script to restart the 1 grid TS Debby simulation - -cd $HOME/Sims/TSD_SD_500M -restart_job run_rams RAMSIN ./RAMS/TSD_SD_1G-A-2006-08-24-140000-head.txt diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/run_rams b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/run_rams deleted file mode 100644 index 3022384..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/run_rams +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -### Job Name -#PBS -N RceChS300 -### Project code -#PBS -A UCSU0054 -#PBS -l walltime=12:00:00 -#PBS -q economy -### Output and error files -#PBS -e LOG_FILES -#PBS -o LOG_FILES -### Select 42 nodes with 36 CPUs each for a total of 1512 MPI processes -### This yields an average of 397 columns/core -#PBS -l select=42:ncpus=36:mpiprocs=36 -### Send email on abort, begin and end -#PBS -m abe -### Specify mail recipient -#PBS -M stephen.herbener@colostate.edu - -### Run the executable -export MPI_TYPE_DEPTH=20 -#mpiexec_mpt dplace -s 1 ./rams -f RAMSIN -/glade/u/home/stephenh/Rams/misc/mpich2-1.4.1-install/bin/mpirun -np 1512 ./rams -f RAMSIN diff --git a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/x.repack.sh b/docs/ComputerDocs-Cheyenne/Scripts_and_Files/x.repack.sh deleted file mode 100644 index ef08f8a..0000000 --- a/docs/ComputerDocs-Cheyenne/Scripts_and_Files/x.repack.sh +++ /dev/null @@ -1,287 +0,0 @@ -#! /bin/bash -############################################################## -# Program: x.repack.sh -# Programmer: Robert Seigel -# University of Miami -# rseigel@rsmas.miami.edu -# 16 March 2013 -# Execute: x.repack.sh [] [] -# : surface or analysis MANDATORY -# []: MANDATORY if = analysis -# If using LSF job execution, then -# = Job Name -# If NOT using LSF job execution, then -# = 6.0-opt, if the -# executable is rams-6.0-opt -# []: OPTIONAL 3rd argument if RAMS has already -# finished and the user wants to repack all -# files in the supplied directory -# *** dummy argument 2 still required *** -# Purpose: This script repacks the HDF5 files while a distributive -# memory RAMS run is occurring. Because Parallel HDF5 is -# not yet supporting online compression, this script -# takes its place to conserve disk space. -# Overview: This script runs while RAMS is running. It first looks -# in RAMSIN to find where the files are being written. -# Then, it iteratively checks to see if new files are -# created. If a new file is output, it waits until the -# file is created and then uses h5repack to repack -# the HDF5 file. Once the RAMS processes are finished, -# x.repack.sh will terminate. -# -#****************************************************************** -# It is suggested to run this process in the background, as -# simulations often take a long time. To do so, here is an example: -# nohup x.repack.sh analysis 6.0-opt > repack.txt & -# This will execute x.repack.sh to repack the HDF5 analysis files -# that are output from rams-6.0-opt. The script output is placed -# in repack.txt for reference. -############################################################## - - -############################################################## -# FUNCTION to find the new file and repack it according to -# specified gzip level -repack () -{ - echo "Start repack" - - # Initialize some variables if this is our first entry into this routine - if [ $lastmod -eq 0 ]; then - newmod=0 - oldfsize=0 - fi - - # Loop over .h5 files in requested directory - for f in $thisdir*'.h5' - do - - # get time since file was last modified - modsecs=$(date --utc --reference=$f +%s) - nowsecs=$(date +%s) - delta=$(($nowsecs-$modsecs)) - filesize=$(stat -c%s "$f") - - # Test if the following are true in order to repack the file - # (1) Current file AGE is LE user-defined age threshold (filter out old sims) - # (2) Current file is EITHER (1) newer than previous file OR - # (2) larger than previous file - # (3) Current file SIZE is GT user-defined size threshold (filter out already - # repacked files) - if [[ $delta -le $repacksecs ]] && \ - [[ ( $modsecs -gt $lastmod || $filesize -gt $prevfilesize ) ]] && \ - [[ $filesize -gt $unpackFsize ]]; then - - # Wait UNTIL header file exists to make sure HDF5 write is done - if [ $runtype == "analysis" ]; then - hfile=${f:0:$((${#f}-5))}'head.txt' - - until [ -e $hfile ]; do sleep 1; done - - # Case where file is being overwritten - until [ ! $hfile -ot $f ]; do sleep 2; done - - # In case the header file is big - sleep 3 - fi - - # Repack the file - echo "h5repack -f SHUF -f GZIP=$gziplevel $f $f.temp" #***UNCOMMENT - h5repack -f SHUF -f GZIP=$gziplevel $f $f.temp #***UNCOMMENT - mv $f.temp $f #***UNCOMMENT - echo "New file $f has been repacked because it was created $delta secs ago" - newmod=$(date --utc --reference=$f +%s) - - # Now copy the file to a remote computer. RSA keys have already been generated. - #scp $f ldgrant@frost.atmos.colostate.edu:$supcelldir - #scp $hfile ldgrant@frost.atmos.colostate.edu:$supcelldir -# scp $f $copydir -# scp $hfile $copydir - - fi - prevfilesize=$(stat -c%s "$f") - - done - lastmod=$newmod -} -###################################################################################### -###################################################################################### -# ONLYEDIT THESE - -#set -x - -# Define some parameters -exectype=1 # Type of job execution. - # 1 = LSF - # 2 = Standard way, using a direct call to MPI -runtype=$1 # this is either surface or analysis from command line -ramsname=$2 # second command line input *MANDATORY for analysis* - # This is not used if exectype=1 -#repacksecs=108000 # maximum age in seconds of a file that is to be repacked (30 h) -repacksecs=1080000 # maximum age in seconds of a file that is to be repacked (30 h) -unpackFsize=5000 # megabyte threshold for unpacked file size (~ 5G) -#unpackFsize=1 # megabyte threshold for unpacked file size (~ 1M) -gziplevel=6 # gzip level -checkint=120 # in seconds -#supcelldir='/tasman/ldgrant/LPsup_300/' # Directory for file transfers -#copydir='ldgrant@frost.atmos.colostate.edu:/tasman/ldgrant/LPsup_300/z.'$2'/' # Directory for file transfers -#echo "copydir: $copydir" - -# END ONLYEDIT -###################################################################################### -###################################################################################### -# Perform some checks - -# Did the user input the process name during an analysis repack? -if [ "$ramsname" == "rams-" -a "$runtype" == "analysis" ]; then - echo 'Please specify the RAMS executable name, excluding rams-' - exit -fi -# Is the user exercising the 3rd argument? If so, dont read RAMSIN -if [ -z "$3" ]; then - RAMSINread=1 -else - RAMSINread=0 -fi -# Convert file size to megabytes -unpackFsize=$((unpackFsize*1024*1024)) - -############################################################## -# First Read RAMSIN to grab file locations -# This method is based on the fact that each RAMSIN parameter -# is preceeded by THREE SPACES. -if [ $RAMSINread -eq 1 ]; then - # TOPFILES - # find the line - topdir=`egrep '^ TOPFILES' RAMSIN` - # remove suffix from 2nd single quote - topdir=${topdir%\'*} - # remove prefix from 1st single quote - topdir=${topdir#*\'} - - # SFCFILES - sfcdir=`egrep '^ SFCFILES' RAMSIN` - sfcdir=${sfcdir%\'*} - sfcdir=${sfcdir#*\'} - - # SSTFILES - sstdir=`egrep '^ SSTFPFX' RAMSIN` - sstdir=${sstdir%\'*} - sstdir=${sstdir#*\'} - - # NDVIFILES - ndvidir=`egrep '^ NDVIFPFX' RAMSIN` - ndvidir=${ndvidir%\'*} - ndvidir=${ndvidir#*\'} - - # ANALFILES - analdir=`egrep '^ AFILEPREF' RAMSIN` - analdir=${analdir%\'*} - analdir=${analdir#*\'} -fi - -############################################################## -# Execute repacking of HDF5 files - -if [ -z "$3" ]; then - if [ "$runtype" == "surface" ]; then - - # topo files - lastmod=0 - thisdir=$topdir - repack - - # sfc files - lastmod=0 - thisdir=$sfcdir - repack - - # sst files - lastmod=0 - thisdir=$sstdir - repack - - # ndvi files - lastmod=0 - thisdir=$ndvidir - repack - - elif [ "$runtype" == "analysis" ]; then - - # Copy RAMSIN to the directory on frost - #scp RAMSIN ldgrant@frost.atmos.colostate.edu:$supcelldir -# scp RAMSIN $copydir - - - # analysis files - thisdir=$analdir - - # Determine job string for repack execution - if [ $exectype -eq 1 ]; then # LSF - jobout=$(bjobs | grep $ramsname | grep RUN 2>&1 | sed "s/ .*//") - elif [ $exectype -eq 2 ]; then # Standard - jobout=$(pidof -s $ramsname) - fi - echo "jobout1: $jobout" - - # Initialize filecounts. - # The repacking process can take a long time. During the repacking, files - # may be generated and the loop in 'repack' does not see them. These vars - # will test if new files have been created. - prefilecount=`ls -1 $thisdir*'.h5' | wc -l` - postfilecount=0 - echo "prefilecount, postfilecount: $prefilecount $postfilecount" - - # Continue to execute repack if (1) the model is running OR - # (2) the number of files have changed since - # last repack, i.e. new files were generated - lastmod=0 - while [[ -n "$jobout" ]] || [[ $prefilecount -ne $postfilecount ]] - do - - # Reset prefilecount before repack call - prefilecount=`ls -1 $thisdir*'.h5' | wc -l` - - # Execute the repack function. - repack - - # Regrab file count. If this number is different than prefilecount, the - # repack function will execute again - postfilecount=`ls -1 $thisdir*'.h5' | wc -l` - echo "prefilecount, postfilecount: $prefilecount $postfilecount" - - # execute time controller - sleep $checkint - - # Check again for job name to see if it finished - # Determine job string for repack execution - if [ $exectype -eq 1 ]; then # LSF - jobout=$(bjobs | grep $ramsname | grep RUN 2>&1) - elif [ $exectype -eq 2 ]; then # Standard - jobout=$(pidof -s $ramsname) - fi - echo "jobout2: $jobout" - done - # One final check after while loop to catch the ending file - #repack - - # We are done - echo $ramsname" finished and x.repack.sh is terminating" - else - echo "Runtype not recognized!" - echo "Runtype must be either 'surface' or 'analysis'" - exit - fi -else - lastmod=0 - repacksecs=31556900 # seconds in a year. If files are older, change. - thisdir=$3 # set directory to third argumemnt - repack - exit -fi - -exit - -############################################################### - - diff --git a/docs/ComputerDocs-Cheyenne/include.mk.cheyenne.mylibs b/docs/ComputerDocs-Cheyenne/include.mk.cheyenne.mylibs deleted file mode 100644 index 4372cd1..0000000 --- a/docs/ComputerDocs-Cheyenne/include.mk.cheyenne.mylibs +++ /dev/null @@ -1,117 +0,0 @@ -############################################################################# -# Define make (gnu make works best) -############################################################################# -MAKE=/usr/bin/make - -############################################################################# -# Set your RAMS root path and version number -############################################################################# -RAMS_ROOT=/glade/u/home/stephenh/Rams/rams_20171109_rce_6.2.08 -RAMS_VERSION=6.2.08 - -HDF5_ROOT=/glade/u/home/stephenh/Rams/misc/hdf5-1.8.9-install -MPI_ROOT=/glade/u/home/stephenh/Rams/misc/mpich2-1.4.1-install - -MODEL=$(RAMS_ROOT)/src/$(RAMS_VERSION) -UTILS_INCS=-I$(MODEL)/include - -############################################################################# -# HDF libraries -# Note that linking libraries below are in a particular order to work! -############################################################################# -HDF5_LIBS=-L$(HDF5_ROOT)/lib -lhdf5_hl -lhdf5 -lz -HDF5_INCS=-I$(HDF5_ROOT)/include -HDF5_DEFS= - -############################################################################# -# TYPE OF COMPUTER SYSTEM (used for DEFINE statements for intrinsic calls) -############################################################################# -CMACH=PC_LINUX1 #Standard Linux (only option available now) - -############################################################################# -# UNCOMMENT 1 LINUX FORTRAN COMPILER SET OF FLAGS BELOW -############################################################################# -# Note that some Fortran optimizations greater than -O1 will not necessarily -# produce identical results when running same executable multiple times. -# This is perhaps due to order of operations or unrolling loop order that -# changes solutions slightly. This is not ideal for research applications -# involving sensitivity studies that require exact duplication. As such, -# the Makefile is setup to allow different optimizations for different source -# files. The F_OPTS1 and F_OPTS2 variables below can hold different compiler -# flags as needed. Further, for duplication of results you may need to force -# IEEE standard which is done in examples below. -# Please coordinate variables below with the commands in the Makefile. -# Mandatory fortran variables are (F_COMP, F_OPTS1, F_OPTS2, LOADER,OPTS). - -#Definitions of compiler flags below -# F_COMP = path to compiler executable -# F_OPTS1 = Uses of flags for lower optimization for some files -# F_OPTS2 = Uses of flags for higher optimization for some files -# LOADER_OPTS = Flags and optimaztion for LOADER -# LIBS = Extra system libraries for linking that some compilers need - -#***************************** -# FOR INTEL IFORT COMPILER -#***************************** -# (-g) for debugging, (-traceback) for more compiler error info -# (-check bounds) for array bounds checking, (-fp-model precise) for IEEE -# (-check uninit) for finding uninitialized variables, (-free) for free format -F_COMP=ifort -F_OPTS=-free -static-intel -fp-model precise -traceback -march=corei7 -axAVX -F_OPTS1=-O1 $(F_OPTS) -F_OPTS2=-O2 $(F_OPTS) - -LOADER=$(F_COMP) -LOADER_OPTS=$(F_OPTS2) - -#***************************** -# FOR PGI PGF90 COMPILER -#***************************** -# (-g) for debugging, (-Kieee) for IEEE, (-Mfree) for free format -#F_COMP=/usr/local/pgi/linux86-64/15.10/bin/pgf90 -#F_OPTS1=-Mfree -O1 -Kieee -#F_OPTS2=-Mfree -O2 -Kieee -#LOADER_OPTS=-Mfree -O2 -Kieee -#LIBS= - -#***************************** -# FOR GFORTRAN COMPILER -#***************************** -# (-Wall) for warnings, (-ffree-form) for free format -# (-fno-sign-zero) for not making zeros negative values -# (-fcheck=bounds) check for array bounds issues -# (-fcheck=all) all runtime checking -#F_COMP=/usr/bin/gfortran -#F_OPTS1=-ffree-form -O1 -#F_OPTS2=-ffree-form -O2 -#LOADER_OPTS=-ffree-form -O2 -#LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread - -############################################################################# -# LINUX C compiler choice and flags (gcc) -############################################################################# -C_COMP=$(MPI_ROOT)/bin/mpicc -C_OPTS=-O3 -DUNDERSCORE -DLITTLE - -############################################################################# -# System archive command syntax -############################################################################# -ARCH=ar rs - -############################################################################# -# MPI - parallel processing choices -############################################################################# -#PAR_LIBS= #leave blank (override below if using MPI) -#PAR_DEFS= #leave blank (override below if using MPI) -#---------------------------------------------------------------------------- -# If using MPI libraries: -#---------------------------------------------------------------------------- -#---------------LINUX MPICH---------------------------------------------------- -PAR_INCS=-I$(MPI_ROOT)/include -PAR_LIBS=-L$(MPI_ROOT)/lib -lmpich -lmpl -llmpe -lrt -PAR_DEFS=-DRAMS_MPI - -#---------------LINUX OPENMPI------------------------------------------------ -#PAR_INCS=-I$(MPI_ROOT)/include -#PAR_LIBS=-L$(MPI_ROOT)/lib -lmpi -#PAR_DEFS=-DRAMS_MPI diff --git a/docs/GridStruct3D.pdf b/docs/GridStruct3D.pdf new file mode 100644 index 0000000..7077f99 Binary files /dev/null and b/docs/GridStruct3D.pdf differ diff --git a/docs/GridStructXY.pdf b/docs/GridStructXY.pdf new file mode 100644 index 0000000..4ebefa9 Binary files /dev/null and b/docs/GridStructXY.pdf differ diff --git a/docs/GridStructXZ.pdf b/docs/GridStructXZ.pdf new file mode 100644 index 0000000..0fd9d38 Binary files /dev/null and b/docs/GridStructXZ.pdf differ diff --git a/docs/RAMS-Namelist.pdf b/docs/RAMS-Namelist.pdf index b1665e9..7b34e13 100644 Binary files a/docs/RAMS-Namelist.pdf and b/docs/RAMS-Namelist.pdf differ diff --git a/docs/RAMS-OutputVariablesREVU.pdf b/docs/RAMS-OutputVariablesREVU.pdf index 8db4d45..b9d4edb 100644 Binary files a/docs/RAMS-OutputVariablesREVU.pdf and b/docs/RAMS-OutputVariablesREVU.pdf differ diff --git a/docs/RAMS-Updates.pdf b/docs/RAMS-Updates.pdf index 4f50c52..8086d32 100644 Binary files a/docs/RAMS-Updates.pdf and b/docs/RAMS-Updates.pdf differ diff --git a/docs/RAMS-VariableList.pdf b/docs/RAMS-VariableList.pdf index 9b1c80e..19ca5a9 100644 Binary files a/docs/RAMS-VariableList.pdf and b/docs/RAMS-VariableList.pdf differ diff --git a/docs/RAMS-radiation-bands.pdf b/docs/RAMS-radiation-bands.pdf new file mode 100644 index 0000000..3ac851c Binary files /dev/null and b/docs/RAMS-radiation-bands.pdf differ diff --git a/docs/README-FIRST-RAMS.pdf b/docs/README-FIRST-RAMS.pdf index 0444e75..9adf835 100644 Binary files a/docs/README-FIRST-RAMS.pdf and b/docs/README-FIRST-RAMS.pdf differ diff --git a/include.mk b/include.mk index 8c17846..3832d0d 100644 --- a/include.mk +++ b/include.mk @@ -1,3 +1,17 @@ +# NOTES: +# For doing parallel simulations, compile MPICH or OPENMPI with both FORTRAN +# and C bindings turned on like the following configure statement for +# compiling MPICH. Most of the time you enter the software package main +# directory, issue the "configure" command, run "make", and then "make install". +# For the configure statement to work, your ".bash_profile" needs to know "which" +# C and Fortran compilers you are using. After compiling MPICH in this example, +# it will create "mpif90" and "mpicc" that you can use in this include.mk file +# for "F_COMP" and "C_COMP" env variables below. Make sure the paths to these +# compilers and associated libraries are in your .bash_profile PATH and +# LD_LIBRARY_PATH as needed. +# ./configure --prefix=/file-path-here-for-mpi/mpich-3.3.2 \ +# --enable-fast=O3 CPPFLAGS=-DNDEBUG CC=gcc FC=ifort + ############################################################################# # Define make (gnu make works best). ############################################################################# @@ -6,8 +20,8 @@ MAKE=/usr/bin/make ############################################################################# # Set your RAMS root path and version number. ############################################################################# -RAMS_ROOT=/home/smsaleeb/rams_20210806_dev -RAMS_VERSION=6.3.02 +RAMS_ROOT=/home/smsaleeb/rams_git_dev +RAMS_VERSION=6.3.04 ############################################################################# # Set root locations for HDF5 I/O software. @@ -23,12 +37,12 @@ H5Z_ZFP_ROOT=/home/pmarin/misc/h5z_zfp_git/H5Z-ZFP/install # For ZFP Compression # Set root locations for parallel processing MPI software. # You can comment out MPI_ROOT for serial processing compile. ############################################################################# -MPI_ROOT=/home/smsaleeb/software/mpich-3.3.2 +MPI_ROOT=#/home/smsaleeb/software/mpich-3.3.2 ############################################################################# # Do not change these 2. They point from RAMS_ROOT to the source code. ############################################################################# -MODEL=$(RAMS_ROOT)/src/$(RAMS_VERSION) +MODEL=$(RAMS_ROOT)/src UTILS_INCS=-I$(MODEL)/include ############################################################################# @@ -80,11 +94,41 @@ CMACH=PC_LINUX1 #Standard Linux (only option available now) # (-g) for debugging, (-traceback) for more compiler error info # (-check bounds) for array bounds checking, (-fp-model precise) for IEEE # (-check uninit) for finding uninitialized variables, (-free) for free format -F_COMP=/home/smsaleeb/intel/composer_xe_2011_sp1.8.273/bin/intel64/ifort -F_OPTS1=-free -O1 -fp-model precise -F_OPTS2=-free -O2 -fp-model precise -LOADER_OPTS= -free -O2 -fp-model precise -LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread -lsz -lz +#F_COMP=/home/smsaleeb/intel/composer_xe_2011_sp1.8.273/bin/intel64/ifort +#F_COMP=/home/smsaleeb/software/mpich-3.3.2/bin/mpif90 +F_COMP=mpif90 + +# Options going from fastest to slowest -- but slowests produce exact results regardless of system + +# Basic +#F_OPTS1=-free -O1 -fp-model precise +#F_OPTS2=-free -O2 -fp-model precise +#LOADER_OPTS= -free -O2 -fp-model precise +#LIBS=-L/usr/lib/x86_64-linux-gnu -L/nasa/szip/2.1.1/lib -lrt -lpthread -lsz -lz + +# Strict +#F_OPTS1=-free -O1 -fp-model strict +#F_OPTS2=-free -O2 -fp-model strict +#LOADER_OPTS= -free -O2 -fp-model strict +#LIBS=-L/usr/lib/x86_64-linux-gnu -L/nasa/szip/2.1.1/lib -lrt -lpthread -lsz -lz + +# All Intel - will produce idential results on all intel sytems +#F_OPTS1=-free -O1 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high +#F_OPTS2=-free -O2 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high +#LOADER_OPTS= -free -O2 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high +#LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread -lsz -lz -L/nasa/szip/2.1.1/lib + +# AMD Compatible Intel -- will produce the exact same results as AMD Rome, but will not work on AMD Rome due to +# AVX512, which does not work on AMD Rome (but should work on newer AMD systems) +#F_OPTS1=-free -O1 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high -fimf-arch-consistency=true +#F_OPTS2=-free -O2 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high -fimf-arch-consistency=true +#LOADER_OPTS= -free -O2 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high -fimf-arch-consistency=true +#LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread -lsz -lz -L/nasa/szip/2.1.1/lib + +F_OPTS1=-free -O1 -fp-model strict -ipo -march=core-avx2 -qopt-zmm-usage=high -fimf-arch-consistency=true #-real-size 64 +F_OPTS2=-free -O2 -fp-model strict -ipo -march=core-avx2 -qopt-zmm-usage=high -fimf-arch-consistency=true #-real-size 64 +LOADER_OPTS=-free -O2 -fp-model strict -ipo -march=core-avx2 -qopt-zmm-usage=high -fimf-arch-consistency=true #-real-size 64 +LIBS=-L/lib64 -lrt -lpthread -lsz -lz -L/nasa/szip/2.1.1/lib #***************************** # FORTRAN INTEL IFORT COMPILER Double Precision @@ -126,7 +170,7 @@ LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread -lsz -lz ############################################################################# # C compiler choice and flags (gcc) and (mpicc) are most common # Add the "-DRAMS_DOUBLE_PREC" compiler flag to "C_OPTS" for turning on -# double precision rather than default double precision. Note that using +# double precision rather than default single precision. Note that using # double will make output and runtimes substantially longer but provide the # extra precision needed in some highly sensitive simulations. # @@ -146,7 +190,7 @@ LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread -lsz -lz # that are not really as issue for us, but you can turn warnings back on by # removing the "-w" if you wish to alter code to eliminate warnings. ############################################################################# -C_COMP=gcc +C_COMP=mpicc C_OPTS=-O3 -DUNDERSCORE -DLITTLE -std=gnu99 -DENABLE_PARALLEL_COMPRESSION -w -DENABLE_ZFP_COMPRESSION #C_OPTS=-O3 -DUNDERSCORE -DLITTLE -std=gnu99 -DRAMS_DOUBLE_PREC \ # -DENABLE_PARALLEL_COMPRESSION -w @@ -166,9 +210,10 @@ ARCH=ar rsU # software and HDF5 software. # Add or remove needed libraries to PAR_LIBS. Missing or needed libraries # will be highlighted in compile time error messages. Typical library -# specs are: -lmpich, -lmpl, -lmpi. +# specs are: -lmpich, -lmpl, -lmpi, -lmpifort # Comment out these "PAR_" lines for serial processing compile. ############################################################################# -PAR_INCS=-I$(MPI_ROOT)/include -PAR_LIBS=-L$(MPI_ROOT)/lib -lmpich -lmpl +#PAR_INCS=-I$(MPI_ROOT)/include +#PAR_LIBS=-L$(MPI_ROOT)/lib -lmpich -lmpl +#PAR_LIBS=-L$(MPI_ROOT)/lib PAR_DEFS=-DRAMS_MPI diff --git a/run/CCCX.X-M-V1/RAMSIN.INCUS.V1 b/run/CCCX.X-M-V1/RAMSIN.INCUS.V1 new file mode 100755 index 0000000..cd89564 --- /dev/null +++ b/run/CCCX.X-M-V1/RAMSIN.INCUS.V1 @@ -0,0 +1,855 @@ +!namelist + + $MODEL_GRIDS + +! Simulation title (64 chars) + + EXPNME = 'EXPERIMENT_ABBREVIATION_#Grids', !CHANGEME + +! Type of model run to perform + + RUNTYPE = 'INITIAL', !CHANGEME +! RUNTYPE = 'MAKESFC', +! RUNTYPE = 'MAKEVFILE', +! RUNTYPE = 'MAKEHFILE', +! RUNTYPE = 'HISTORY', +! RUNTYPE = 'ERROR', + + TIMEUNIT = 'h', ! 'h','m','s' - Time units of TIMMAX, TIMSTR + + TIMMAX = 8.5, ! Final time of simulation !CHANGEME + +! Start of simulation or ISAN processing + + IMONTH1 = 12, ! Month !CHANGEME + IDATE1 = 13, ! Day !CHANGEME + IYEAR1 = 2018, ! Year !CHANGEME + ITIME1 = 1200, ! GMT of model TIME = 0. !CHANGEME + +! Grid specifications + + NGRIDS = 3, ! Number of grids to run !CHANGEME + + NNXP = 490,702,1950, ! Number of x gridpoints !CHANGEME + NNYP = 490,702,1922, ! Number of y gridpoints !CHANGEME + NNZP = 232,232,232, ! Number of z gridpoints + NZG = 11, ! Number of soil layers + NZS = 1, ! Maximum number of snow layers + + NXTNEST = 0,1,2, ! Grid number which is the next coarser grid + + IPRNTSTMT = 1, ! Output extra print statements: 0=no,1=yes + +! Coarse grid specifications + + IHTRAN = 1, ! 0-Cartesian, 1-Polar stereo + DELTAX = 1600., ! X-Y grid spacing (meters) + DELTAZ = 50., ! Z grid spacing (set to 0. to use ZZ) + DZRAT = 1.03, ! Vertical grid stretch ratio + DZMAX = 125., ! Maximum delta Z for vertical stretch + + ZZ = 0.0, ! Vertical levels if DELTAZ = 0 + 20.0, 46.0, 80.0, 120.0, 165.0, + 220.0, 290.0, 380.0, 480.0, 590.0, + 720.0, 870.0, 1030.0, 1200.0, 1380.0, + 1595.0, 1850.0, 2120.0, 2410.0, 2715.0, + 3030.0, 3400.0, 3840.0, 4380.0, 5020.0, + 5800.0, 6730.0, 7700.0, 8700.0, 9700.0, + 10700., 11700., 12700., 13700., 14700., 15700., 16700., + 17700., 18700., 19700., + + DTLONG = 0.5, ! Coarse grid long timestep + NACOUST = 5, ! Small timestep ratio + + ! Nest ratios between this grid and the next coarser grid. + NSTRATX = 1,4,4,4, ! x-y-direction + NNDTRAT = 1,1,1,3, ! Time + + NESTZ = 0, ! Contort coarser grids if negative + NSTRATZ = 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, ! + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + + POLELAT = -31.8, ! If polar, latitude/longitude of pole point !CHANGEME + POLELON = -63.6, !CHANGEME + + ! Grid point on the next coarser nest where the lower southwest + ! corner of this nest will start. + ! If NINEST or NJNEST = 0, use CENTLAT/CENTLON + + NINEST = 1,0,0,0, ! i-point + NJNEST = 1,0,0,0, ! j-point + NKNEST = 1,1,1,1, ! k-point + + CENTLAT = -31.8,-33.1,-33.15, ! Center lat/lon of grids, may or !CHANGEME + CENTLON = -63.6,-62.5,-62.45, ! may not be same as pole point !CHANGEME + + NNSTTOP = 1,1,1,1, ! Flag (0-no or 1-yes) if this + NNSTBOT = 1,1,1,1, ! Nest goes the top or bottom of the + ! coarsest nest. + + $END + + $MODEL_FILE_INFO + +! Variable initialization input + + INITIAL = 2, ! Initial fields - 1=horiz.homogeneous, !CHANGEME + ! 2=init from varfile + ! 3=init from history + +! ------ Analysis nudging parameters ----------------------------------- + NUD_TYPE = 1, ! =0 - no analysis nudging + ! =1 - nudge from varfiles + + VARFPFX = '/nobackup/pmarines/V/S/CA_B1_3G/T4/var/var', ! Varfile prefix !CHANGEME + VWAIT1 = 0., ! wait between each VFILE check (s) + VWAITTOT = 0., ! total wait before giving up on a VFILE (s) + + NUDLAT = 25, ! Number of points in lateral bnd region !(2.5% of max(nnxp,nnyp)) + TNUDLAT = 900., ! Nudging time scale(s) at lateral boundary + TNUDCENT = 0., ! Nudging time scale(s) in center of domain + TNUDTOP = 900., ! Nudging time scale (s) at top of domain + ZNUDTOP = 23000., ! Nudging at top of domain above height(m) + + WT_NUDGE_G = 1., 0.8, 0.7, 0.5, ! Relative nudging weights for active grids + ! =0., turns off nudging for that grid + + ! These weights will multiply the base timescales + ! to determine full nudging weight. + ! (Timescales)/(WT_NUDGE_*) + ! must be larger than DTLONG + WT_NUDGE_UV = 1., ! Anal nudging weight for u and v + WT_NUDGE_TH = 1., ! Anal nudging weight for theta + WT_NUDGE_PI = 1., ! Anal nudging weight for pi + WT_NUDGE_RT = 1., ! Anal nudging weight for r_tot + +!------------------------------------------------------------------------- + +!----------- Condensate nudging ------------------------------------------ +! Only nudge total water where condensate exists. Even if turned on, this +! will not occur using traditional varfiles. Requires use of History-Varfiles +! made from a MAKEHFILE run where condensate is ingested from History files. + + NUD_COND = 0, + TCOND_BEG = 0., ! Model time start of cond nudging (sec) + TCOND_END = 21600., ! Model time end of cond nudging (sec) + T_NUDGE_RC = 3600., ! Cond nudging timescale for r_total + WT_NUDGEC = 1.,0.8,0.7,0.5, ! Relative nudging weights for active grids + ! =0., turns off nudging for that grid +!------------------------------------------------------------------------- + +!--------- Observation Data Assimilation (ODA) --------------------------------- + IF_ODA = 0, ! Flag to turn on oda + ODA_UPAPREF = './zobs/dp-r', ! File prefix for upper air obs + ODA_SFCPREF = './zobs/dt-s', ! File prefix for surface obs + + FRQODA=300., ! Frequency of obs analysis + TODABEG=0., + TODAEND=99999999., ! Model time start and end of oda (sec) + + TNUDODA= 900., ! Nudging timescale for each grid + WT_ODA_GRID = 1., 0.8, 0.7, 0.5, ! Relative nudging weights for active grids + ! =0., turns off nudging for that grid + + WT_ODA_UV = 1., ! ODA nudging weight for u and v + WT_ODA_TH = 1., ! ODA nudging weight for theta + WT_ODA_PI = 1., ! ODA nudging weight for pi + WT_ODA_RT = 1., ! ODA nudging weight for r_tot + + ! Following are radii that affect the "smoothness" of the analyzed fields + ! The SFCE and UPAE are the radii where the affect falls off to e**(-2) + ! The SFC0 and UPA0 are the radii where the affect falls off to 0 + ! Values are grid dependent. + + RODA_SFCE = 50000.,100.,100.,100., + RODA_SFC0 = 100000.,100000.,100000.,100000., + RODA_UPAE = 100000.,200.,200.,200., + RODA_UPA0 = 200000.,2000.,2000.,2000., + + RODA_HGT = 3000.,3000.,3000.,3000., ! Height at which transition from SFC radii + ! to UPA radii occurs + + RODA_ZFAC = 100.,100.,100.,100., ! Vertical factor related to dx/dz + + ! - Time interpolate limit (TIL)- if the future-past obs time + ! is > this limit, do not use to interpolate + ! + ! - Time extrapolate limit (TEL)- if past/future obs is greater than TIL, + ! but less than TEL, use the obs + + ODA_SFC_TIL=21600., + ODA_SFC_TEL=900., + ODA_UPA_TIL=43200., + ODA_UPA_TEL=21600., +!------------------------------------------------------------------------ + +! History start (if RUNTYPE='HISTORY') + +HFILIN = '/nobackup/pmarines/V/S/CA_B1_3G/T4/r/a-A-2018-12-13-183000-head.txt', + ! Input state file name !CHANGEME + +! Analysis file input for assimilation: 1=yes, 0=no + + IPAST_SFC = 0, ! Initialize LEAF fields from history !CHANGEME for history restarts + +!------------------------------------------------------------------------ + ICLOBBER = 1, ! 0=stop if files exist, 1=overwite files +!------------------------------------------------------------------------ + +! Analysis file output + + IOUTPUT = 1, ! 0-no files, 1-write files + AFILEPREF = '/nobackup/pmarines/V/S/CA_B1_3G/T4/G3/h1.1/a', !CHANGEME + ! File prefix for all analysis files + ! state,mean,lite,both + +!------------------------------------------------------------------------ + FRQSTATE = 1800.,1800.,1800., ! "state" file write frequency !CHANGEME + ! can be different for each grid + ! works best if grids are multiples of each other + FRQST_KEEP = 0.,0.,0., ! If > 0., frequency at which "state" files will be + ! kept. Others will be written, but deleted on + ! the subsequent write. + ! Intended to be a mutiple of and >= FRQSTATE +!----------------------------------------------------------------------- + FRQLITE = 300, ! Frequency for "lite" files !CHANGEME + ! 300s (5 min) for G1&G2 / 30s for G3 + ! = 0 : no lite files + NLITE_VARS = 49, + + LITE_VARS= 'THETA','RV','WP','VP','UP','PI','PP', ! 3D State (7) + 'CCP','CDP','CRP','CHP','CGP','CPP','CAP','CSP', ! 3D Number concentration (8) + 'CN1NP','REGEN_AERO1_NP','CIFNP', ! 3D Aerosol # Concentrations (3) + 'RCP','RDP','RRP','RHP','RGP','RPP','RAP','RSP', ! 3D Mixing Ratio (8) + 'LATHEATVAP','LATHEATFRZ','FTHRD','RTP', ! 3D rates (4) + 'SOIL_ENERGY','SOIL_WATER', ! 4D Soil (2) + 'USTAR','CAN_TEMP','PATCH_ROUGH','VEG_TEMP', ! 3D Soil (4) + 'GLAT','GLON','TOPT', ! 2D Basic (3) + 'PCPRR','PCPRP','PCPRS','PCPRA','PCPRG','PCPRH','PCPRD', ! 2D Precip Rates (7) + 'SFLUX_T','SFLUX_R','RLONTOP', ! 2D Flux/Radiation (3) + + ! Accuracy of the lite vars if using ZFP/lossy compression + ! Use 0 for lossless compression + ! Using nonzero values requires compiling with -DENABLE_ZFP_COMPRESSION + ! on the C compiler. + + ACC_LT_VAR= 0.001, 0.0000001, 0.001, 0.001, 0.001, 0.0001, 0.000001, ! 'THETA','RV','WP','VP','UP','PI','PP', + 0.1, 0.1, 0.1, 0.1, ! 'CCP','CDP','CRP','CHP', + 0.1, 0.1, 0.1, 0.1, ! 'CGP','CPP','CAP','CSP', + 10.0, 10.0, 10.0, ! 'CN1NP','REGEN_AERO1_NP','CIFNP' + 0.00000001, 0.00000001, 0.00000001, 0.00000001, ! 'RCP','RDP','RRP','RHP', + 0.00000001, 0.00000001, 0.00000001, 0.00000001, ! 'RGP','RPP','RAP','RSP', + 0.0000001, 0.0000001, 0.00000001, 0.0000001, ! 'LATHEATVAP','LATHEATFRZ','FTHRD','RTP', + 10000.0, 0.0001, ! 'SOIL_ENERGY','SOIL_WATER', + 0.0001, 0.001, 0.0001, 0.1 ! 'USTAR','CAN_TEMP','PATCH_ROUGH','VEG_TEMP', + 0.0, 0.0, 0.1, ! 'GLAT','GLON','TOPT', + 0.00001, 0.00001, 0.00001, 0.00001, ! 'PCPRR','PCPRP','PCPRS','PCPRA', + 0.00001, 0.00001, 0.00001, ! 'PCPRG','PCPRH','PCPRD', + 0.00001, 0.00000001, 0.01, ! 'SFLUX_T','SFLUX_R','RLONTOP', + +!----------------------------------------------------------------------- + AVGTIM = 0., ! Averaging time for analysis variables + ! must be abs(AVGTIM) <= FRQANL + ! > 0 : averaging is centered at FRQANL + ! < 0 : averaging ends at FRQANL + ! = 0 : no averaged files + FRQMEAN = 0., ! Frequency for "averaged" files + FRQBOTH = 0., ! Frequency for Both ("averaged"/"lite") files + +! Input topography variables !CHANGEME (Paths) + + TOPFILES = '/nobackup/pmarines/V/S/CA_B1_3G/T4/sfc/toph', ! Path and prefix for topo files. !CHANGEME + SFCFILES = '/nobackup/pmarines/V/S/CA_B1_3G/T4/sfc/sfch', ! Path and prefix for surface files.!CHANGEME + SSTFPFX = '/nobackup/pmarines/V/S/CA_B1_3G/T4/sfc/ssth', ! Path and prefix for sst files !CHANGEME + NDVIFPFX = '/nobackup/pmarines/V/S/CA_B1_3G/T4/sfc/ndh', ! Path and prefix for ndni files !CHANGEME + + ITOPTFLG = 1,1,1, ! 2 - Fill data in "leaf3_init" + ISSTFLG = 1,1,1, ! 0 - Interpolate from coarser grid + IVEGTFLG = 1,1,1, ! 1 - Read from standard Lat/Lon data file + ISOILFLG = 1,1,1, ! + NDVIFLG = 1,1,1, ! + + IUPDNDVI = 0, ! 0 - No update of NDVI values during run + IUPDSST = 0, ! 0 - No update of SST values during run + ! 1 - Update values during run + + ! The following only apply for IxxxxFLG=1 + + ITOPTFN = '/nobackup/pmarines/rams_topo/gmted2010-h5/TM', !CHANGEME + '/nobackup/pmarines/rams_topo/gmted2010-h5/TM', !CHANGEME + '/nobackup/pmarines/rams_topo/gmted2010-h5/TM', !CHANGEME + ISSTFN = '/nobackup/pmarines/rams_topo/sst-h5/S', !CHANGEME + '/nobackup/pmarines/rams_topo/sst-h5/S', !CHANGEME + '/nobackup/pmarines/rams_topo/sst-h5/S', !CHANGEME + IVEGTFN = '/nobackup/pmarines/rams_topo/ogedata-h5/GE', !CHANGEME + '/nobackup/pmarines/rams_topo/ogedata-h5/GE', !CHANGEME + '/nobackup/pmarines/rams_topo/ogedata-h5/GE', !CHANGEME + ISOILFN = '/nobackup/pmarines/rams_topo/FAOdata-h5/FAO', !CHANGEME + '/nobackup/pmarines/rams_topo/FAOdata-h5/FAO', !CHANGEME + '/nobackup/pmarines/rams_topo/FAOdata-h5/FAO', !CHANGEME + NDVIFN = '/nobackup/pmarines/rams_topo/ndvi-h5/', !CHANGEME + '/nobackup/pmarines/rams_topo/ndvi-h5/', !CHANGEME + '/nobackup/pmarines/rams_topo/ndvi-h5/', !CHANGEME + +! Topography scheme + + ITOPSFLG = 3,3,3, ! 0 = Average Orography + ! 1 = Silhouette Orography + ! 2 = Envelope Orography + ! 3 = Reflected Envelope Orography + + TOPTENH = 1.,1.,1.,1., ! For ITOPSFLG=1, Weighting of topo + ! silhouette averaging + ! For ITOPSFLG=2 or 3, Reflected Envelope + ! and Envelope Orography enhancement factor + + TOPTWVL = 4.,4.,4.,4., ! Topo wavelength cutoff in filter + +! Surface Roughness scheme + + IZ0FLG = 0,0,0,0, ! 0 = Use veg, bare soil and water surface + ! 1 = Also use subgrid scale topography + Z0MAX = 5.,5.,5.,5., ! Max zo for IZ0FLG=1 + Z0FACT = 0.005, ! Subgrid scale orograhic roughness factor + + $END + + $MODEL_OPTIONS + +! Numerical schemes + + ICORFLG = 1, ! Coriolis flag/2D v-component - 0=off, 1=on + + IBND = 1, ! Lateral boundary condition flags + JBND = 1, ! 1-Klemp/Wilhelmson, 2-cyclic + + CPHAS = 30., ! Phase speed if IBND or JBND = 1 + LSFLG = 2, ! Large-scale gradient flag for variables other than + ! normal velocity: + ! 0 = zero gradient inflow and outflow + ! 1 = zero gradient inflow, radiative b.c. outflow + ! 2 = constant inflow, radiative b.c. outflow + ! 3 = constant inflow and outflow + NFPT = 0, ! Rayleigh friction - number of points from the top + DISTIM = 60., ! - dissipation time scale + + ISPONGE_PTS = 0,5,8, ! Number of nested grid boundary sponge points !CHANGEME + SPONGE_TAU = 0.,30.,30., ! Nested grid sponge zone time scale (seconds) + +! Radiation parameters + + ISWRTYP = 3, ! Shortwave radiation type + ILWRTYP = 3, ! Longwave radiation type + ! 0-none, 2-Mahrer/Pielke, 1-Chen, 3-Harrington + RADFRQ = 30., ! Freq. of radiation tendency update (s) + LONRAD = 1, ! Longitudinal variation of shortwave + ! (0-no, 1-yes) + +! Cumulus parameterization parameters + + NNQPARM = 0,0,0, ! Convective param (0-off,1-Kuo,2-Kain-Fritsch) + CONFRQ = 1200., ! Frequency of conv param. updates (s) + WCLDBS = .01, ! Vertical motion needed at cloud base for + ! to trigger convection (Kuo) + +! KPP mixed-layer single-column ocean model + + IKPP = 0, ! Ocean model (0-off, 1-on, 2-more diagnostics) + DMAXKPP = 500., ! Maximum ocean depth (meters) + NKPPZ = 48, ! Number of ocean layers (levels = layers+1) + DSCALEKPP = 3., ! Set exponential for stretched grid + FRQKPP = 120., ! Timestep of ocean model (sec) + RELAX_SST = 0., ! Timescale (days) for SST nudging + RELAX_OCNT = 20., ! Timescale (days) for ocean column temp nudging + RELAX_SAL = 20., ! Timescale (days) for ocean column salinity nudging + KPPITERMAX = 20, ! Max number of iterations allowed + KPPRNT = 0, ! Sample output print to screen: 0=no, 1=yes + UBMN_KPP = 3., ! UBMIN for KPP wind stress and LEAF-3 if using KPP + +! Surface layer and soil parameterization + + NPATCH = 2, ! Number of patches per grid cell (min=2) + + NVEGPAT = 1, ! Number of patches per grid cell to be + ! filled from + ! vegetation files + ! (min of 1, max of NPATCH-1) + + ISFCL = 1, ! Surface layer/soil/veg model + ! 0-specified surface layer gradients + ! 1-LEAF3 model, 2-SiB model + + IFREESLIP = 0, ! Freeslip BC: 0=NO, 1=YES + + ! Data file for SIB surface characteristics + SIBFILE = '../etc/SiB-Veg-Morphology.txt', + + ! CO2 vertical profile for SiB submodel initialization. [ppm] + CO2_INIT = 360., 360., 360., 355., 355., 355., 350., 350., 340., + + ISOILDAT = 1, ! Soil moisture and temperature initialization + ! 0 = homogeneous default, 1 = varfile ingest + SNUDCENT = 0., ! Soil moisture interior nudging time scale (sec) + ISNOWDAT = 1, ! Snow depth and mass initialization + ! 0 = homogeneous zero default, 1 = varfile ingest + + NVGCON = 8, ! Vegetation type (see below) + + ! 0 Ocean ! 11 Tundra + ! 1 Lakes, rivers, streams ! 12 Evergreen shrub + ! 2 Ice cap/glacier ! 13 Deciduous shrub + ! 3 Desert, bare soil ! 14 Mixed woodland + ! 4 Evergreen needleleaf tree ! 15 Crop/mixed farming, C3 grassland + ! 5 Deciduous needleleaf tree ! 16 Irrigated crop + ! 6 Deciduous broadleaf tree ! 17 Bog or marsh + ! 7 Evergreen broadleaf tree ! 18 Wooded grassland + ! 8 Short grass ! 19 Urban and built up + ! 9 Tall grass ! 20 Wetland evergreen broadleaf tree + ! 10 Semi-desert ! 21 Very urban + + PCTLCON = 0.0, ! Constant land % if for all domain + NSLCON = 11, ! Constant soil type if for all domain + + ! 1 -- sand 2 -- loamy sand 3 -- sandy loam + ! 4 -- silt loam 5 -- loam 6 -- sandy clay loam + ! 7 -- silty clay loam 8 -- clay loam 9 -- sandy clay + ! 10 -- silty clay 11 -- clay 12 -- peat + + ZROUGH = .05, ! Constant roughness if for all domain + ALBEDO = .2, ! Constant albedo if not running soil model + SEATMP = 300., ! Constant water surface temperature + + DTHCON = 0., ! Constant sfc layer temp grad for no soil + DRTCON = 0., ! Constant sfc layer moist grad for no soil + + SLZ = -.50,-.40,-.30,-.25,-.20,-.16,-.12,-.09,-.06,-.03,-.01, + ! Soil grid levels + + SLMSTR = 0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35, + ! Initial soil moisture + + STGOFF = 5.,5.,5.,5.,3.5,2.,.5,-1.,-1.5,-1.8,-2., + ! Initial soil temperature offset + ! from lowest atmospheric level +!-------------------------------------------------------------------------- + +!--------- Eddy diffusion coefficient parameters ----------------------- + + IDIFFK = 2,2,2, ! K flag: + ! 1 - Horiz deform/Vert Mellor-Yamada + ! 2 - Anisotropic deformormation + ! (horiz & vert differ) + ! 3 - Isotropic deformation + ! (horiz and vert same) + ! 4 - Deardorff TKE (horiz and vert same) + + IDIFFPERTS = 0, ! 0 - Normal scalar diffusion + ! 1 - Diffuse perturbations from base state THP,RTP + ! 2 - Diffuse perturbations from mean state THP,RTP + ! 3 - Diffuse perturbations from varfile state THP,RTP + + IHORGRAD = 2, ! 1 - horiz grad frm decomposed sigma grad + ! 2 - true horizontal gradient. + ! Non-conserving, but allows small DZ + + CSX = .2,.2,.2, ! Deformation horiz. K's coefficient + CSZ = .2,.2,.2, ! Deformation vert. K's coefficient + XKHKM = 3.,3.,3., ! Ratio of horiz K_h to K_m for deformation + ZKHKM = 3.,3.,3., ! Ratio of vert K_h to K_m for deformation + AKMIN = 0.5,0.5,0.5, ! Ratio of minimum horizontal eddy + ! viscosity coefficientto typical value + ! from deformation K + + FRACSAT = 1.0, ! Minimum saturation fraction in the presence + ! of cloud water for applying saturation + ! moist BV equation to diffusion stability + ! criteria. Value of 0.0 uses original formula + ! and only cloud water is required. +!------Bubble Simulation-------------------------------------------------- + IBUBBLE = 0, ! Bubble initialization: 0 = off + ! 1=square bubble, 2=gaussian bubble + ! 3=random perturbations (user adjust ruser.f90) + IBUBGRD = 1, ! Grid Number On Which To Initialize Bubble + IBDXIA = 5, ! DX start grid point + IBDXIZ = 13, ! DX end grid point + IBDYJA = 5, ! DY start grid point + IBDYJZ = 13, ! DY end grid point + IBDZK1 = 2, ! Lower k level + IBDZK2 = 16, ! Upper k level + BTHP = 3.0, ! Theta-il perturbation(K) (THP + BTHP) + BRTP = 0.2, ! Mixing ratio perturbation (RTP * (1 + BRTP) + +!------Convergence Forcing ----------------------------------------------- + ICONV = 0, ! Convergence Zone initialization: 0 = off + ! 1=Gaussian in x and y, U and V + ! 2=Gaussian in x and y, U only + ! 3=Gaussian in x and y, V only + ! 4=Gaussian only in x, U only + ! 5=Gaussian only in y, V only + ICONGR = 1, ! Grid for convergence + ICICENT = 100, ! I center grid point + ICJCENT = 100, ! J center grid point + CXRAD = 7000., ! I radius width (meters) + CYRAD = 7000., ! J radius width (meters) + ICVERT = 1, ! Convergence vertical structure + ! 1=Linear decrease w/height and max at sfc + ! 2=Elevated 1/2 vertical wavelength + ICKMAX = 14, ! Max K for ICVERT=1 (ignored for ICVERT=2) + CZRAD = 2000., ! Vertical radius for ICVERT=2 (ignored for ICVERT=1) + ICKCENT = 17, ! K center for ICVERT=2 (ignored for ICVERT=1) + CDIVMAX = -6.1224e-6, ! Divergence amplitude (s^-1) (negative = convergence) + CTAU = 1., ! timescale (s) over which conv. zone strength + ! increases to amplitude CDIVMAX + CTMAX = 3600., ! Max time in seconds for convergence zone + ! If ctmax < 0, abs(ctmax) vertical vel thresh past + ! which to terminate conv zone (m/s) + +!----- Non-standard lateral boundary forcing ----------------------------- + + IAEROLBC = 0,0,0, ! Aerosol profile forcing: 0=no, 1=yes + ICO2LBC = 0,0,0, ! CO2 profile forcing: 0=no, 1=yes + BCTAU = 1.,1.,1., ! (seconds) Inverse time weight + +!----- RCE (Radiative convective equilibrium) simulations Controls ------- + + IRCE = 0, ! NO RCE setup = 0, YES = 1 + RCE_SZEN = 50.5, ! Constant solar zenith angle (0.0 to 90.0 deg) + RCE_SOLC = 650.832, ! Solar constant + RCE_UBMN = 4.0, ! Constant ubmin value (0.1 to 7.0 m/s) + RCE_BUBL = 0.50, ! Max temperature perturbation (Kelvin) (IBUBBLE=3) + +!----- Extra Tracers and Scalars ----------------------------------------- + + ITRACER = 0, ! Number of tracers. Initialize in init_tracer + ITRACHIST = 0, ! Initialize tracers on history start / restart + +!----- Microphysics ------------------------------------------------------ + + LEVEL = 3, ! Moisture complexity level + ! (0=dry, 1=vapor only, 2=cloud only, + ! 3=full micro, 4=HUCM-SBM bin micro) + + ISCM = 0, ! Single-column output run (0=off,1=on) + ISCMX = 15, ! X grid point for SCM column output (Grid-1 only) + ISCMY = 21, ! Y grid point for SCM column output (Grid-1 only) + SCMTIME = 1800., ! Time for SCM output (seconds) + + ICHECKMIC = 1, ! Check Micro Negative & Nans: 0=Off,1=on + IMBUDGET = 1, ! Micro budgets: 0=Off,1=partial,2=all,3=all+dust + + IRIME = 1, ! Riming: 0-Bulk, 1-HybridBin + IPLAWS = 2, ! FallSpeed: 0-Original4.3 + ! 1-New (R.Carver,Mitchell96) + ! 2-New Banded Plaws for sedimentation + ISEDIM = 1, ! Sedimentation: 0-RelDisp, 1-True Hybrid-Bin + + ICLOUD = 5, ! Microphysics flags + IDRIZ = 5, !------------------- + IRAIN = 5, ! 1 - diagnostic concen. + IPRIS = 5, ! 2 - specified mean diameter + ISNOW = 5, ! 3 - specified y-intercept + IAGGR = 5, ! 4 - specified concentration + IGRAUP = 5, ! 5 - prognostic concentration + IHAIL = 5, + +! Hydrometeor parameters ! Microphysics parameters + ! ----------------------- + CPARM = .3e9, ! Characteristic diameter, # concentration + DPARM = .1e6, ! or y-intercept + RPARM = 1e-3, ! + PPARM = 0., ! Specify values for the given + SPARM = 1e-3, ! microphysics flag where appropriate + APARM = 1e-3, ! + GPARM = 1e-3, ! Only used for "microphysics flags" 1-4 + HPARM = 3e-3, ! + +!Gamma shape pararmeters ! cld rain pris snow aggr graup hail driz + GNU = 4.,2.,2.,2.,2.,2.,2.,4., + +!HUCM parameters + !HUCM data file directory for LEVEL=4 microphysics + HUCMFILE = '../etc/HUCM-SBM', + NDTCOLL = 3, !Collision-coalescence called once + !every NDTCOLL time steps + +! Aerosol parameters ! See mic_init.f90 for setting profiles + ! ------------------------------------------ + IAEROSOL = 1, ! CCN-1,CCN-2: 0=off, 1=userset + ISALT = 0, ! Sea Salt: 0=off, 1=userset, 2=saltmodel + IDUST = 0, ! Dust: 0=off, 1=userset 2=dustmodel + IABCARB = 0, ! Absorbing carbon: 0=off, 1=userset + + IDUSTLOFT = 0, ! 0 = idealized lofting + ! 1 = Ginoux(2001) erodible fraction data + + !Dust source file name (used if IDUST=2) + !For IDUSTLOFT=1,read DustErodeFrac-Ginoux2001.txt + DUSTFILE = '../etc/DustErodeFrac-Ginoux2001.txt', + + ICCNLEV = 2, ! Aerosol treatment level + ! 0 = no source or sink + ! 1 = nucleation + deposition sink + ! 2 = same as 1 + evaporation regeneration + + IIFN = 2, ! Ice Nuclei treatment level + ! 0 = no ice nuclei + ! 1 = Meyers formula (CIN_MAX) + ! 2 = DeMott(2010) (CIN_MAX) + ! 3 = DeMott(2010) (aerosols D>0.5 microns) + + IIFN_FORMULA = 2, ! DeMott IN Formulation if IIFN = 2 or 3 + ! 1 = DeMott(2010) (composite aerosol types) + ! 2 = DeMott(2014) (dust formula) + + IAERORAD = 1, ! Aerosol-Radiation Model: 0 = Off, 1 = On + + IAERODEP = 1, ! Aerosol wet and dry deposition + ! (track scavenged aerosols if iccnlev>=2) + ! 0 = Off, 1 = On + + ! Aerosol initial maximum concentrations + ! userset option. Default vertical profiles: + ! MAXNUMBER*exp(-zt(k)/7000.) + ! ------------------------------------------ + IAEROPRNT = 1, ! Print aerosol init profiles (0=no,1=yes) + IAEROHIST = 0, ! Re-initialize aerosols on hist restart:0,1 !CHANGEME + ICCN_PROF = 1, ! CCN Profile Type + ! 1 = Exponential, using default 7000 m scale height + ! 2 = Constant in the Boundary Layer, Exponential above with a 3500 m scale height + ! 3 = Constant in the Boundary Layer, Linear Decreasing to Free Tropospheric Value, + ! then Linear Decrease to Model Top + + CCN1_MAX = 2500., ! CCN at surface (#/mg) !CHANGEME 500. or 2500. (for Low/High) + CCN2_MAX = 0., ! CCN-mode-2 (#/mg) + CCN_SH = 5000., ! CCN exponential scale height (for ICCN_PROF = 1 or 2) !CHANGEME 10000. or 5000. (for Low/High) + BL_HGT = 2000., ! Boundary layer height (m) - for CCN_PROF=2 + TRAN_DEPTH = 1000., ! Transition depth (linear) for BL -> FT ccn conc. (m) - for CCN_PROF=3 + CCN_FT = 100., ! Free Tropospheric CCN Concentration - for CCN_PROF=3 + CIN_MAX = 10., ! Ice Nuclei (#/mg) !CHANGEME 1. or 10. (for Low/High) + CIN_SH = 5000., ! Ice Nuclei expoential scale height (for IIFN = 1 or 2) + + DUST1_MAX = 0.0, ! Small Dust Mode (#/mg) + DUST2_MAX = 0.0, ! Large Dust Mode (#/mg) + SALTF_MAX = 0.0, ! Film Sea Salt (#/mg) + SALTJ_MAX = 0.0, ! Jet Sea Salt (#/mg) + SALTS_MAX = 0.0, ! Spume Sea Salt (#/mg) + ABC1_MAX = 0.0, ! Absorbing carbon Mode-1 (#/mg) + ABC2_MAX = 0.0, ! Absorbing carbon Mode-2 (#/mg) + + ! Aerosol 9 categories soluble chemistry type: 1=(NH4)2S04, 2=NaCl + IAERO_CHEM = 1,1,1,1,2,2,2,1,1,1,1, + + ! Aerosol 9 categories solubility fraction: (0->1) + AERO_EPSILON = 0.90,0.90,0.05,0.05,1.00,1.00,1.00,0.05,0.05,0.20,0.20, + + ! Aerosol 9 categories initial median radius (meters) + AERO_MEDRAD = 0.04e-6,3.00e-6, !CCN-1,CCN-2 + 0.05e-6,0.50e-6, !Dust1,Dust2 + 0.10e-6,1.00e-6,6.00e-6, !SeaSalt: film,jet,spume + 0.05e-6,0.05e-6, !Absorbing carbon + 0.01e-6,1.00e-6, !Regenerated 1 & 2 default + + ! Aerosol tracking flags: 0=off, 1=on + ITRKEPSILON = 0, ! Tracking aerosol solubility for regeneration + ITRKDUST = 0, ! Tracking dust sub-species within hydrometeors + ITRKDUSTIFN = 0, ! Tracing dust that served as ice nuclei + + $END + + $MODEL_SOUND + +!----------------------------------- +! Sounding specification +!----------------------------------- + +! Flags for how sounding is specified + + IPSFLG = 1, ! Specifies what is in PS array + ! 0-pressure(mb) 1-heights(m) + ! PS(1)=sfc press(mb) + + ITSFLG = 2, ! Specifies what is in TS array + ! 0-temp(C) 1-temp(K) 2-pot. temp(K) + + IRTSFLG = 2, ! Specifies what is in RTS array + ! 0-dew pnt.(C) 1-dew pnt.(K) + ! 2-mix rat(g/kg) + ! 3-relative humidity in %, + ! 4-dew pnt depression(K) + + IUSFLG = 0, ! Specifies what is in US and VS arrays + ! 0-u,v component(m/s) + ! 1-umoms-direction, vmoms-speed + + HS = 0., + + PS= 990.00,100.00,210.00,331.00,464.10,610.51,771.56,948.72, + 1143.59,1357.95,1593.74,1853.12,2138.43,2452.27,2797.50,3177.25, + 3594.97,4054.47,4559.92,5115.91,5727.50,6400.25,7140.28, + 7954.30,8849.74,9834.71,10918.18,12100.00,13421.00,14863.09, + 16449.40,18194.34,20113.77,22113.77,24113.77, + +! original sounding temps + TS= 306.96,306.96,306.53,306.21,305.94,305.74,305.59,305.50,305.45, + 305.43,305.43,305.46,305.59,306.30,307.83,309.43,311.03,312.19, + 313.57,314.70,315.86,317.51,319.21,320.94,322.51,324.15,327.44, + 337.47,357.59,379.39,403.86,429.98,465.67,503.27,541.52, + +! original sounding dewpoints + RTS= 15.75,15.55,15.36,15.14,14.88,14.58,14.23,13.85,13.43, + 12.93,12.35,11.34,8.69,5.47,3.30,2.51,1.96,1.43,1.17,1.02, + 0.79,0.56,0.36,0.19,0.08,0.02,0.01, + 0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001, + +! original sounding "u" + US=-2.71,-2.71,-3.54,-3.39,-2.78,-1.74,-0.36,1.25,2.94,4.58,6.07, + 7.30,8.53,9.67,10.90,12.09,12.84,15.13,16.70,17.36,17.44, + 17.04,16.83,17.06,18.38,20.39,23.31,28.18,24.82,21.15,17.51, + 9.66,2.01,0.50,-1.04, + +! original sounding "v" + VS= 8.38,8.38,10.66,12.25,13.46,14.26,14.64,14.66,14.41,14.03, + 13.72,13.62,13.83,14.26,15.47,16.03,18.87,19.09,18.60,18.91, + 19.98,21.18,21.62,21.84,22.34,22.70,22.74,19.84,18.16,16.17, + 11.90,8.50,3.47,3.50,3.53, + + $END + + $ISAN_CONTROL + +!----------------------------------- +! Isentropic control +!----------------------------------- + + ISZSTAGE = 1, ! Main switches for isentropic-sigz + IVRSTAGE = 1, ! "varfile" processing + + ISAN_INC = 0100, ! ISAN processing increment (hhmm) + ! range controlled by TIMMAX, + ! IYEAR1,...,ITIME1 + + I1ST_FLG = 2, ! What to do if first guess file (IAPR) + ! should be used but does not exist. + ! 1=I know it may not be there, + ! skip this data time + ! 2=I screwed up, stop the run + + IUPA_FLG = 3, ! UPA-upper air, SFC-surface + ISFC_FLG = 3, ! What to do if other data files should be + ! uesed, but does not exist. + ! 1 = I know it may not be there, + ! skip this data time + ! 2 = I screwed up, stop the run + ! 3 = Try to continue processing anyway + +! Input data file prefixes + IDATAIN = 1, ! dp-p files have: 0=Relhum, 1=specific humidity + IAPR = '/nobackup/pmarines/V/CA_B1_DP/dp-p', ! Input press level dataset !CHANGEME + IARAWI = ' ', ! Archived rawindsonde file name + IASRFCE = ' ', ! Archived surface obs file name + +! Header file name for history nudging files (only prefix is used) + VAR_HFILE = 'path/a-A-', + +! File names and dispose flags + + VARPFX = '/nobackup/pmarines/V/S/CA_B1_3G/T4/var/var', ! isan file names prefix !CHANGEME + IOFLGISZ = 0, ! Isen-sigz file flag: 0 = no write, 1 = write + IOFLGVAR = 1, ! Var file flag: 0 = no write, 1 = write + + $END + + $ISAN_ISENTROPIC + +!----------------------------------- +! Isentropic and sigma-z processing +!----------------------------------- + +!----------------------------------- +! Specify isentropic levels +!----------------------------------- + + NISN = 43, ! Number of isentropic levels + LEVTH = 280,282,284,286,288,290,292,294,296,298,300,303,306,309,312, + 315,318,321,324,327,330,335,340,345,350,355,360,380,400,420, + 440,460,480,500,520,540,570,600,630,670,700,750,800, + +!----------------------------------- +! Analyzed grid information: +!----------------------------------- + + NIGRIDS = 1, ! Number of RAMS grids to analyze + + TOPSIGZ = 20000., ! Sigma-z coordinates to about this height + + HYBBOT = 4000., ! Bottom (m) of blended sigma-z/isentropic + ! layer in varfiles + HYBTOP = 6000., ! Top (m) of blended sigma-z/isentropic layr + + SFCINF = 1000., ! Vert influence of sfc observation analysis + + SIGZWT = 1., ! Weight for sigma-z data in varfile: + ! 0.= no sigz data, + ! 1.=full weight from surface to HYBBOT + + NFEEDVAR = 1, ! 1=feed back nested grid varfile, 0=don't + +!----------------------------------- +! Observation number limits: +!----------------------------------- + + MAXSTA = 150, ! maximum number of rawindsondes + ! (archived + special) + MAXSFC = 1000, ! maximum number of surface observations + + NOTSTA = 0, ! Number of stations to be excluded + NOTID = 'r76458', ! Station ID's to be excluded + ! Prefix with 'r' for rawindsonde, + ! 's' for surface + + USED_FILE = 'none', ! Filename prefix to output stations actually + ! used in the analysis + + IOBSWIN = 1800, ! Window (seconds) around analysis time. Obs + ! outside this window will not be used. + + STASEP = .1, ! Minimum sfc station separation in degrees. + ! Any surface obs within this distance + ! of another obs will be thrown out + ! unless it has less missing data, + ! in which case the other obs will be + ! thrown out. + + + IGRIDFL = 3, ! Grid flag=0 if no grid point, only obs + ! 1 if all grid point data and obs + ! 2 if partial grid point and obs + ! 3 if only grid data + ! 4 all data... fast + + + GRIDWT = .01,.01,.01,.01, ! Relative weight for the gridded press data + ! compared to the observational data in + ! the objective analysis + + + GOBSEP = 5., ! Grid-observation separation (degrees) + GOBRAD = 5., ! Grid-obs proximity radius (degrees) + + WVLNTH = 900.,900.,900.,900., ! Used in S. Barnes objective analysis. + ! Wavelength in km to be retained to the + ! RESPON % from the data to the upper air + ! grids. + SWVLNTH = 300.,300.,300.,300., ! Wavelength for surface objective analysis + + RESPON = .9,.9,.9,.9, ! Percentage of amplitude to be retained. + + $END diff --git a/run/CCCX.X-M-V1/include.mk.incus.ple b/run/CCCX.X-M-V1/include.mk.incus.ple new file mode 100644 index 0000000..9a127e4 --- /dev/null +++ b/run/CCCX.X-M-V1/include.mk.incus.ple @@ -0,0 +1,204 @@ +# using: module load gcc/10.3 mpi-hpe/mpt.2.25 comp-intel/2020.4.304 szip/2.1.1 +############################################################################# +# Define make (gnu make works best). +############################################################################# +MAKE=/usr/bin/make + +############################################################################# +# Set your RAMS root path and version number. +############################################################################# +RAMS_ROOT=/home5/pmarines/INCUS/Prod/RAMS +RAMS_VERSION=6.3.04 + +############################################################################# +# Set root locations for HDF5 I/O software. +# Choose parallel or serial processing option for your compile type. +# Typically can use "parallel" for either, but some supercomputers require +# use of the serial executable. +############################################################################# +HDF5_ROOT=/home5/pmarines/INCUS/misc/hdf5-1.10.8_build +# ZFP ROOT only needed if gcc compiler flag '-DENABLE_ZFP_COMPRESSION' is used +H5Z_ZFP_ROOT=/home5/pmarines/INCUS/misc/H5Z-ZFP_build # For ZFP Compression + +############################################################################# +# Set root locations for parallel processing MPI software. +# You can comment out MPI_ROOT for serial processing compile. +############################################################################# +MPI_ROOT=#/nasa/hpe/mpt/2.25_rhel79 + +############################################################################# +# Do not change these 2. They point from RAMS_ROOT to the source code. +############################################################################# +MODEL=$(RAMS_ROOT)/src +UTILS_INCS=-I$(MODEL)/include + +############################################################################# +# Set HDF libraries and include locations relative to HDF5_ROOT. +# Note that linking libraries below are in a particular order to work! +# You may not need to modify these 3 variables. Try this default. +# Everything after the "-Wl" identifies library location for shared objects. +# HDF5 requires libz (zip) and libsz (szip). These can be linked in LIBS +# in the compiler instead, but need to be on your computer system. +############################################################################# +#HDF5_LIBS=-L$(HDF5_ROOT)/lib -lhdf5_hl -lhdf5 \ +# -Wl,-rpath,/home/smsaleeb/software/szip-2.1/lib \ +# -Wl,-rpath,/home/smsaleeb/software/zlib-1.2.5/lib +HDF5_LIBS=-L$(HDF5_ROOT)/lib -lhdf5_hl -lhdf5 +HDF5_INCS=-I$(HDF5_ROOT)/include -I$(H5Z_ZFP_ROOT)/include#Added ZFP Compression +HDF5_DEFS= + +############################################################################# +# TYPE OF COMPUTER SYSTEM (used for DEFINE statements for intrinsic calls). +# Do not change this variable. +############################################################################# +CMACH=PC_LINUX1 #Standard Linux (only option available now) + +############################################################################# +# UNCOMMENT 1 LINUX FORTRAN COMPILER SET OF FLAGS BELOW +############################################################################# +# Note that some Fortran optimizations greater than -O1 will not necessarily +# produce identical results when running same executable multiple times. +# This is perhaps due to order of operations or unrolling loop order that +# changes solutions slightly. This is not ideal for research applications +# involving sensitivity studies that require exact duplication. As such, +# the Makefile is setup to allow different optimizations for different source +# files. The F_OPTS1 and F_OPTS2 variables below can hold different compiler +# flags as needed. Further, for duplication of results you may need to force +# IEEE standard which is done in examples below. +# Please coordinate variables below with the commands in the Makefile. +# Definitions of compiler flags below +# F_COMP = path to compiler executable +# F_OPTS1 = Uses of flags for lower optimization for some files +# F_OPTS2 = Uses of flags for higher optimization for some files +# LOADER_OPTS = Flags and optimaztion for LOADER +# LIBS = Extra system libraries for linking that some compilers need, +# where the need for such libraries will be indicated by error messages +# when compiling the code. + +#***************************** +# FORTRAN INTEL IFORT COMPILER Single Precision +#***************************** +# (-g) for debugging, (-traceback) for more compiler error info +# (-check bounds) for array bounds checking, (-fp-model precise) for IEEE +# (-check uninit) for finding uninitialized variables, (-free) for free format +F_COMP=mpif90 + +# Options going from fastest to slowest -- but slowests produce exact results regardless of system + +# Basic +#F_OPTS1=-free -O1 -fp-model precise +#F_OPTS2=-free -O2 -fp-model precise +#LOADER_OPTS= -free -O2 -fp-model precise +#LIBS=-L/usr/lib/x86_64-linux-gnu -L/nasa/szip/2.1.1/lib -lrt -lpthread -lsz -lz + +# Strict +#F_OPTS1=-free -O1 -fp-model strict +#F_OPTS2=-free -O2 -fp-model strict +#LOADER_OPTS= -free -O2 -fp-model strict +#LIBS=-L/usr/lib/x86_64-linux-gnu -L/nasa/szip/2.1.1/lib -lrt -lpthread -lsz -lz + +# All Intel - will produce idential results on all intel sytems +#F_OPTS1=-free -O1 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high +#F_OPTS2=-free -O2 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high +#LOADER_OPTS= -free -O2 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high +#LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread -lsz -lz -L/nasa/szip/2.1.1/lib + +# AMD Compatible Intel -- will produce the exact same results as AMD Rome, but will not work on AMD Rome due to +# AVX512, which does not work on AMD Rome (but should work on newer AMD systems) +#F_OPTS1=-free -O1 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high -fimf-arch-consistency=true +#F_OPTS2=-free -O2 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high -fimf-arch-consistency=true +#LOADER_OPTS= -free -O2 -fp-model strict -ipo -axCORE-AVX512,CORE-AVX2 -xAVX -qopt-zmm-usage=high -fimf-arch-consistency=true +#LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread -lsz -lz -L/nasa/szip/2.1.1/lib + +# AMD Rome -- will produce identifical results on all machines (AMD, Intel), marginally slower than AMS Compatible Intel +F_OPTS1=-free -O1 -fp-model strict -ipo -march=core-avx2 -qopt-zmm-usage=high -fimf-arch-consistency=true #-real-size 64 +F_OPTS2=-free -O2 -fp-model strict -ipo -march=core-avx2 -qopt-zmm-usage=high -fimf-arch-consistency=true #-real-size 64 +LOADER_OPTS=-free -O2 -fp-model strict -ipo -march=core-avx2 -qopt-zmm-usage=high -fimf-arch-consistency=true #-real-size 64 +LIBS=-L/lib64 -lrt -lpthread -lsz -lz -L/nasa/szip/2.1.1/lib + +#***************************** +# FORTRAN INTEL IFORT COMPILER Double Precision +#***************************** +# (-g) for debugging, (-traceback) for more compiler error info +# (-check bounds) for array bounds checking, (-fp-model precise) for IEEE +# (-check uninit) for finding uninitialized variables, (-free) for free format +#F_COMP=/home/smsaleeb/intel/composer_xe_2011_sp1.8.273/bin/intel64/ifort +#F_OPTS1=-free -O1 -fp-model precise -real-size 64 +#F_OPTS2=-free -O2 -fp-model precise -real-size 64 +#LOADER_OPTS= -free -O2 -fp-model precise -real-size 64 +#LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread -lz -lsz + +#***************************** +# FORTRAN PGI PGF90 COMPILER +#***************************** +# (-g) for debugging, (-Kieee) for IEEE, (-Mfree) for free format +#F_COMP=/opt/pgi/linux86-64/19.4/bin/pgf90 +#F_OPTS1=-Mfree -O1 -Kieee +#F_OPTS2=-Mfree -O2 -Kieee +#LOADER_OPTS=-Mfree -O2 -Kieee +#LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread -lz -lsz + +#***************************** +# FORTRAN GFORTRAN COMPILER +# This compiler is not recommended and make not work as is. Gfortran seems +# to be less intuitive about certain code compared to PGF90 and IFORT. +#***************************** +# (-Wall) for warnings, (-ffree-form) for free format +# (-fno-sign-zero) for not making zeros negative values +# (-fcheck=bounds) check for array bounds issues +# (-fcheck=all) all runtime checking +#F_COMP=/usr/bin/gfortran +#F_OPTS1=-ffree-form -O1 +#F_OPTS2=-ffree-form -O2 +#LOADER_OPTS=-ffree-form -O2 +#LIBS=-L/usr/lib/x86_64-linux-gnu -lrt -lpthread -lz -lsz + +############################################################################# +# C compiler choice and flags (gcc) and (mpicc) are most common +# Add the "-DRAMS_DOUBLE_PREC" compiler flag to "C_OPTS" for turning on +# double precision rather than default double precision. Note that using +# double will make output and runtimes substantially longer but provide the +# extra precision needed in some highly sensitive simulations. +# +# Add the "-DENABLE_PARALLEL_COMPRESSION" flag to attempt doing parallel +# compression of HDF5 output. Sometime this works and sometimes it does not. +# But if it does work, it will make it past the first analysis file write. +# If it does not work, it will fail or hang on the first file write. +# +# Add the "-DENABLE_ZFP_COMPRESSION" flag for using ZFP compression +# Need to install ZFP compression and specify in ZFP compression path above +# +# Use -std=c99 if you need the c99 standard. Use -std=gnu99 potentially to +# stop unnecessary warnings related to "popen/pclose" in "dprep" code. +# +# "-w" turns off warnings, which in many cases are not a problem since our +# code has been well tested. New "gcc" versions sometime throw extra warnings +# that are not really as issue for us, but you can turn warnings back on by +# removing the "-w" if you wish to alter code to eliminate warnings. +############################################################################# +C_COMP=mpicc +C_OPTS=-O3 -DUNDERSCORE -DLITTLE -std=gnu99 -DENABLE_PARALLEL_COMPRESSION -w -DENABLE_ZFP_COMPRESSION +#C_OPTS=-O3 -DUNDERSCORE -DLITTLE -std=gnu99 -DRAMS_DOUBLE_PREC \ +# -DENABLE_PARALLEL_COMPRESSION -w + +############################################################################# +# System archive command syntax +# This might need different arguments depending on your Linux system. More +# recent versions have needed the "U" argument to prevent full RAMS recompile +# when only changing perhaps one file that does not have lots of dependencies +############################################################################# +ARCH=ar rsU + +############################################################################# +# MPI - (Message Passing Interface) parallel processing choices required for +# parallel enabled HDF5 and parallel processing on many-core systems. +# Libraries to add to the PAR_LIBS list depend on your version of MPI +# software and HDF5 software. +# Add or remove needed libraries to PAR_LIBS. Missing or needed libraries +# will be highlighted in compile time error messages. Typical library +# specs are: -lmpich, -lmpl, -lmpi. +# Comment out these "PAR_" lines for serial processing compile. +############################################################################# +PAR_INCS=#-I$(MPI_ROOT)/include +PAR_LIBS=#-L$(MPI_ROOT)/lib #-lmpich -lmpl #commented out since libraries are connected to mpi modules that are loaded seperately +PAR_DEFS=-DRAMS_MPI diff --git a/run/CCCX.X-M-V1/ple_RAMS.INCUS b/run/CCCX.X-M-V1/ple_RAMS.INCUS new file mode 100644 index 0000000..2a914f6 --- /dev/null +++ b/run/CCCX.X-M-V1/ple_RAMS.INCUS @@ -0,0 +1,32 @@ +#PBS -S /bin/csh +#PBS -V +#PBS -q normal +#PBS -lselect=30:ncpus=128:mpiprocs=128:model=rom_ait,walltime=08:00:00 +#PBS -W group_list=s2841 +#PBS -j oe +#PBS -o +#PBS -N INCUS.RAMS.Submission.Name +#PBS -m be +#PBS -r n + +# Example submission script for the RAMS model on NASA Pleiades machine for INCUS +# Note the use of the rom_ait nodes, as opposed to broadwell nodes, which we have found to run more quickly +# s2841 represents the use of INCUS hours + +setenv MPI_TYPE_DEPTH 16 +# Load modules needed for RAMS compilation and running +module load gcc/10.3 mpi-hpe/mpt comp-intel/2020.4.304 szip/2.1.1 +#limit coredumpsize unlimited + +# Add paths to specific HDF and ZFP compression libraries, which are build seperately on pleaides +# HDF5 Library +setenv LD_LIBRARY_PATH /home5/pmarines/INCUS/misc/hdf5-1.10.8_build/lib:$LD_LIBRARY_PATH +# ZFP Library +setenv LD_LIBRARY_PATH /home5/pmarines/INCUS/misc/zfp/lib:$LD_LIBRARY_PATH +# HDF5 ZFP Library +setenv LD_LIBRARY_PATH /home5/pmarines/INCUS/misc/H5Z-ZFP_build/lib:$LD_LIBRARY_PATH +# HDF5 Plugin path +setenv HDF5_PLUGIN_PATH /home5/pmarines/INCUS/misc/H5Z-ZFP_build/plugin + +# Submission command +mpiexec ./rams-6.3.04_rom_mem_nmach_nog_spg -f ./RAMSIN.INCUS >& /path/to/standard/RAMS/output/file.txt diff --git a/run/CCCX.X-M-V1/ple_RAMS.INCUS.ldan b/run/CCCX.X-M-V1/ple_RAMS.INCUS.ldan new file mode 100644 index 0000000..76185f5 --- /dev/null +++ b/run/CCCX.X-M-V1/ple_RAMS.INCUS.ldan @@ -0,0 +1,35 @@ +#PBS -q ldan +#PBS -lselect=1:ncpus=1:mem=950GB +#PBS -lwalltime=6:00:00 +#PBS -W group_list=s2841 +#PBS -j oe +#PBS -o /home5/pmarines/INCUS/fPROD/RAMS/run/PHI1.2-R/stdout/G3_INI_qldan_950GB.txt +#PBS -N G3_INI +#PBS -m be +#PBS -r n + +# Example submission script for the RAMS model on NASA Pleiades machine for INCUS for high-memory initializations when adding new grids +# Note the use of the ldan node, as opposed to broadwell or rome aitken nodes +# Also note that specification of memory (the above memory and wall clock time worked for [670x500, 1250x950, 2698x2718]x232 domains +# s2841 represents the use of INCUS hours + +#setenv MPI_TYPE_DEPTH 16 +# Load modules needed for RAMS compilation and running +module load gcc/10.3 mpi-hpe/mpt comp-intel/2020.4.304 szip/2.1.1 +#limit coredumpsize unlimited + +# Add paths to specific HDF and ZFP compression libraries, which are build seperately on pleaides +# HDF5 Library +export LD_LIBRARY_PATH="/home5/pmarines/INCUS/misc/hdf5-1.10.8_build/lib:$LD_LIBRARY_PATH" +# ZFP Library +export LD_LIBRARY_PATH="/home5/pmarines/INCUS/misc/zfp/lib:$LD_LIBRARY_PATH" +# HDF5 ZFP Library +export LD_LIBRARY_PATH="/home5/pmarines/INCUS/misc/H5Z-ZFP_build/lib:$LD_LIBRARY_PATH" +# HDF5 Plugin path +export HDF5_PLUGIN_PATH="/home5/pmarines/INCUS/misc/H5Z-ZFP_build/plugin" + +#Go to pleiades home directory +cd /pleiades/u/pmarines/INCUS/fPROD/RAMS/run/PHI1.2-R/ # CHANGE to location of run directory, path relative to lou (lfe) node + +# Submission command +mpiexec ./rams-6.3.04 -f ./RAMSIN.INI.G3 >& /pleiades/u/pmarines/INCUS/fPROD/RAMS/run/PHI1.2-R/stdout/RAMS_G3_INI_qldan_950GB.txt diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G1H1 b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G1H1 similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G1H1 rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G1H1 diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1 b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1 similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1 rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1 diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.1 b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.1 similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.1 rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.1 diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.2 b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.2 similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.2 rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.2 diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.3 b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.3 similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.3 rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.3 diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1 b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1 similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1 rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1 diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.1 b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.1 similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.1 rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.1 diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.2 b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.2 similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.2 rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.2 diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.3 b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.3 similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.3 rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.3 diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.4 b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.4 similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.4 rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_G3H1.4 diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_SFC b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_SFC similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_SFC rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_SFC diff --git a/run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_VAR b/run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_VAR similarity index 100% rename from run/ARG1.1-R/RAMSIN.INCUS.S.CA.B1.3G_T4_VAR rename to run/V0/ARG1.1-R-V0/RAMSIN.INCUS.S.CA.B1.3G_T4_VAR diff --git a/run/ARG1.1-R/include.mk b/run/V0/ARG1.1-R-V0/include.mk similarity index 100% rename from run/ARG1.1-R/include.mk rename to run/V0/ARG1.1-R-V0/include.mk diff --git a/run/ARG1.1-R/ple_3G_T4_G1H1 b/run/V0/ARG1.1-R-V0/ple_3G_T4_G1H1 similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_G1H1 rename to run/V0/ARG1.1-R-V0/ple_3G_T4_G1H1 diff --git a/run/ARG1.1-R/ple_3G_T4_G2H1 b/run/V0/ARG1.1-R-V0/ple_3G_T4_G2H1 similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_G2H1 rename to run/V0/ARG1.1-R-V0/ple_3G_T4_G2H1 diff --git a/run/ARG1.1-R/ple_3G_T4_G2H1.1 b/run/V0/ARG1.1-R-V0/ple_3G_T4_G2H1.1 similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_G2H1.1 rename to run/V0/ARG1.1-R-V0/ple_3G_T4_G2H1.1 diff --git a/run/ARG1.1-R/ple_3G_T4_G2H1.2 b/run/V0/ARG1.1-R-V0/ple_3G_T4_G2H1.2 similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_G2H1.2 rename to run/V0/ARG1.1-R-V0/ple_3G_T4_G2H1.2 diff --git a/run/ARG1.1-R/ple_3G_T4_G2H1.3 b/run/V0/ARG1.1-R-V0/ple_3G_T4_G2H1.3 similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_G2H1.3 rename to run/V0/ARG1.1-R-V0/ple_3G_T4_G2H1.3 diff --git a/run/ARG1.1-R/ple_3G_T4_G3H1 b/run/V0/ARG1.1-R-V0/ple_3G_T4_G3H1 similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_G3H1 rename to run/V0/ARG1.1-R-V0/ple_3G_T4_G3H1 diff --git a/run/ARG1.1-R/ple_3G_T4_G3H1.1 b/run/V0/ARG1.1-R-V0/ple_3G_T4_G3H1.1 similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_G3H1.1 rename to run/V0/ARG1.1-R-V0/ple_3G_T4_G3H1.1 diff --git a/run/ARG1.1-R/ple_3G_T4_G3H1.2 b/run/V0/ARG1.1-R-V0/ple_3G_T4_G3H1.2 similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_G3H1.2 rename to run/V0/ARG1.1-R-V0/ple_3G_T4_G3H1.2 diff --git a/run/ARG1.1-R/ple_3G_T4_G3H1.3 b/run/V0/ARG1.1-R-V0/ple_3G_T4_G3H1.3 similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_G3H1.3 rename to run/V0/ARG1.1-R-V0/ple_3G_T4_G3H1.3 diff --git a/run/ARG1.1-R/ple_3G_T4_G3H1.4 b/run/V0/ARG1.1-R-V0/ple_3G_T4_G3H1.4 similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_G3H1.4 rename to run/V0/ARG1.1-R-V0/ple_3G_T4_G3H1.4 diff --git a/run/ARG1.1-R/ple_3G_T4_SFC b/run/V0/ARG1.1-R-V0/ple_3G_T4_SFC similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_SFC rename to run/V0/ARG1.1-R-V0/ple_3G_T4_SFC diff --git a/run/ARG1.1-R/ple_3G_T4_VAR b/run/V0/ARG1.1-R-V0/ple_3G_T4_VAR similarity index 100% rename from run/ARG1.1-R/ple_3G_T4_VAR rename to run/V0/ARG1.1-R-V0/ple_3G_T4_VAR diff --git a/run/ARG1.2-R/ARG1.1-R_namelists/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.1 b/run/V0/ARG1.2-R-V0/ARG1.1-R_namelists/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.1 similarity index 100% rename from run/ARG1.2-R/ARG1.1-R_namelists/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.1 rename to run/V0/ARG1.2-R-V0/ARG1.1-R_namelists/RAMSIN.INCUS.S.CA.B1.3G_T4_G2H1.1 diff --git a/run/ARG1.2-R/RAMSIN.G2.HIS1 b/run/V0/ARG1.2-R-V0/RAMSIN.G2.HIS1 similarity index 100% rename from run/ARG1.2-R/RAMSIN.G2.HIS1 rename to run/V0/ARG1.2-R-V0/RAMSIN.G2.HIS1 diff --git a/run/ARG1.2-R/RAMSIN.G2.HIS2 b/run/V0/ARG1.2-R-V0/RAMSIN.G2.HIS2 similarity index 100% rename from run/ARG1.2-R/RAMSIN.G2.HIS2 rename to run/V0/ARG1.2-R-V0/RAMSIN.G2.HIS2 diff --git a/run/ARG1.2-R/RAMSIN.G2.INI b/run/V0/ARG1.2-R-V0/RAMSIN.G2.INI similarity index 100% rename from run/ARG1.2-R/RAMSIN.G2.INI rename to run/V0/ARG1.2-R-V0/RAMSIN.G2.INI diff --git a/run/ARG1.2-R/RAMSIN.G2.SFC b/run/V0/ARG1.2-R-V0/RAMSIN.G2.SFC similarity index 100% rename from run/ARG1.2-R/RAMSIN.G2.SFC rename to run/V0/ARG1.2-R-V0/RAMSIN.G2.SFC diff --git a/run/ARG1.2-R/RAMSIN.G3.HIS1 b/run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS1 similarity index 100% rename from run/ARG1.2-R/RAMSIN.G3.HIS1 rename to run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS1 diff --git a/run/ARG1.2-R/RAMSIN.G3.HIS2 b/run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS2 similarity index 100% rename from run/ARG1.2-R/RAMSIN.G3.HIS2 rename to run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS2 diff --git a/run/ARG1.2-R/RAMSIN.G3.HIS3 b/run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS3 similarity index 100% rename from run/ARG1.2-R/RAMSIN.G3.HIS3 rename to run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS3 diff --git a/run/ARG1.2-R/RAMSIN.G3.HIS4 b/run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS4 similarity index 100% rename from run/ARG1.2-R/RAMSIN.G3.HIS4 rename to run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS4 diff --git a/run/ARG1.2-R/RAMSIN.G3.HIS5 b/run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS5 similarity index 100% rename from run/ARG1.2-R/RAMSIN.G3.HIS5 rename to run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS5 diff --git a/run/ARG1.2-R/RAMSIN.G3.HIS6 b/run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS6 similarity index 100% rename from run/ARG1.2-R/RAMSIN.G3.HIS6 rename to run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS6 diff --git a/run/ARG1.2-R/RAMSIN.G3.HIS7 b/run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS7 similarity index 100% rename from run/ARG1.2-R/RAMSIN.G3.HIS7 rename to run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS7 diff --git a/run/ARG1.2-R/RAMSIN.G3.HIS8 b/run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS8 similarity index 100% rename from run/ARG1.2-R/RAMSIN.G3.HIS8 rename to run/V0/ARG1.2-R-V0/RAMSIN.G3.HIS8 diff --git a/run/ARG1.2-R/RAMSIN.G3.INI b/run/V0/ARG1.2-R-V0/RAMSIN.G3.INI similarity index 100% rename from run/ARG1.2-R/RAMSIN.G3.INI rename to run/V0/ARG1.2-R-V0/RAMSIN.G3.INI diff --git a/run/ARG1.2-R/RAMSIN.G3.SFC b/run/V0/ARG1.2-R-V0/RAMSIN.G3.SFC similarity index 100% rename from run/ARG1.2-R/RAMSIN.G3.SFC rename to run/V0/ARG1.2-R-V0/RAMSIN.G3.SFC diff --git a/run/ARG1.2-R/RAMSIN.INCUS b/run/V0/ARG1.2-R-V0/RAMSIN.INCUS similarity index 100% rename from run/ARG1.2-R/RAMSIN.INCUS rename to run/V0/ARG1.2-R-V0/RAMSIN.INCUS diff --git a/run/ARG1.2-R/include.mk.incus.ple b/run/V0/ARG1.2-R-V0/include.mk.incus.ple similarity index 100% rename from run/ARG1.2-R/include.mk.incus.ple rename to run/V0/ARG1.2-R-V0/include.mk.incus.ple diff --git a/run/ARG1.2-R/ple_RAMS.INCUS b/run/V0/ARG1.2-R-V0/ple_RAMS.INCUS similarity index 100% rename from run/ARG1.2-R/ple_RAMS.INCUS rename to run/V0/ARG1.2-R-V0/ple_RAMS.INCUS diff --git a/run/ARG1.2-R/ple_RAMS.INCUS.ldan b/run/V0/ARG1.2-R-V0/ple_RAMS.INCUS.ldan similarity index 100% rename from run/ARG1.2-R/ple_RAMS.INCUS.ldan rename to run/V0/ARG1.2-R-V0/ple_RAMS.INCUS.ldan diff --git a/run/ARG1.2-R/ple_RAMS_G2_his1 b/run/V0/ARG1.2-R-V0/ple_RAMS_G2_his1 similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G2_his1 rename to run/V0/ARG1.2-R-V0/ple_RAMS_G2_his1 diff --git a/run/ARG1.2-R/ple_RAMS_G2_his2 b/run/V0/ARG1.2-R-V0/ple_RAMS_G2_his2 similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G2_his2 rename to run/V0/ARG1.2-R-V0/ple_RAMS_G2_his2 diff --git a/run/ARG1.2-R/ple_RAMS_G2_ini b/run/V0/ARG1.2-R-V0/ple_RAMS_G2_ini similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G2_ini rename to run/V0/ARG1.2-R-V0/ple_RAMS_G2_ini diff --git a/run/ARG1.2-R/ple_RAMS_G2_sfc b/run/V0/ARG1.2-R-V0/ple_RAMS_G2_sfc similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G2_sfc rename to run/V0/ARG1.2-R-V0/ple_RAMS_G2_sfc diff --git a/run/ARG1.2-R/ple_RAMS_G3_his1 b/run/V0/ARG1.2-R-V0/ple_RAMS_G3_his1 similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G3_his1 rename to run/V0/ARG1.2-R-V0/ple_RAMS_G3_his1 diff --git a/run/ARG1.2-R/ple_RAMS_G3_his2 b/run/V0/ARG1.2-R-V0/ple_RAMS_G3_his2 similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G3_his2 rename to run/V0/ARG1.2-R-V0/ple_RAMS_G3_his2 diff --git a/run/ARG1.2-R/ple_RAMS_G3_his3 b/run/V0/ARG1.2-R-V0/ple_RAMS_G3_his3 similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G3_his3 rename to run/V0/ARG1.2-R-V0/ple_RAMS_G3_his3 diff --git a/run/ARG1.2-R/ple_RAMS_G3_his4 b/run/V0/ARG1.2-R-V0/ple_RAMS_G3_his4 similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G3_his4 rename to run/V0/ARG1.2-R-V0/ple_RAMS_G3_his4 diff --git a/run/ARG1.2-R/ple_RAMS_G3_his5 b/run/V0/ARG1.2-R-V0/ple_RAMS_G3_his5 similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G3_his5 rename to run/V0/ARG1.2-R-V0/ple_RAMS_G3_his5 diff --git a/run/ARG1.2-R/ple_RAMS_G3_his6 b/run/V0/ARG1.2-R-V0/ple_RAMS_G3_his6 similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G3_his6 rename to run/V0/ARG1.2-R-V0/ple_RAMS_G3_his6 diff --git a/run/ARG1.2-R/ple_RAMS_G3_his6_bro b/run/V0/ARG1.2-R-V0/ple_RAMS_G3_his6_bro similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G3_his6_bro rename to run/V0/ARG1.2-R-V0/ple_RAMS_G3_his6_bro diff --git a/run/ARG1.2-R/ple_RAMS_G3_his7_bro b/run/V0/ARG1.2-R-V0/ple_RAMS_G3_his7_bro similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G3_his7_bro rename to run/V0/ARG1.2-R-V0/ple_RAMS_G3_his7_bro diff --git a/run/ARG1.2-R/ple_RAMS_G3_his8_bro b/run/V0/ARG1.2-R-V0/ple_RAMS_G3_his8_bro similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G3_his8_bro rename to run/V0/ARG1.2-R-V0/ple_RAMS_G3_his8_bro diff --git a/run/ARG1.2-R/ple_RAMS_G3_sfc b/run/V0/ARG1.2-R-V0/ple_RAMS_G3_sfc similarity index 100% rename from run/ARG1.2-R/ple_RAMS_G3_sfc rename to run/V0/ARG1.2-R-V0/ple_RAMS_G3_sfc diff --git a/run/ARG1.2-R/rams-6.3.02 b/run/V0/ARG1.2-R-V0/rams-6.3.02 similarity index 100% rename from run/ARG1.2-R/rams-6.3.02 rename to run/V0/ARG1.2-R-V0/rams-6.3.02 diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G1_HIS1 b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G1_HIS1 similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G1_HIS1 rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G1_HIS1 diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G1_HIS2 b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G1_HIS2 similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G1_HIS2 rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G1_HIS2 diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G1_INI b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G1_INI similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G1_INI rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G1_INI diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G1_SFC b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G1_SFC similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G1_SFC rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G1_SFC diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G1_VAR b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G1_VAR similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G1_VAR rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G1_VAR diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G2_HIS1 b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_HIS1 similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G2_HIS1 rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_HIS1 diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G2_HIS1_ldg b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_HIS1_ldg similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G2_HIS1_ldg rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_HIS1_ldg diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G2_HIS2 b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_HIS2 similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G2_HIS2 rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_HIS2 diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G2_HIS2_ldg b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_HIS2_ldg similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G2_HIS2_ldg rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_HIS2_ldg diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G2_HIS3_ldg b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_HIS3_ldg similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G2_HIS3_ldg rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_HIS3_ldg diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G2_INI b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_INI similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G2_INI rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_INI diff --git a/run/AUS1.1-R/G1G2_ind/RAMSIN_G2_SFC b/run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_SFC similarity index 100% rename from run/AUS1.1-R/G1G2_ind/RAMSIN_G2_SFC rename to run/V0/AUS1.1-R-V0/G1G2_ind/RAMSIN_G2_SFC diff --git a/run/AUS1.1-R/G1G2_ind/ple_RAMS_G1_his1 b/run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G1_his1 similarity index 100% rename from run/AUS1.1-R/G1G2_ind/ple_RAMS_G1_his1 rename to run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G1_his1 diff --git a/run/AUS1.1-R/G1G2_ind/ple_RAMS_G1_his2 b/run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G1_his2 similarity index 100% rename from run/AUS1.1-R/G1G2_ind/ple_RAMS_G1_his2 rename to run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G1_his2 diff --git a/run/AUS1.1-R/G1G2_ind/ple_RAMS_G1_ini b/run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G1_ini similarity index 100% rename from run/AUS1.1-R/G1G2_ind/ple_RAMS_G1_ini rename to run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G1_ini diff --git a/run/AUS1.1-R/G1G2_ind/ple_RAMS_G1_sfc b/run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G1_sfc similarity index 100% rename from run/AUS1.1-R/G1G2_ind/ple_RAMS_G1_sfc rename to run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G1_sfc diff --git a/run/AUS1.1-R/G1G2_ind/ple_RAMS_G1_var b/run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G1_var similarity index 100% rename from run/AUS1.1-R/G1G2_ind/ple_RAMS_G1_var rename to run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G1_var diff --git a/run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_his1 b/run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_his1 similarity index 100% rename from run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_his1 rename to run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_his1 diff --git a/run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_his1_ldg b/run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_his1_ldg similarity index 100% rename from run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_his1_ldg rename to run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_his1_ldg diff --git a/run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_his2_ldg b/run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_his2_ldg similarity index 100% rename from run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_his2_ldg rename to run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_his2_ldg diff --git a/run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_his3_ldg b/run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_his3_ldg similarity index 100% rename from run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_his3_ldg rename to run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_his3_ldg diff --git a/run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_ini b/run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_ini similarity index 100% rename from run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_ini rename to run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_ini diff --git a/run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_sfc b/run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_sfc similarity index 100% rename from run/AUS1.1-R/G1G2_ind/ple_RAMS_G2_sfc rename to run/V0/AUS1.1-R-V0/G1G2_ind/ple_RAMS_G2_sfc diff --git a/run/AUS1.1-R/G1_Test/RAMSIN_G1_HIS1_1 b/run/V0/AUS1.1-R-V0/G1_Test/RAMSIN_G1_HIS1_1 similarity index 100% rename from run/AUS1.1-R/G1_Test/RAMSIN_G1_HIS1_1 rename to run/V0/AUS1.1-R-V0/G1_Test/RAMSIN_G1_HIS1_1 diff --git a/run/AUS1.1-R/G1_Test/RAMSIN_G1_INI_1 b/run/V0/AUS1.1-R-V0/G1_Test/RAMSIN_G1_INI_1 similarity index 100% rename from run/AUS1.1-R/G1_Test/RAMSIN_G1_INI_1 rename to run/V0/AUS1.1-R-V0/G1_Test/RAMSIN_G1_INI_1 diff --git a/run/AUS1.1-R/G1_Test/RAMSIN_G1_VAR_1 b/run/V0/AUS1.1-R-V0/G1_Test/RAMSIN_G1_VAR_1 similarity index 100% rename from run/AUS1.1-R/G1_Test/RAMSIN_G1_VAR_1 rename to run/V0/AUS1.1-R-V0/G1_Test/RAMSIN_G1_VAR_1 diff --git a/run/AUS1.1-R/G1_Test/ple_RAMS_G1_his1_1 b/run/V0/AUS1.1-R-V0/G1_Test/ple_RAMS_G1_his1_1 similarity index 100% rename from run/AUS1.1-R/G1_Test/ple_RAMS_G1_his1_1 rename to run/V0/AUS1.1-R-V0/G1_Test/ple_RAMS_G1_his1_1 diff --git a/run/AUS1.1-R/G1_Test/ple_RAMS_G1_ini_1 b/run/V0/AUS1.1-R-V0/G1_Test/ple_RAMS_G1_ini_1 similarity index 100% rename from run/AUS1.1-R/G1_Test/ple_RAMS_G1_ini_1 rename to run/V0/AUS1.1-R-V0/G1_Test/ple_RAMS_G1_ini_1 diff --git a/run/AUS1.1-R/G1_Test/ple_RAMS_G1_var_1 b/run/V0/AUS1.1-R-V0/G1_Test/ple_RAMS_G1_var_1 similarity index 100% rename from run/AUS1.1-R/G1_Test/ple_RAMS_G1_var_1 rename to run/V0/AUS1.1-R-V0/G1_Test/ple_RAMS_G1_var_1 diff --git a/run/AUS1.1-R/RAMSIN.INCUS b/run/V0/AUS1.1-R-V0/RAMSIN.INCUS similarity index 100% rename from run/AUS1.1-R/RAMSIN.INCUS rename to run/V0/AUS1.1-R-V0/RAMSIN.INCUS diff --git a/run/AUS1.1-R/RAMSIN_G12_HIS1_1 b/run/V0/AUS1.1-R-V0/RAMSIN_G12_HIS1_1 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G12_HIS1_1 rename to run/V0/AUS1.1-R-V0/RAMSIN_G12_HIS1_1 diff --git a/run/AUS1.1-R/RAMSIN_G12_HIS2_1 b/run/V0/AUS1.1-R-V0/RAMSIN_G12_HIS2_1 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G12_HIS2_1 rename to run/V0/AUS1.1-R-V0/RAMSIN_G12_HIS2_1 diff --git a/run/AUS1.1-R/RAMSIN_G12_HIS3_1 b/run/V0/AUS1.1-R-V0/RAMSIN_G12_HIS3_1 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G12_HIS3_1 rename to run/V0/AUS1.1-R-V0/RAMSIN_G12_HIS3_1 diff --git a/run/AUS1.1-R/RAMSIN_G12_INI_1 b/run/V0/AUS1.1-R-V0/RAMSIN_G12_INI_1 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G12_INI_1 rename to run/V0/AUS1.1-R-V0/RAMSIN_G12_INI_1 diff --git a/run/AUS1.1-R/RAMSIN_G12_SFC_1 b/run/V0/AUS1.1-R-V0/RAMSIN_G12_SFC_1 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G12_SFC_1 rename to run/V0/AUS1.1-R-V0/RAMSIN_G12_SFC_1 diff --git a/run/AUS1.1-R/RAMSIN_G3_HIS1 b/run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS1 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G3_HIS1 rename to run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS1 diff --git a/run/AUS1.1-R/RAMSIN_G3_HIS2 b/run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS2 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G3_HIS2 rename to run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS2 diff --git a/run/AUS1.1-R/RAMSIN_G3_HIS3 b/run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS3 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G3_HIS3 rename to run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS3 diff --git a/run/AUS1.1-R/RAMSIN_G3_HIS4 b/run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS4 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G3_HIS4 rename to run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS4 diff --git a/run/AUS1.1-R/RAMSIN_G3_HIS5 b/run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS5 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G3_HIS5 rename to run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS5 diff --git a/run/AUS1.1-R/RAMSIN_G3_HIS6 b/run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS6 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G3_HIS6 rename to run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS6 diff --git a/run/AUS1.1-R/RAMSIN_G3_HIS7 b/run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS7 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G3_HIS7 rename to run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS7 diff --git a/run/AUS1.1-R/RAMSIN_G3_HIS8 b/run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS8 similarity index 100% rename from run/AUS1.1-R/RAMSIN_G3_HIS8 rename to run/V0/AUS1.1-R-V0/RAMSIN_G3_HIS8 diff --git a/run/AUS1.1-R/RAMSIN_G3_INI b/run/V0/AUS1.1-R-V0/RAMSIN_G3_INI similarity index 100% rename from run/AUS1.1-R/RAMSIN_G3_INI rename to run/V0/AUS1.1-R-V0/RAMSIN_G3_INI diff --git a/run/AUS1.1-R/RAMSIN_G3_SFC b/run/V0/AUS1.1-R-V0/RAMSIN_G3_SFC similarity index 100% rename from run/AUS1.1-R/RAMSIN_G3_SFC rename to run/V0/AUS1.1-R-V0/RAMSIN_G3_SFC diff --git a/run/AUS1.1-R/include.mk.incus.ple b/run/V0/AUS1.1-R-V0/include.mk.incus.ple similarity index 100% rename from run/AUS1.1-R/include.mk.incus.ple rename to run/V0/AUS1.1-R-V0/include.mk.incus.ple diff --git a/run/AUS1.1-R/ple_RAMS.INCUS b/run/V0/AUS1.1-R-V0/ple_RAMS.INCUS similarity index 100% rename from run/AUS1.1-R/ple_RAMS.INCUS rename to run/V0/AUS1.1-R-V0/ple_RAMS.INCUS diff --git a/run/AUS1.1-R/ple_RAMS.INCUS.ldan b/run/V0/AUS1.1-R-V0/ple_RAMS.INCUS.ldan similarity index 100% rename from run/AUS1.1-R/ple_RAMS.INCUS.ldan rename to run/V0/AUS1.1-R-V0/ple_RAMS.INCUS.ldan diff --git a/run/AUS1.1-R/ple_RAMS_G12_his1_1 b/run/V0/AUS1.1-R-V0/ple_RAMS_G12_his1_1 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G12_his1_1 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G12_his1_1 diff --git a/run/AUS1.1-R/ple_RAMS_G12_his2_1 b/run/V0/AUS1.1-R-V0/ple_RAMS_G12_his2_1 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G12_his2_1 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G12_his2_1 diff --git a/run/AUS1.1-R/ple_RAMS_G12_his3_1 b/run/V0/AUS1.1-R-V0/ple_RAMS_G12_his3_1 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G12_his3_1 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G12_his3_1 diff --git a/run/AUS1.1-R/ple_RAMS_G12_ini_1 b/run/V0/AUS1.1-R-V0/ple_RAMS_G12_ini_1 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G12_ini_1 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G12_ini_1 diff --git a/run/AUS1.1-R/ple_RAMS_G12_sfc_1 b/run/V0/AUS1.1-R-V0/ple_RAMS_G12_sfc_1 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G12_sfc_1 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G12_sfc_1 diff --git a/run/AUS1.1-R/ple_RAMS_G3_his1 b/run/V0/AUS1.1-R-V0/ple_RAMS_G3_his1 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G3_his1 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G3_his1 diff --git a/run/AUS1.1-R/ple_RAMS_G3_his2 b/run/V0/AUS1.1-R-V0/ple_RAMS_G3_his2 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G3_his2 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G3_his2 diff --git a/run/AUS1.1-R/ple_RAMS_G3_his3 b/run/V0/AUS1.1-R-V0/ple_RAMS_G3_his3 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G3_his3 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G3_his3 diff --git a/run/AUS1.1-R/ple_RAMS_G3_his4 b/run/V0/AUS1.1-R-V0/ple_RAMS_G3_his4 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G3_his4 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G3_his4 diff --git a/run/AUS1.1-R/ple_RAMS_G3_his5 b/run/V0/AUS1.1-R-V0/ple_RAMS_G3_his5 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G3_his5 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G3_his5 diff --git a/run/AUS1.1-R/ple_RAMS_G3_his6 b/run/V0/AUS1.1-R-V0/ple_RAMS_G3_his6 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G3_his6 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G3_his6 diff --git a/run/AUS1.1-R/ple_RAMS_G3_his7 b/run/V0/AUS1.1-R-V0/ple_RAMS_G3_his7 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G3_his7 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G3_his7 diff --git a/run/AUS1.1-R/ple_RAMS_G3_his8 b/run/V0/AUS1.1-R-V0/ple_RAMS_G3_his8 similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G3_his8 rename to run/V0/AUS1.1-R-V0/ple_RAMS_G3_his8 diff --git a/run/AUS1.1-R/ple_RAMS_G3_sfc b/run/V0/AUS1.1-R-V0/ple_RAMS_G3_sfc similarity index 100% rename from run/AUS1.1-R/ple_RAMS_G3_sfc rename to run/V0/AUS1.1-R-V0/ple_RAMS_G3_sfc diff --git a/run/AUS1.1-R/rams-6.3.02 b/run/V0/AUS1.1-R-V0/rams-6.3.02 similarity index 100% rename from run/AUS1.1-R/rams-6.3.02 rename to run/V0/AUS1.1-R-V0/rams-6.3.02 diff --git a/run/CCCX.X-M/RAMSIN.INCUS b/run/V0/CCCX.X-M-V0/RAMSIN.INCUS.V0 similarity index 100% rename from run/CCCX.X-M/RAMSIN.INCUS rename to run/V0/CCCX.X-M-V0/RAMSIN.INCUS.V0 diff --git a/run/CCCX.X-M/include.mk.incus.ple b/run/V0/CCCX.X-M-V0/include.mk.incus.ple similarity index 100% rename from run/CCCX.X-M/include.mk.incus.ple rename to run/V0/CCCX.X-M-V0/include.mk.incus.ple diff --git a/run/CCCX.X-M/ple_RAMS.INCUS b/run/V0/CCCX.X-M-V0/ple_RAMS.INCUS similarity index 100% rename from run/CCCX.X-M/ple_RAMS.INCUS rename to run/V0/CCCX.X-M-V0/ple_RAMS.INCUS diff --git a/run/CCCX.X-M/ple_RAMS.INCUS.ldan b/run/V0/CCCX.X-M-V0/ple_RAMS.INCUS.ldan similarity index 100% rename from run/CCCX.X-M/ple_RAMS.INCUS.ldan rename to run/V0/CCCX.X-M-V0/ple_RAMS.INCUS.ldan diff --git a/run/DRC1.1-R/RAMSIN.INCUS b/run/V0/DRC1.1-R-V0/RAMSIN.INCUS similarity index 100% rename from run/DRC1.1-R/RAMSIN.INCUS rename to run/V0/DRC1.1-R-V0/RAMSIN.INCUS diff --git a/run/DRC1.1-R/RAMSIN_G1_HIS1 b/run/V0/DRC1.1-R-V0/RAMSIN_G1_HIS1 similarity index 100% rename from run/DRC1.1-R/RAMSIN_G1_HIS1 rename to run/V0/DRC1.1-R-V0/RAMSIN_G1_HIS1 diff --git a/run/DRC1.1-R/RAMSIN_G1_INI b/run/V0/DRC1.1-R-V0/RAMSIN_G1_INI similarity index 100% rename from run/DRC1.1-R/RAMSIN_G1_INI rename to run/V0/DRC1.1-R-V0/RAMSIN_G1_INI diff --git a/run/DRC1.1-R/RAMSIN_G1_SFC b/run/V0/DRC1.1-R-V0/RAMSIN_G1_SFC similarity index 100% rename from run/DRC1.1-R/RAMSIN_G1_SFC rename to run/V0/DRC1.1-R-V0/RAMSIN_G1_SFC diff --git a/run/DRC1.1-R/RAMSIN_G1_VAR b/run/V0/DRC1.1-R-V0/RAMSIN_G1_VAR similarity index 100% rename from run/DRC1.1-R/RAMSIN_G1_VAR rename to run/V0/DRC1.1-R-V0/RAMSIN_G1_VAR diff --git a/run/DRC1.1-R/RAMSIN_G2_HIS1 b/run/V0/DRC1.1-R-V0/RAMSIN_G2_HIS1 similarity index 100% rename from run/DRC1.1-R/RAMSIN_G2_HIS1 rename to run/V0/DRC1.1-R-V0/RAMSIN_G2_HIS1 diff --git a/run/DRC1.1-R/RAMSIN_G2_HIS2 b/run/V0/DRC1.1-R-V0/RAMSIN_G2_HIS2 similarity index 100% rename from run/DRC1.1-R/RAMSIN_G2_HIS2 rename to run/V0/DRC1.1-R-V0/RAMSIN_G2_HIS2 diff --git a/run/DRC1.1-R/RAMSIN_G2_INI b/run/V0/DRC1.1-R-V0/RAMSIN_G2_INI similarity index 100% rename from run/DRC1.1-R/RAMSIN_G2_INI rename to run/V0/DRC1.1-R-V0/RAMSIN_G2_INI diff --git a/run/DRC1.1-R/RAMSIN_G2_SFC b/run/V0/DRC1.1-R-V0/RAMSIN_G2_SFC similarity index 100% rename from run/DRC1.1-R/RAMSIN_G2_SFC rename to run/V0/DRC1.1-R-V0/RAMSIN_G2_SFC diff --git a/run/DRC1.1-R/RAMSIN_G3_HIS1 b/run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS1 similarity index 100% rename from run/DRC1.1-R/RAMSIN_G3_HIS1 rename to run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS1 diff --git a/run/DRC1.1-R/RAMSIN_G3_HIS2 b/run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS2 similarity index 100% rename from run/DRC1.1-R/RAMSIN_G3_HIS2 rename to run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS2 diff --git a/run/DRC1.1-R/RAMSIN_G3_HIS3 b/run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS3 similarity index 100% rename from run/DRC1.1-R/RAMSIN_G3_HIS3 rename to run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS3 diff --git a/run/DRC1.1-R/RAMSIN_G3_HIS4 b/run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS4 similarity index 100% rename from run/DRC1.1-R/RAMSIN_G3_HIS4 rename to run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS4 diff --git a/run/DRC1.1-R/RAMSIN_G3_HIS5 b/run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS5 similarity index 100% rename from run/DRC1.1-R/RAMSIN_G3_HIS5 rename to run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS5 diff --git a/run/DRC1.1-R/RAMSIN_G3_HIS_MICRO b/run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS_MICRO similarity index 100% rename from run/DRC1.1-R/RAMSIN_G3_HIS_MICRO rename to run/V0/DRC1.1-R-V0/RAMSIN_G3_HIS_MICRO diff --git a/run/DRC1.1-R/RAMSIN_G3_INI b/run/V0/DRC1.1-R-V0/RAMSIN_G3_INI similarity index 100% rename from run/DRC1.1-R/RAMSIN_G3_INI rename to run/V0/DRC1.1-R-V0/RAMSIN_G3_INI diff --git a/run/DRC1.1-R/RAMSIN_G3_SFC b/run/V0/DRC1.1-R-V0/RAMSIN_G3_SFC similarity index 100% rename from run/DRC1.1-R/RAMSIN_G3_SFC rename to run/V0/DRC1.1-R-V0/RAMSIN_G3_SFC diff --git a/run/DRC1.1-R/include.mk.incus.ple b/run/V0/DRC1.1-R-V0/include.mk.incus.ple similarity index 100% rename from run/DRC1.1-R/include.mk.incus.ple rename to run/V0/DRC1.1-R-V0/include.mk.incus.ple diff --git a/run/DRC1.1-R/ple_RAMS.INCUS b/run/V0/DRC1.1-R-V0/ple_RAMS.INCUS similarity index 100% rename from run/DRC1.1-R/ple_RAMS.INCUS rename to run/V0/DRC1.1-R-V0/ple_RAMS.INCUS diff --git a/run/DRC1.1-R/ple_RAMS.INCUS.ldan b/run/V0/DRC1.1-R-V0/ple_RAMS.INCUS.ldan similarity index 100% rename from run/DRC1.1-R/ple_RAMS.INCUS.ldan rename to run/V0/DRC1.1-R-V0/ple_RAMS.INCUS.ldan diff --git a/run/DRC1.1-R/ple_RAMS_G1_his1 b/run/V0/DRC1.1-R-V0/ple_RAMS_G1_his1 similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G1_his1 rename to run/V0/DRC1.1-R-V0/ple_RAMS_G1_his1 diff --git a/run/DRC1.1-R/ple_RAMS_G1_ini b/run/V0/DRC1.1-R-V0/ple_RAMS_G1_ini similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G1_ini rename to run/V0/DRC1.1-R-V0/ple_RAMS_G1_ini diff --git a/run/DRC1.1-R/ple_RAMS_G1_sfc b/run/V0/DRC1.1-R-V0/ple_RAMS_G1_sfc similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G1_sfc rename to run/V0/DRC1.1-R-V0/ple_RAMS_G1_sfc diff --git a/run/DRC1.1-R/ple_RAMS_G1_var b/run/V0/DRC1.1-R-V0/ple_RAMS_G1_var similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G1_var rename to run/V0/DRC1.1-R-V0/ple_RAMS_G1_var diff --git a/run/DRC1.1-R/ple_RAMS_G2_his1 b/run/V0/DRC1.1-R-V0/ple_RAMS_G2_his1 similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G2_his1 rename to run/V0/DRC1.1-R-V0/ple_RAMS_G2_his1 diff --git a/run/DRC1.1-R/ple_RAMS_G2_his2 b/run/V0/DRC1.1-R-V0/ple_RAMS_G2_his2 similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G2_his2 rename to run/V0/DRC1.1-R-V0/ple_RAMS_G2_his2 diff --git a/run/DRC1.1-R/ple_RAMS_G2_ini b/run/V0/DRC1.1-R-V0/ple_RAMS_G2_ini similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G2_ini rename to run/V0/DRC1.1-R-V0/ple_RAMS_G2_ini diff --git a/run/DRC1.1-R/ple_RAMS_G2_sfc b/run/V0/DRC1.1-R-V0/ple_RAMS_G2_sfc similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G2_sfc rename to run/V0/DRC1.1-R-V0/ple_RAMS_G2_sfc diff --git a/run/DRC1.1-R/ple_RAMS_G3_his1 b/run/V0/DRC1.1-R-V0/ple_RAMS_G3_his1 similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G3_his1 rename to run/V0/DRC1.1-R-V0/ple_RAMS_G3_his1 diff --git a/run/DRC1.1-R/ple_RAMS_G3_his2 b/run/V0/DRC1.1-R-V0/ple_RAMS_G3_his2 similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G3_his2 rename to run/V0/DRC1.1-R-V0/ple_RAMS_G3_his2 diff --git a/run/DRC1.1-R/ple_RAMS_G3_his3 b/run/V0/DRC1.1-R-V0/ple_RAMS_G3_his3 similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G3_his3 rename to run/V0/DRC1.1-R-V0/ple_RAMS_G3_his3 diff --git a/run/DRC1.1-R/ple_RAMS_G3_his4 b/run/V0/DRC1.1-R-V0/ple_RAMS_G3_his4 similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G3_his4 rename to run/V0/DRC1.1-R-V0/ple_RAMS_G3_his4 diff --git a/run/DRC1.1-R/ple_RAMS_G3_his5 b/run/V0/DRC1.1-R-V0/ple_RAMS_G3_his5 similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G3_his5 rename to run/V0/DRC1.1-R-V0/ple_RAMS_G3_his5 diff --git a/run/DRC1.1-R/ple_RAMS_G3_his_micro b/run/V0/DRC1.1-R-V0/ple_RAMS_G3_his_micro similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G3_his_micro rename to run/V0/DRC1.1-R-V0/ple_RAMS_G3_his_micro diff --git a/run/DRC1.1-R/ple_RAMS_G3_sfc b/run/V0/DRC1.1-R-V0/ple_RAMS_G3_sfc similarity index 100% rename from run/DRC1.1-R/ple_RAMS_G3_sfc rename to run/V0/DRC1.1-R-V0/ple_RAMS_G3_sfc diff --git a/run/DRC1.1-R/rams-6.3.02 b/run/V0/DRC1.1-R-V0/rams-6.3.02 similarity index 100% rename from run/DRC1.1-R/rams-6.3.02 rename to run/V0/DRC1.1-R-V0/rams-6.3.02 diff --git a/run/DRC1.1-RC/RAMSIN.INCUS b/run/V0/DRC1.1-RC-V0/RAMSIN.INCUS similarity index 100% rename from run/DRC1.1-RC/RAMSIN.INCUS rename to run/V0/DRC1.1-RC-V0/RAMSIN.INCUS diff --git a/run/DRC1.1-RC/RAMSIN_G1_HIS1 b/run/V0/DRC1.1-RC-V0/RAMSIN_G1_HIS1 similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G1_HIS1 rename to run/V0/DRC1.1-RC-V0/RAMSIN_G1_HIS1 diff --git a/run/DRC1.1-RC/RAMSIN_G1_INI b/run/V0/DRC1.1-RC-V0/RAMSIN_G1_INI similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G1_INI rename to run/V0/DRC1.1-RC-V0/RAMSIN_G1_INI diff --git a/run/DRC1.1-RC/RAMSIN_G1_SFC b/run/V0/DRC1.1-RC-V0/RAMSIN_G1_SFC similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G1_SFC rename to run/V0/DRC1.1-RC-V0/RAMSIN_G1_SFC diff --git a/run/DRC1.1-RC/RAMSIN_G1_VAR b/run/V0/DRC1.1-RC-V0/RAMSIN_G1_VAR similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G1_VAR rename to run/V0/DRC1.1-RC-V0/RAMSIN_G1_VAR diff --git a/run/DRC1.1-RC/RAMSIN_G2_HIS1 b/run/V0/DRC1.1-RC-V0/RAMSIN_G2_HIS1 similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G2_HIS1 rename to run/V0/DRC1.1-RC-V0/RAMSIN_G2_HIS1 diff --git a/run/DRC1.1-RC/RAMSIN_G2_HIS2 b/run/V0/DRC1.1-RC-V0/RAMSIN_G2_HIS2 similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G2_HIS2 rename to run/V0/DRC1.1-RC-V0/RAMSIN_G2_HIS2 diff --git a/run/DRC1.1-RC/RAMSIN_G2_INI b/run/V0/DRC1.1-RC-V0/RAMSIN_G2_INI similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G2_INI rename to run/V0/DRC1.1-RC-V0/RAMSIN_G2_INI diff --git a/run/DRC1.1-RC/RAMSIN_G2_SFC b/run/V0/DRC1.1-RC-V0/RAMSIN_G2_SFC similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G2_SFC rename to run/V0/DRC1.1-RC-V0/RAMSIN_G2_SFC diff --git a/run/DRC1.1-RC/RAMSIN_G3_HIS1 b/run/V0/DRC1.1-RC-V0/RAMSIN_G3_HIS1 similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G3_HIS1 rename to run/V0/DRC1.1-RC-V0/RAMSIN_G3_HIS1 diff --git a/run/DRC1.1-RC/RAMSIN_G3_HIS2 b/run/V0/DRC1.1-RC-V0/RAMSIN_G3_HIS2 similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G3_HIS2 rename to run/V0/DRC1.1-RC-V0/RAMSIN_G3_HIS2 diff --git a/run/DRC1.1-RC/RAMSIN_G3_HIS3 b/run/V0/DRC1.1-RC-V0/RAMSIN_G3_HIS3 similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G3_HIS3 rename to run/V0/DRC1.1-RC-V0/RAMSIN_G3_HIS3 diff --git a/run/DRC1.1-RC/RAMSIN_G3_HIS4 b/run/V0/DRC1.1-RC-V0/RAMSIN_G3_HIS4 similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G3_HIS4 rename to run/V0/DRC1.1-RC-V0/RAMSIN_G3_HIS4 diff --git a/run/DRC1.1-RC/RAMSIN_G3_HIS5 b/run/V0/DRC1.1-RC-V0/RAMSIN_G3_HIS5 similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G3_HIS5 rename to run/V0/DRC1.1-RC-V0/RAMSIN_G3_HIS5 diff --git a/run/DRC1.1-RC/RAMSIN_G3_INI b/run/V0/DRC1.1-RC-V0/RAMSIN_G3_INI similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G3_INI rename to run/V0/DRC1.1-RC-V0/RAMSIN_G3_INI diff --git a/run/DRC1.1-RC/RAMSIN_G3_SFC b/run/V0/DRC1.1-RC-V0/RAMSIN_G3_SFC similarity index 100% rename from run/DRC1.1-RC/RAMSIN_G3_SFC rename to run/V0/DRC1.1-RC-V0/RAMSIN_G3_SFC diff --git a/run/DRC1.1-RC/include.mk.incus.ple b/run/V0/DRC1.1-RC-V0/include.mk.incus.ple similarity index 100% rename from run/DRC1.1-RC/include.mk.incus.ple rename to run/V0/DRC1.1-RC-V0/include.mk.incus.ple diff --git a/run/DRC1.1-RC/ple_RAMS.INCUS b/run/V0/DRC1.1-RC-V0/ple_RAMS.INCUS similarity index 100% rename from run/DRC1.1-RC/ple_RAMS.INCUS rename to run/V0/DRC1.1-RC-V0/ple_RAMS.INCUS diff --git a/run/DRC1.1-RC/ple_RAMS.INCUS.ldan b/run/V0/DRC1.1-RC-V0/ple_RAMS.INCUS.ldan similarity index 100% rename from run/DRC1.1-RC/ple_RAMS.INCUS.ldan rename to run/V0/DRC1.1-RC-V0/ple_RAMS.INCUS.ldan diff --git a/run/DRC1.1-RC/ple_RAMS_G1_his1 b/run/V0/DRC1.1-RC-V0/ple_RAMS_G1_his1 similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G1_his1 rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G1_his1 diff --git a/run/DRC1.1-RC/ple_RAMS_G1_ini b/run/V0/DRC1.1-RC-V0/ple_RAMS_G1_ini similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G1_ini rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G1_ini diff --git a/run/DRC1.1-RC/ple_RAMS_G1_sfc b/run/V0/DRC1.1-RC-V0/ple_RAMS_G1_sfc similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G1_sfc rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G1_sfc diff --git a/run/DRC1.1-RC/ple_RAMS_G1_var b/run/V0/DRC1.1-RC-V0/ple_RAMS_G1_var similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G1_var rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G1_var diff --git a/run/DRC1.1-RC/ple_RAMS_G2_his1 b/run/V0/DRC1.1-RC-V0/ple_RAMS_G2_his1 similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G2_his1 rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G2_his1 diff --git a/run/DRC1.1-RC/ple_RAMS_G2_his2 b/run/V0/DRC1.1-RC-V0/ple_RAMS_G2_his2 similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G2_his2 rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G2_his2 diff --git a/run/DRC1.1-RC/ple_RAMS_G2_ini b/run/V0/DRC1.1-RC-V0/ple_RAMS_G2_ini similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G2_ini rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G2_ini diff --git a/run/DRC1.1-RC/ple_RAMS_G2_sfc b/run/V0/DRC1.1-RC-V0/ple_RAMS_G2_sfc similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G2_sfc rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G2_sfc diff --git a/run/DRC1.1-RC/ple_RAMS_G3_his1 b/run/V0/DRC1.1-RC-V0/ple_RAMS_G3_his1 similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G3_his1 rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G3_his1 diff --git a/run/DRC1.1-RC/ple_RAMS_G3_his2 b/run/V0/DRC1.1-RC-V0/ple_RAMS_G3_his2 similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G3_his2 rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G3_his2 diff --git a/run/DRC1.1-RC/ple_RAMS_G3_his3 b/run/V0/DRC1.1-RC-V0/ple_RAMS_G3_his3 similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G3_his3 rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G3_his3 diff --git a/run/DRC1.1-RC/ple_RAMS_G3_his4 b/run/V0/DRC1.1-RC-V0/ple_RAMS_G3_his4 similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G3_his4 rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G3_his4 diff --git a/run/DRC1.1-RC/ple_RAMS_G3_his5 b/run/V0/DRC1.1-RC-V0/ple_RAMS_G3_his5 similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G3_his5 rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G3_his5 diff --git a/run/DRC1.1-RC/ple_RAMS_G3_sfc b/run/V0/DRC1.1-RC-V0/ple_RAMS_G3_sfc similarity index 100% rename from run/DRC1.1-RC/ple_RAMS_G3_sfc rename to run/V0/DRC1.1-RC-V0/ple_RAMS_G3_sfc diff --git a/run/DRC1.1-RC/rams-6.3.02 b/run/V0/DRC1.1-RC-V0/rams-6.3.02 similarity index 100% rename from run/DRC1.1-RC/rams-6.3.02 rename to run/V0/DRC1.1-RC-V0/rams-6.3.02 diff --git a/run/PHI1.1-R/D1/RAMSIN.INI b/run/V0/PHI1.1-R-V0/D1/RAMSIN.INI similarity index 100% rename from run/PHI1.1-R/D1/RAMSIN.INI rename to run/V0/PHI1.1-R-V0/D1/RAMSIN.INI diff --git a/run/PHI1.1-R/D1/RAMSIN.VAR b/run/V0/PHI1.1-R-V0/D1/RAMSIN.VAR similarity index 100% rename from run/PHI1.1-R/D1/RAMSIN.VAR rename to run/V0/PHI1.1-R-V0/D1/RAMSIN.VAR diff --git a/run/PHI1.1-R/RAMSIN.HIS.2G b/run/V0/PHI1.1-R-V0/RAMSIN.HIS.2G similarity index 100% rename from run/PHI1.1-R/RAMSIN.HIS.2G rename to run/V0/PHI1.1-R-V0/RAMSIN.HIS.2G diff --git a/run/PHI1.1-R/RAMSIN.HIS1.3G b/run/V0/PHI1.1-R-V0/RAMSIN.HIS1.3G similarity index 100% rename from run/PHI1.1-R/RAMSIN.HIS1.3G rename to run/V0/PHI1.1-R-V0/RAMSIN.HIS1.3G diff --git a/run/PHI1.1-R/RAMSIN.HIS2.3G b/run/V0/PHI1.1-R-V0/RAMSIN.HIS2.3G similarity index 100% rename from run/PHI1.1-R/RAMSIN.HIS2.3G rename to run/V0/PHI1.1-R-V0/RAMSIN.HIS2.3G diff --git a/run/PHI1.1-R/RAMSIN.HIS3.3G b/run/V0/PHI1.1-R-V0/RAMSIN.HIS3.3G similarity index 100% rename from run/PHI1.1-R/RAMSIN.HIS3.3G rename to run/V0/PHI1.1-R-V0/RAMSIN.HIS3.3G diff --git a/run/PHI1.1-R/RAMSIN.HIS4.3G b/run/V0/PHI1.1-R-V0/RAMSIN.HIS4.3G similarity index 100% rename from run/PHI1.1-R/RAMSIN.HIS4.3G rename to run/V0/PHI1.1-R-V0/RAMSIN.HIS4.3G diff --git a/run/PHI1.1-R/RAMSIN.INI b/run/V0/PHI1.1-R-V0/RAMSIN.INI similarity index 100% rename from run/PHI1.1-R/RAMSIN.INI rename to run/V0/PHI1.1-R-V0/RAMSIN.INI diff --git a/run/PHI1.1-R/RAMSIN.INI.2G b/run/V0/PHI1.1-R-V0/RAMSIN.INI.2G similarity index 100% rename from run/PHI1.1-R/RAMSIN.INI.2G rename to run/V0/PHI1.1-R-V0/RAMSIN.INI.2G diff --git a/run/PHI1.1-R/RAMSIN.INI.3G b/run/V0/PHI1.1-R-V0/RAMSIN.INI.3G similarity index 100% rename from run/PHI1.1-R/RAMSIN.INI.3G rename to run/V0/PHI1.1-R-V0/RAMSIN.INI.3G diff --git a/run/PHI1.1-R/RAMSIN.SFC b/run/V0/PHI1.1-R-V0/RAMSIN.SFC similarity index 100% rename from run/PHI1.1-R/RAMSIN.SFC rename to run/V0/PHI1.1-R-V0/RAMSIN.SFC diff --git a/run/PHI1.1-R/RAMSIN.SFC.2G b/run/V0/PHI1.1-R-V0/RAMSIN.SFC.2G similarity index 100% rename from run/PHI1.1-R/RAMSIN.SFC.2G rename to run/V0/PHI1.1-R-V0/RAMSIN.SFC.2G diff --git a/run/PHI1.1-R/RAMSIN.SFC.3G b/run/V0/PHI1.1-R-V0/RAMSIN.SFC.3G similarity index 100% rename from run/PHI1.1-R/RAMSIN.SFC.3G rename to run/V0/PHI1.1-R-V0/RAMSIN.SFC.3G diff --git a/run/PHI1.1-R/RAMSIN.VAR b/run/V0/PHI1.1-R-V0/RAMSIN.VAR similarity index 100% rename from run/PHI1.1-R/RAMSIN.VAR rename to run/V0/PHI1.1-R-V0/RAMSIN.VAR diff --git a/run/PHI1.1-R/RAMSIN.VAR_test b/run/V0/PHI1.1-R-V0/RAMSIN.VAR_test similarity index 100% rename from run/PHI1.1-R/RAMSIN.VAR_test rename to run/V0/PHI1.1-R-V0/RAMSIN.VAR_test diff --git a/run/PHI1.1-R/ple_RAMS.INCUS b/run/V0/PHI1.1-R-V0/ple_RAMS.INCUS similarity index 100% rename from run/PHI1.1-R/ple_RAMS.INCUS rename to run/V0/PHI1.1-R-V0/ple_RAMS.INCUS diff --git a/run/PHI1.1-R/ple_RAMS_his1_3G b/run/V0/PHI1.1-R-V0/ple_RAMS_his1_3G similarity index 100% rename from run/PHI1.1-R/ple_RAMS_his1_3G rename to run/V0/PHI1.1-R-V0/ple_RAMS_his1_3G diff --git a/run/PHI1.1-R/ple_RAMS_his2_3G b/run/V0/PHI1.1-R-V0/ple_RAMS_his2_3G similarity index 100% rename from run/PHI1.1-R/ple_RAMS_his2_3G rename to run/V0/PHI1.1-R-V0/ple_RAMS_his2_3G diff --git a/run/PHI1.1-R/ple_RAMS_his3_3G b/run/V0/PHI1.1-R-V0/ple_RAMS_his3_3G similarity index 100% rename from run/PHI1.1-R/ple_RAMS_his3_3G rename to run/V0/PHI1.1-R-V0/ple_RAMS_his3_3G diff --git a/run/PHI1.1-R/ple_RAMS_his4_3G b/run/V0/PHI1.1-R-V0/ple_RAMS_his4_3G similarity index 100% rename from run/PHI1.1-R/ple_RAMS_his4_3G rename to run/V0/PHI1.1-R-V0/ple_RAMS_his4_3G diff --git a/run/PHI1.1-R/ple_RAMS_his_2G b/run/V0/PHI1.1-R-V0/ple_RAMS_his_2G similarity index 100% rename from run/PHI1.1-R/ple_RAMS_his_2G rename to run/V0/PHI1.1-R-V0/ple_RAMS_his_2G diff --git a/run/PHI1.1-R/ple_RAMS_ini b/run/V0/PHI1.1-R-V0/ple_RAMS_ini similarity index 100% rename from run/PHI1.1-R/ple_RAMS_ini rename to run/V0/PHI1.1-R-V0/ple_RAMS_ini diff --git a/run/PHI1.1-R/ple_RAMS_ini_2G b/run/V0/PHI1.1-R-V0/ple_RAMS_ini_2G similarity index 100% rename from run/PHI1.1-R/ple_RAMS_ini_2G rename to run/V0/PHI1.1-R-V0/ple_RAMS_ini_2G diff --git a/run/PHI1.1-R/ple_RAMS_ini_3G b/run/V0/PHI1.1-R-V0/ple_RAMS_ini_3G similarity index 100% rename from run/PHI1.1-R/ple_RAMS_ini_3G rename to run/V0/PHI1.1-R-V0/ple_RAMS_ini_3G diff --git a/run/PHI1.1-R/ple_RAMS_sfc b/run/V0/PHI1.1-R-V0/ple_RAMS_sfc similarity index 100% rename from run/PHI1.1-R/ple_RAMS_sfc rename to run/V0/PHI1.1-R-V0/ple_RAMS_sfc diff --git a/run/PHI1.1-R/ple_RAMS_sfc_2G b/run/V0/PHI1.1-R-V0/ple_RAMS_sfc_2G similarity index 100% rename from run/PHI1.1-R/ple_RAMS_sfc_2G rename to run/V0/PHI1.1-R-V0/ple_RAMS_sfc_2G diff --git a/run/PHI1.1-R/ple_RAMS_sfc_3G b/run/V0/PHI1.1-R-V0/ple_RAMS_sfc_3G similarity index 100% rename from run/PHI1.1-R/ple_RAMS_sfc_3G rename to run/V0/PHI1.1-R-V0/ple_RAMS_sfc_3G diff --git a/run/PHI1.1-R/ple_RAMS_var b/run/V0/PHI1.1-R-V0/ple_RAMS_var similarity index 100% rename from run/PHI1.1-R/ple_RAMS_var rename to run/V0/PHI1.1-R-V0/ple_RAMS_var diff --git a/run/PHI1.1-R/ple_RAMS_var_test b/run/V0/PHI1.1-R-V0/ple_RAMS_var_test similarity index 100% rename from run/PHI1.1-R/ple_RAMS_var_test rename to run/V0/PHI1.1-R-V0/ple_RAMS_var_test diff --git a/run/PHI1.1-R/rams-6.3.02 b/run/V0/PHI1.1-R-V0/rams-6.3.02 similarity index 100% rename from run/PHI1.1-R/rams-6.3.02 rename to run/V0/PHI1.1-R-V0/rams-6.3.02 diff --git a/run/PHI1.1-RC/D1/RAMSIN.INI b/run/V0/PHI1.1-RC-V0/D1/RAMSIN.INI similarity index 100% rename from run/PHI1.1-RC/D1/RAMSIN.INI rename to run/V0/PHI1.1-RC-V0/D1/RAMSIN.INI diff --git a/run/PHI1.1-RC/D1/RAMSIN.VAR b/run/V0/PHI1.1-RC-V0/D1/RAMSIN.VAR similarity index 100% rename from run/PHI1.1-RC/D1/RAMSIN.VAR rename to run/V0/PHI1.1-RC-V0/D1/RAMSIN.VAR diff --git a/run/PHI1.1-RC/RAMSIN.HIS.2G b/run/V0/PHI1.1-RC-V0/RAMSIN.HIS.2G similarity index 100% rename from run/PHI1.1-RC/RAMSIN.HIS.2G rename to run/V0/PHI1.1-RC-V0/RAMSIN.HIS.2G diff --git a/run/PHI1.1-RC/RAMSIN.HIS1.3G b/run/V0/PHI1.1-RC-V0/RAMSIN.HIS1.3G similarity index 100% rename from run/PHI1.1-RC/RAMSIN.HIS1.3G rename to run/V0/PHI1.1-RC-V0/RAMSIN.HIS1.3G diff --git a/run/PHI1.1-RC/RAMSIN.HIS2.3G b/run/V0/PHI1.1-RC-V0/RAMSIN.HIS2.3G similarity index 100% rename from run/PHI1.1-RC/RAMSIN.HIS2.3G rename to run/V0/PHI1.1-RC-V0/RAMSIN.HIS2.3G diff --git a/run/PHI1.1-RC/RAMSIN.HIS3.3G b/run/V0/PHI1.1-RC-V0/RAMSIN.HIS3.3G similarity index 100% rename from run/PHI1.1-RC/RAMSIN.HIS3.3G rename to run/V0/PHI1.1-RC-V0/RAMSIN.HIS3.3G diff --git a/run/PHI1.1-RC/RAMSIN.HIS4.3G b/run/V0/PHI1.1-RC-V0/RAMSIN.HIS4.3G similarity index 100% rename from run/PHI1.1-RC/RAMSIN.HIS4.3G rename to run/V0/PHI1.1-RC-V0/RAMSIN.HIS4.3G diff --git a/run/PHI1.1-RC/RAMSIN.INI b/run/V0/PHI1.1-RC-V0/RAMSIN.INI similarity index 100% rename from run/PHI1.1-RC/RAMSIN.INI rename to run/V0/PHI1.1-RC-V0/RAMSIN.INI diff --git a/run/PHI1.1-RC/RAMSIN.INI.2G b/run/V0/PHI1.1-RC-V0/RAMSIN.INI.2G similarity index 100% rename from run/PHI1.1-RC/RAMSIN.INI.2G rename to run/V0/PHI1.1-RC-V0/RAMSIN.INI.2G diff --git a/run/PHI1.1-RC/RAMSIN.INI.3G b/run/V0/PHI1.1-RC-V0/RAMSIN.INI.3G similarity index 100% rename from run/PHI1.1-RC/RAMSIN.INI.3G rename to run/V0/PHI1.1-RC-V0/RAMSIN.INI.3G diff --git a/run/PHI1.1-RC/RAMSIN.SFC b/run/V0/PHI1.1-RC-V0/RAMSIN.SFC similarity index 100% rename from run/PHI1.1-RC/RAMSIN.SFC rename to run/V0/PHI1.1-RC-V0/RAMSIN.SFC diff --git a/run/PHI1.1-RC/RAMSIN.SFC.2G b/run/V0/PHI1.1-RC-V0/RAMSIN.SFC.2G similarity index 100% rename from run/PHI1.1-RC/RAMSIN.SFC.2G rename to run/V0/PHI1.1-RC-V0/RAMSIN.SFC.2G diff --git a/run/PHI1.1-RC/RAMSIN.SFC.3G b/run/V0/PHI1.1-RC-V0/RAMSIN.SFC.3G similarity index 100% rename from run/PHI1.1-RC/RAMSIN.SFC.3G rename to run/V0/PHI1.1-RC-V0/RAMSIN.SFC.3G diff --git a/run/PHI1.1-RC/RAMSIN.VAR b/run/V0/PHI1.1-RC-V0/RAMSIN.VAR similarity index 100% rename from run/PHI1.1-RC/RAMSIN.VAR rename to run/V0/PHI1.1-RC-V0/RAMSIN.VAR diff --git a/run/PHI1.1-RC/RAMSIN.VAR_test b/run/V0/PHI1.1-RC-V0/RAMSIN.VAR_test similarity index 100% rename from run/PHI1.1-RC/RAMSIN.VAR_test rename to run/V0/PHI1.1-RC-V0/RAMSIN.VAR_test diff --git a/run/PHI1.1-RC/ple_RAMS.INCUS b/run/V0/PHI1.1-RC-V0/ple_RAMS.INCUS similarity index 100% rename from run/PHI1.1-RC/ple_RAMS.INCUS rename to run/V0/PHI1.1-RC-V0/ple_RAMS.INCUS diff --git a/run/PHI1.1-RC/ple_RAMS_his1_3G b/run/V0/PHI1.1-RC-V0/ple_RAMS_his1_3G similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_his1_3G rename to run/V0/PHI1.1-RC-V0/ple_RAMS_his1_3G diff --git a/run/PHI1.1-RC/ple_RAMS_his2_3G b/run/V0/PHI1.1-RC-V0/ple_RAMS_his2_3G similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_his2_3G rename to run/V0/PHI1.1-RC-V0/ple_RAMS_his2_3G diff --git a/run/PHI1.1-RC/ple_RAMS_his3_3G b/run/V0/PHI1.1-RC-V0/ple_RAMS_his3_3G similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_his3_3G rename to run/V0/PHI1.1-RC-V0/ple_RAMS_his3_3G diff --git a/run/PHI1.1-RC/ple_RAMS_his4_3G b/run/V0/PHI1.1-RC-V0/ple_RAMS_his4_3G similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_his4_3G rename to run/V0/PHI1.1-RC-V0/ple_RAMS_his4_3G diff --git a/run/PHI1.1-RC/ple_RAMS_his_2G b/run/V0/PHI1.1-RC-V0/ple_RAMS_his_2G similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_his_2G rename to run/V0/PHI1.1-RC-V0/ple_RAMS_his_2G diff --git a/run/PHI1.1-RC/ple_RAMS_ini b/run/V0/PHI1.1-RC-V0/ple_RAMS_ini similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_ini rename to run/V0/PHI1.1-RC-V0/ple_RAMS_ini diff --git a/run/PHI1.1-RC/ple_RAMS_ini_2G b/run/V0/PHI1.1-RC-V0/ple_RAMS_ini_2G similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_ini_2G rename to run/V0/PHI1.1-RC-V0/ple_RAMS_ini_2G diff --git a/run/PHI1.1-RC/ple_RAMS_ini_3G b/run/V0/PHI1.1-RC-V0/ple_RAMS_ini_3G similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_ini_3G rename to run/V0/PHI1.1-RC-V0/ple_RAMS_ini_3G diff --git a/run/PHI1.1-RC/ple_RAMS_sfc b/run/V0/PHI1.1-RC-V0/ple_RAMS_sfc similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_sfc rename to run/V0/PHI1.1-RC-V0/ple_RAMS_sfc diff --git a/run/PHI1.1-RC/ple_RAMS_sfc_2G b/run/V0/PHI1.1-RC-V0/ple_RAMS_sfc_2G similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_sfc_2G rename to run/V0/PHI1.1-RC-V0/ple_RAMS_sfc_2G diff --git a/run/PHI1.1-RC/ple_RAMS_sfc_3G b/run/V0/PHI1.1-RC-V0/ple_RAMS_sfc_3G similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_sfc_3G rename to run/V0/PHI1.1-RC-V0/ple_RAMS_sfc_3G diff --git a/run/PHI1.1-RC/ple_RAMS_var b/run/V0/PHI1.1-RC-V0/ple_RAMS_var similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_var rename to run/V0/PHI1.1-RC-V0/ple_RAMS_var diff --git a/run/PHI1.1-RC/ple_RAMS_var_test b/run/V0/PHI1.1-RC-V0/ple_RAMS_var_test similarity index 100% rename from run/PHI1.1-RC/ple_RAMS_var_test rename to run/V0/PHI1.1-RC-V0/ple_RAMS_var_test diff --git a/run/PHI1.1-RC/rams-6.3.02 b/run/V0/PHI1.1-RC-V0/rams-6.3.02 similarity index 100% rename from run/PHI1.1-RC/rams-6.3.02 rename to run/V0/PHI1.1-RC-V0/rams-6.3.02 diff --git a/run/PHI2.1-R/RAMSIN.HIS b/run/V0/PHI2.1-R-V0/RAMSIN.HIS similarity index 100% rename from run/PHI2.1-R/RAMSIN.HIS rename to run/V0/PHI2.1-R-V0/RAMSIN.HIS diff --git a/run/PHI2.1-R/RAMSIN.HIS.G3.MICRO b/run/V0/PHI2.1-R-V0/RAMSIN.HIS.G3.MICRO similarity index 100% rename from run/PHI2.1-R/RAMSIN.HIS.G3.MICRO rename to run/V0/PHI2.1-R-V0/RAMSIN.HIS.G3.MICRO diff --git a/run/PHI2.1-R/RAMSIN.HIS1.G2 b/run/V0/PHI2.1-R-V0/RAMSIN.HIS1.G2 similarity index 100% rename from run/PHI2.1-R/RAMSIN.HIS1.G2 rename to run/V0/PHI2.1-R-V0/RAMSIN.HIS1.G2 diff --git a/run/PHI2.1-R/RAMSIN.HIS1.G3 b/run/V0/PHI2.1-R-V0/RAMSIN.HIS1.G3 similarity index 100% rename from run/PHI2.1-R/RAMSIN.HIS1.G3 rename to run/V0/PHI2.1-R-V0/RAMSIN.HIS1.G3 diff --git a/run/PHI2.1-R/RAMSIN.HIS2.G2 b/run/V0/PHI2.1-R-V0/RAMSIN.HIS2.G2 similarity index 100% rename from run/PHI2.1-R/RAMSIN.HIS2.G2 rename to run/V0/PHI2.1-R-V0/RAMSIN.HIS2.G2 diff --git a/run/PHI2.1-R/RAMSIN.HIS2.G3 b/run/V0/PHI2.1-R-V0/RAMSIN.HIS2.G3 similarity index 100% rename from run/PHI2.1-R/RAMSIN.HIS2.G3 rename to run/V0/PHI2.1-R-V0/RAMSIN.HIS2.G3 diff --git a/run/PHI2.1-R/RAMSIN.HIS3.G3 b/run/V0/PHI2.1-R-V0/RAMSIN.HIS3.G3 similarity index 100% rename from run/PHI2.1-R/RAMSIN.HIS3.G3 rename to run/V0/PHI2.1-R-V0/RAMSIN.HIS3.G3 diff --git a/run/PHI2.1-R/RAMSIN.HIS4.G3 b/run/V0/PHI2.1-R-V0/RAMSIN.HIS4.G3 similarity index 100% rename from run/PHI2.1-R/RAMSIN.HIS4.G3 rename to run/V0/PHI2.1-R-V0/RAMSIN.HIS4.G3 diff --git a/run/PHI2.1-R/RAMSIN.HIS5.G3 b/run/V0/PHI2.1-R-V0/RAMSIN.HIS5.G3 similarity index 100% rename from run/PHI2.1-R/RAMSIN.HIS5.G3 rename to run/V0/PHI2.1-R-V0/RAMSIN.HIS5.G3 diff --git a/run/PHI2.1-R/RAMSIN.HIS6.G3 b/run/V0/PHI2.1-R-V0/RAMSIN.HIS6.G3 similarity index 100% rename from run/PHI2.1-R/RAMSIN.HIS6.G3 rename to run/V0/PHI2.1-R-V0/RAMSIN.HIS6.G3 diff --git a/run/PHI2.1-R/RAMSIN.HIS7.G3 b/run/V0/PHI2.1-R-V0/RAMSIN.HIS7.G3 similarity index 100% rename from run/PHI2.1-R/RAMSIN.HIS7.G3 rename to run/V0/PHI2.1-R-V0/RAMSIN.HIS7.G3 diff --git a/run/PHI2.1-R/RAMSIN.INI b/run/V0/PHI2.1-R-V0/RAMSIN.INI similarity index 100% rename from run/PHI2.1-R/RAMSIN.INI rename to run/V0/PHI2.1-R-V0/RAMSIN.INI diff --git a/run/PHI2.1-R/RAMSIN.INI.G2 b/run/V0/PHI2.1-R-V0/RAMSIN.INI.G2 similarity index 100% rename from run/PHI2.1-R/RAMSIN.INI.G2 rename to run/V0/PHI2.1-R-V0/RAMSIN.INI.G2 diff --git a/run/PHI2.1-R/RAMSIN.INI.G3 b/run/V0/PHI2.1-R-V0/RAMSIN.INI.G3 similarity index 100% rename from run/PHI2.1-R/RAMSIN.INI.G3 rename to run/V0/PHI2.1-R-V0/RAMSIN.INI.G3 diff --git a/run/PHI2.1-R/RAMSIN.SFC b/run/V0/PHI2.1-R-V0/RAMSIN.SFC similarity index 100% rename from run/PHI2.1-R/RAMSIN.SFC rename to run/V0/PHI2.1-R-V0/RAMSIN.SFC diff --git a/run/PHI2.1-R/RAMSIN.SFC.G2 b/run/V0/PHI2.1-R-V0/RAMSIN.SFC.G2 similarity index 100% rename from run/PHI2.1-R/RAMSIN.SFC.G2 rename to run/V0/PHI2.1-R-V0/RAMSIN.SFC.G2 diff --git a/run/PHI2.1-R/RAMSIN.SFC.G3 b/run/V0/PHI2.1-R-V0/RAMSIN.SFC.G3 similarity index 100% rename from run/PHI2.1-R/RAMSIN.SFC.G3 rename to run/V0/PHI2.1-R-V0/RAMSIN.SFC.G3 diff --git a/run/PHI2.1-R/RAMSIN.VAR b/run/V0/PHI2.1-R-V0/RAMSIN.VAR similarity index 100% rename from run/PHI2.1-R/RAMSIN.VAR rename to run/V0/PHI2.1-R-V0/RAMSIN.VAR diff --git a/run/PHI2.1-R/ple_RAMS.INCUS b/run/V0/PHI2.1-R-V0/ple_RAMS.INCUS similarity index 100% rename from run/PHI2.1-R/ple_RAMS.INCUS rename to run/V0/PHI2.1-R-V0/ple_RAMS.INCUS diff --git a/run/PHI2.1-R/ple_RAMS_his b/run/V0/PHI2.1-R-V0/ple_RAMS_his similarity index 100% rename from run/PHI2.1-R/ple_RAMS_his rename to run/V0/PHI2.1-R-V0/ple_RAMS_his diff --git a/run/PHI2.1-R/ple_RAMS_his.micro b/run/V0/PHI2.1-R-V0/ple_RAMS_his.micro similarity index 100% rename from run/PHI2.1-R/ple_RAMS_his.micro rename to run/V0/PHI2.1-R-V0/ple_RAMS_his.micro diff --git a/run/PHI2.1-R/ple_RAMS_his1.G2 b/run/V0/PHI2.1-R-V0/ple_RAMS_his1.G2 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_his1.G2 rename to run/V0/PHI2.1-R-V0/ple_RAMS_his1.G2 diff --git a/run/PHI2.1-R/ple_RAMS_his1.G3 b/run/V0/PHI2.1-R-V0/ple_RAMS_his1.G3 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_his1.G3 rename to run/V0/PHI2.1-R-V0/ple_RAMS_his1.G3 diff --git a/run/PHI2.1-R/ple_RAMS_his2.G2 b/run/V0/PHI2.1-R-V0/ple_RAMS_his2.G2 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_his2.G2 rename to run/V0/PHI2.1-R-V0/ple_RAMS_his2.G2 diff --git a/run/PHI2.1-R/ple_RAMS_his2.G3 b/run/V0/PHI2.1-R-V0/ple_RAMS_his2.G3 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_his2.G3 rename to run/V0/PHI2.1-R-V0/ple_RAMS_his2.G3 diff --git a/run/PHI2.1-R/ple_RAMS_his3.G3 b/run/V0/PHI2.1-R-V0/ple_RAMS_his3.G3 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_his3.G3 rename to run/V0/PHI2.1-R-V0/ple_RAMS_his3.G3 diff --git a/run/PHI2.1-R/ple_RAMS_his4.G3 b/run/V0/PHI2.1-R-V0/ple_RAMS_his4.G3 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_his4.G3 rename to run/V0/PHI2.1-R-V0/ple_RAMS_his4.G3 diff --git a/run/PHI2.1-R/ple_RAMS_his5.G3 b/run/V0/PHI2.1-R-V0/ple_RAMS_his5.G3 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_his5.G3 rename to run/V0/PHI2.1-R-V0/ple_RAMS_his5.G3 diff --git a/run/PHI2.1-R/ple_RAMS_his6.G3 b/run/V0/PHI2.1-R-V0/ple_RAMS_his6.G3 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_his6.G3 rename to run/V0/PHI2.1-R-V0/ple_RAMS_his6.G3 diff --git a/run/PHI2.1-R/ple_RAMS_his7.G3 b/run/V0/PHI2.1-R-V0/ple_RAMS_his7.G3 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_his7.G3 rename to run/V0/PHI2.1-R-V0/ple_RAMS_his7.G3 diff --git a/run/PHI2.1-R/ple_RAMS_ini b/run/V0/PHI2.1-R-V0/ple_RAMS_ini similarity index 100% rename from run/PHI2.1-R/ple_RAMS_ini rename to run/V0/PHI2.1-R-V0/ple_RAMS_ini diff --git a/run/PHI2.1-R/ple_RAMS_ini.G2 b/run/V0/PHI2.1-R-V0/ple_RAMS_ini.G2 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_ini.G2 rename to run/V0/PHI2.1-R-V0/ple_RAMS_ini.G2 diff --git a/run/PHI2.1-R/ple_RAMS_ini.G3 b/run/V0/PHI2.1-R-V0/ple_RAMS_ini.G3 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_ini.G3 rename to run/V0/PHI2.1-R-V0/ple_RAMS_ini.G3 diff --git a/run/PHI2.1-R/ple_RAMS_ini.G3_test b/run/V0/PHI2.1-R-V0/ple_RAMS_ini.G3_test similarity index 100% rename from run/PHI2.1-R/ple_RAMS_ini.G3_test rename to run/V0/PHI2.1-R-V0/ple_RAMS_ini.G3_test diff --git a/run/PHI2.1-R/ple_RAMS_ini.G3_test2 b/run/V0/PHI2.1-R-V0/ple_RAMS_ini.G3_test2 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_ini.G3_test2 rename to run/V0/PHI2.1-R-V0/ple_RAMS_ini.G3_test2 diff --git a/run/PHI2.1-R/ple_RAMS_sfc b/run/V0/PHI2.1-R-V0/ple_RAMS_sfc similarity index 100% rename from run/PHI2.1-R/ple_RAMS_sfc rename to run/V0/PHI2.1-R-V0/ple_RAMS_sfc diff --git a/run/PHI2.1-R/ple_RAMS_sfc.G2 b/run/V0/PHI2.1-R-V0/ple_RAMS_sfc.G2 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_sfc.G2 rename to run/V0/PHI2.1-R-V0/ple_RAMS_sfc.G2 diff --git a/run/PHI2.1-R/ple_RAMS_sfc.G3 b/run/V0/PHI2.1-R-V0/ple_RAMS_sfc.G3 similarity index 100% rename from run/PHI2.1-R/ple_RAMS_sfc.G3 rename to run/V0/PHI2.1-R-V0/ple_RAMS_sfc.G3 diff --git a/run/PHI2.1-R/ple_RAMS_var b/run/V0/PHI2.1-R-V0/ple_RAMS_var similarity index 100% rename from run/PHI2.1-R/ple_RAMS_var rename to run/V0/PHI2.1-R-V0/ple_RAMS_var diff --git a/run/PHI2.1-R/rams-6.3.02 b/run/V0/PHI2.1-R-V0/rams-6.3.02 similarity index 100% rename from run/PHI2.1-R/rams-6.3.02 rename to run/V0/PHI2.1-R-V0/rams-6.3.02 diff --git a/run/PHI2.1-R/rams-6.3.02_v23020422 b/run/V0/PHI2.1-R-V0/rams-6.3.02_v23020422 similarity index 100% rename from run/PHI2.1-R/rams-6.3.02_v23020422 rename to run/V0/PHI2.1-R-V0/rams-6.3.02_v23020422 diff --git a/run/USA1.1-R/G1_00Z/RAMSIN_G1_HIS1 b/run/V0/USA1.1-R-V0/G1_00Z/RAMSIN_G1_HIS1 similarity index 100% rename from run/USA1.1-R/G1_00Z/RAMSIN_G1_HIS1 rename to run/V0/USA1.1-R-V0/G1_00Z/RAMSIN_G1_HIS1 diff --git a/run/USA1.1-R/G1_00Z/RAMSIN_G1_INI b/run/V0/USA1.1-R-V0/G1_00Z/RAMSIN_G1_INI similarity index 100% rename from run/USA1.1-R/G1_00Z/RAMSIN_G1_INI rename to run/V0/USA1.1-R-V0/G1_00Z/RAMSIN_G1_INI diff --git a/run/USA1.1-R/G1_00Z/RAMSIN_G1_SFC b/run/V0/USA1.1-R-V0/G1_00Z/RAMSIN_G1_SFC similarity index 100% rename from run/USA1.1-R/G1_00Z/RAMSIN_G1_SFC rename to run/V0/USA1.1-R-V0/G1_00Z/RAMSIN_G1_SFC diff --git a/run/USA1.1-R/G1_00Z/RAMSIN_G1_VAR b/run/V0/USA1.1-R-V0/G1_00Z/RAMSIN_G1_VAR similarity index 100% rename from run/USA1.1-R/G1_00Z/RAMSIN_G1_VAR rename to run/V0/USA1.1-R-V0/G1_00Z/RAMSIN_G1_VAR diff --git a/run/USA1.1-R/RAMSIN.INCUS b/run/V0/USA1.1-R-V0/RAMSIN.INCUS similarity index 100% rename from run/USA1.1-R/RAMSIN.INCUS rename to run/V0/USA1.1-R-V0/RAMSIN.INCUS diff --git a/run/USA1.1-R/RAMSIN_G1_18Z b/run/V0/USA1.1-R-V0/RAMSIN_G1_18Z similarity index 100% rename from run/USA1.1-R/RAMSIN_G1_18Z rename to run/V0/USA1.1-R-V0/RAMSIN_G1_18Z diff --git a/run/USA1.1-R/RAMSIN_G1_INI b/run/V0/USA1.1-R-V0/RAMSIN_G1_INI similarity index 100% rename from run/USA1.1-R/RAMSIN_G1_INI rename to run/V0/USA1.1-R-V0/RAMSIN_G1_INI diff --git a/run/USA1.1-R/RAMSIN_G1_SFC b/run/V0/USA1.1-R-V0/RAMSIN_G1_SFC similarity index 100% rename from run/USA1.1-R/RAMSIN_G1_SFC rename to run/V0/USA1.1-R-V0/RAMSIN_G1_SFC diff --git a/run/USA1.1-R/RAMSIN_G1_VAR b/run/V0/USA1.1-R-V0/RAMSIN_G1_VAR similarity index 100% rename from run/USA1.1-R/RAMSIN_G1_VAR rename to run/V0/USA1.1-R-V0/RAMSIN_G1_VAR diff --git a/run/USA1.1-R/RAMSIN_G2_HIS1 b/run/V0/USA1.1-R-V0/RAMSIN_G2_HIS1 similarity index 100% rename from run/USA1.1-R/RAMSIN_G2_HIS1 rename to run/V0/USA1.1-R-V0/RAMSIN_G2_HIS1 diff --git a/run/USA1.1-R/RAMSIN_G2_HIS2 b/run/V0/USA1.1-R-V0/RAMSIN_G2_HIS2 similarity index 100% rename from run/USA1.1-R/RAMSIN_G2_HIS2 rename to run/V0/USA1.1-R-V0/RAMSIN_G2_HIS2 diff --git a/run/USA1.1-R/RAMSIN_G2_HIS3 b/run/V0/USA1.1-R-V0/RAMSIN_G2_HIS3 similarity index 100% rename from run/USA1.1-R/RAMSIN_G2_HIS3 rename to run/V0/USA1.1-R-V0/RAMSIN_G2_HIS3 diff --git a/run/USA1.1-R/RAMSIN_G2_INI b/run/V0/USA1.1-R-V0/RAMSIN_G2_INI similarity index 100% rename from run/USA1.1-R/RAMSIN_G2_INI rename to run/V0/USA1.1-R-V0/RAMSIN_G2_INI diff --git a/run/USA1.1-R/RAMSIN_G2_SFC b/run/V0/USA1.1-R-V0/RAMSIN_G2_SFC similarity index 100% rename from run/USA1.1-R/RAMSIN_G2_SFC rename to run/V0/USA1.1-R-V0/RAMSIN_G2_SFC diff --git a/run/USA1.1-R/RAMSIN_G3_HIS1 b/run/V0/USA1.1-R-V0/RAMSIN_G3_HIS1 similarity index 100% rename from run/USA1.1-R/RAMSIN_G3_HIS1 rename to run/V0/USA1.1-R-V0/RAMSIN_G3_HIS1 diff --git a/run/USA1.1-R/RAMSIN_G3_HIS2 b/run/V0/USA1.1-R-V0/RAMSIN_G3_HIS2 similarity index 100% rename from run/USA1.1-R/RAMSIN_G3_HIS2 rename to run/V0/USA1.1-R-V0/RAMSIN_G3_HIS2 diff --git a/run/USA1.1-R/RAMSIN_G3_HIS3 b/run/V0/USA1.1-R-V0/RAMSIN_G3_HIS3 similarity index 100% rename from run/USA1.1-R/RAMSIN_G3_HIS3 rename to run/V0/USA1.1-R-V0/RAMSIN_G3_HIS3 diff --git a/run/USA1.1-R/RAMSIN_G3_HIS4 b/run/V0/USA1.1-R-V0/RAMSIN_G3_HIS4 similarity index 100% rename from run/USA1.1-R/RAMSIN_G3_HIS4 rename to run/V0/USA1.1-R-V0/RAMSIN_G3_HIS4 diff --git a/run/USA1.1-R/RAMSIN_G3_HIS5 b/run/V0/USA1.1-R-V0/RAMSIN_G3_HIS5 similarity index 100% rename from run/USA1.1-R/RAMSIN_G3_HIS5 rename to run/V0/USA1.1-R-V0/RAMSIN_G3_HIS5 diff --git a/run/USA1.1-R/RAMSIN_G3_HIS6 b/run/V0/USA1.1-R-V0/RAMSIN_G3_HIS6 similarity index 100% rename from run/USA1.1-R/RAMSIN_G3_HIS6 rename to run/V0/USA1.1-R-V0/RAMSIN_G3_HIS6 diff --git a/run/USA1.1-R/RAMSIN_G3_HIS7 b/run/V0/USA1.1-R-V0/RAMSIN_G3_HIS7 similarity index 100% rename from run/USA1.1-R/RAMSIN_G3_HIS7 rename to run/V0/USA1.1-R-V0/RAMSIN_G3_HIS7 diff --git a/run/USA1.1-R/RAMSIN_G3_INI b/run/V0/USA1.1-R-V0/RAMSIN_G3_INI similarity index 100% rename from run/USA1.1-R/RAMSIN_G3_INI rename to run/V0/USA1.1-R-V0/RAMSIN_G3_INI diff --git a/run/USA1.1-R/RAMSIN_G3_SFC b/run/V0/USA1.1-R-V0/RAMSIN_G3_SFC similarity index 100% rename from run/USA1.1-R/RAMSIN_G3_SFC rename to run/V0/USA1.1-R-V0/RAMSIN_G3_SFC diff --git a/run/USA1.1-R/include.mk.incus.ple b/run/V0/USA1.1-R-V0/include.mk.incus.ple similarity index 100% rename from run/USA1.1-R/include.mk.incus.ple rename to run/V0/USA1.1-R-V0/include.mk.incus.ple diff --git a/run/USA1.1-R/ple_RAMS.INCUS b/run/V0/USA1.1-R-V0/ple_RAMS.INCUS similarity index 100% rename from run/USA1.1-R/ple_RAMS.INCUS rename to run/V0/USA1.1-R-V0/ple_RAMS.INCUS diff --git a/run/USA1.1-R/ple_RAMS.INCUS.ldan b/run/V0/USA1.1-R-V0/ple_RAMS.INCUS.ldan similarity index 100% rename from run/USA1.1-R/ple_RAMS.INCUS.ldan rename to run/V0/USA1.1-R-V0/ple_RAMS.INCUS.ldan diff --git a/run/USA1.1-R/ple_RAMS_G1_his1 b/run/V0/USA1.1-R-V0/ple_RAMS_G1_his1 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G1_his1 rename to run/V0/USA1.1-R-V0/ple_RAMS_G1_his1 diff --git a/run/USA1.1-R/ple_RAMS_G1_ini b/run/V0/USA1.1-R-V0/ple_RAMS_G1_ini similarity index 100% rename from run/USA1.1-R/ple_RAMS_G1_ini rename to run/V0/USA1.1-R-V0/ple_RAMS_G1_ini diff --git a/run/USA1.1-R/ple_RAMS_G1_ini_18Z b/run/V0/USA1.1-R-V0/ple_RAMS_G1_ini_18Z similarity index 100% rename from run/USA1.1-R/ple_RAMS_G1_ini_18Z rename to run/V0/USA1.1-R-V0/ple_RAMS_G1_ini_18Z diff --git a/run/USA1.1-R/ple_RAMS_G1_sfc b/run/V0/USA1.1-R-V0/ple_RAMS_G1_sfc similarity index 100% rename from run/USA1.1-R/ple_RAMS_G1_sfc rename to run/V0/USA1.1-R-V0/ple_RAMS_G1_sfc diff --git a/run/USA1.1-R/ple_RAMS_G1_var b/run/V0/USA1.1-R-V0/ple_RAMS_G1_var similarity index 100% rename from run/USA1.1-R/ple_RAMS_G1_var rename to run/V0/USA1.1-R-V0/ple_RAMS_G1_var diff --git a/run/USA1.1-R/ple_RAMS_G2_his1 b/run/V0/USA1.1-R-V0/ple_RAMS_G2_his1 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G2_his1 rename to run/V0/USA1.1-R-V0/ple_RAMS_G2_his1 diff --git a/run/USA1.1-R/ple_RAMS_G2_his2 b/run/V0/USA1.1-R-V0/ple_RAMS_G2_his2 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G2_his2 rename to run/V0/USA1.1-R-V0/ple_RAMS_G2_his2 diff --git a/run/USA1.1-R/ple_RAMS_G2_his3 b/run/V0/USA1.1-R-V0/ple_RAMS_G2_his3 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G2_his3 rename to run/V0/USA1.1-R-V0/ple_RAMS_G2_his3 diff --git a/run/USA1.1-R/ple_RAMS_G2_his4 b/run/V0/USA1.1-R-V0/ple_RAMS_G2_his4 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G2_his4 rename to run/V0/USA1.1-R-V0/ple_RAMS_G2_his4 diff --git a/run/USA1.1-R/ple_RAMS_G2_ini b/run/V0/USA1.1-R-V0/ple_RAMS_G2_ini similarity index 100% rename from run/USA1.1-R/ple_RAMS_G2_ini rename to run/V0/USA1.1-R-V0/ple_RAMS_G2_ini diff --git a/run/USA1.1-R/ple_RAMS_G2_sfc b/run/V0/USA1.1-R-V0/ple_RAMS_G2_sfc similarity index 100% rename from run/USA1.1-R/ple_RAMS_G2_sfc rename to run/V0/USA1.1-R-V0/ple_RAMS_G2_sfc diff --git a/run/USA1.1-R/ple_RAMS_G3_his1 b/run/V0/USA1.1-R-V0/ple_RAMS_G3_his1 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G3_his1 rename to run/V0/USA1.1-R-V0/ple_RAMS_G3_his1 diff --git a/run/USA1.1-R/ple_RAMS_G3_his2 b/run/V0/USA1.1-R-V0/ple_RAMS_G3_his2 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G3_his2 rename to run/V0/USA1.1-R-V0/ple_RAMS_G3_his2 diff --git a/run/USA1.1-R/ple_RAMS_G3_his3 b/run/V0/USA1.1-R-V0/ple_RAMS_G3_his3 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G3_his3 rename to run/V0/USA1.1-R-V0/ple_RAMS_G3_his3 diff --git a/run/USA1.1-R/ple_RAMS_G3_his4 b/run/V0/USA1.1-R-V0/ple_RAMS_G3_his4 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G3_his4 rename to run/V0/USA1.1-R-V0/ple_RAMS_G3_his4 diff --git a/run/USA1.1-R/ple_RAMS_G3_his5 b/run/V0/USA1.1-R-V0/ple_RAMS_G3_his5 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G3_his5 rename to run/V0/USA1.1-R-V0/ple_RAMS_G3_his5 diff --git a/run/USA1.1-R/ple_RAMS_G3_his6 b/run/V0/USA1.1-R-V0/ple_RAMS_G3_his6 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G3_his6 rename to run/V0/USA1.1-R-V0/ple_RAMS_G3_his6 diff --git a/run/USA1.1-R/ple_RAMS_G3_his7 b/run/V0/USA1.1-R-V0/ple_RAMS_G3_his7 similarity index 100% rename from run/USA1.1-R/ple_RAMS_G3_his7 rename to run/V0/USA1.1-R-V0/ple_RAMS_G3_his7 diff --git a/run/USA1.1-R/ple_RAMS_G3_sfc b/run/V0/USA1.1-R-V0/ple_RAMS_G3_sfc similarity index 100% rename from run/USA1.1-R/ple_RAMS_G3_sfc rename to run/V0/USA1.1-R-V0/ple_RAMS_G3_sfc diff --git a/run/USA1.1-R/rams-6.3.02 b/run/V0/USA1.1-R-V0/rams-6.3.02 similarity index 100% rename from run/USA1.1-R/rams-6.3.02 rename to run/V0/USA1.1-R-V0/rams-6.3.02 diff --git a/run/WPO1.1-R/RAMSIN.INCUS b/run/V0/WPO1.1-R-V0/RAMSIN.INCUS similarity index 100% rename from run/WPO1.1-R/RAMSIN.INCUS rename to run/V0/WPO1.1-R-V0/RAMSIN.INCUS diff --git a/run/WPO1.1-R/RAMSIN_G1_INI b/run/V0/WPO1.1-R-V0/RAMSIN_G1_INI similarity index 100% rename from run/WPO1.1-R/RAMSIN_G1_INI rename to run/V0/WPO1.1-R-V0/RAMSIN_G1_INI diff --git a/run/WPO1.1-R/RAMSIN_G1_SFC b/run/V0/WPO1.1-R-V0/RAMSIN_G1_SFC similarity index 100% rename from run/WPO1.1-R/RAMSIN_G1_SFC rename to run/V0/WPO1.1-R-V0/RAMSIN_G1_SFC diff --git a/run/WPO1.1-R/RAMSIN_G1_VAR b/run/V0/WPO1.1-R-V0/RAMSIN_G1_VAR similarity index 100% rename from run/WPO1.1-R/RAMSIN_G1_VAR rename to run/V0/WPO1.1-R-V0/RAMSIN_G1_VAR diff --git a/run/WPO1.1-R/RAMSIN_G2_HIS1 b/run/V0/WPO1.1-R-V0/RAMSIN_G2_HIS1 similarity index 100% rename from run/WPO1.1-R/RAMSIN_G2_HIS1 rename to run/V0/WPO1.1-R-V0/RAMSIN_G2_HIS1 diff --git a/run/WPO1.1-R/RAMSIN_G2_INI b/run/V0/WPO1.1-R-V0/RAMSIN_G2_INI similarity index 100% rename from run/WPO1.1-R/RAMSIN_G2_INI rename to run/V0/WPO1.1-R-V0/RAMSIN_G2_INI diff --git a/run/WPO1.1-R/RAMSIN_G2_SFC b/run/V0/WPO1.1-R-V0/RAMSIN_G2_SFC similarity index 100% rename from run/WPO1.1-R/RAMSIN_G2_SFC rename to run/V0/WPO1.1-R-V0/RAMSIN_G2_SFC diff --git a/run/WPO1.1-R/RAMSIN_G3_HIS1 b/run/V0/WPO1.1-R-V0/RAMSIN_G3_HIS1 similarity index 100% rename from run/WPO1.1-R/RAMSIN_G3_HIS1 rename to run/V0/WPO1.1-R-V0/RAMSIN_G3_HIS1 diff --git a/run/WPO1.1-R/RAMSIN_G3_HIS2 b/run/V0/WPO1.1-R-V0/RAMSIN_G3_HIS2 similarity index 100% rename from run/WPO1.1-R/RAMSIN_G3_HIS2 rename to run/V0/WPO1.1-R-V0/RAMSIN_G3_HIS2 diff --git a/run/WPO1.1-R/RAMSIN_G3_HIS3 b/run/V0/WPO1.1-R-V0/RAMSIN_G3_HIS3 similarity index 100% rename from run/WPO1.1-R/RAMSIN_G3_HIS3 rename to run/V0/WPO1.1-R-V0/RAMSIN_G3_HIS3 diff --git a/run/WPO1.1-R/RAMSIN_G3_HIS4 b/run/V0/WPO1.1-R-V0/RAMSIN_G3_HIS4 similarity index 100% rename from run/WPO1.1-R/RAMSIN_G3_HIS4 rename to run/V0/WPO1.1-R-V0/RAMSIN_G3_HIS4 diff --git a/run/WPO1.1-R/RAMSIN_G3_INI b/run/V0/WPO1.1-R-V0/RAMSIN_G3_INI similarity index 100% rename from run/WPO1.1-R/RAMSIN_G3_INI rename to run/V0/WPO1.1-R-V0/RAMSIN_G3_INI diff --git a/run/WPO1.1-R/RAMSIN_G3_SFC b/run/V0/WPO1.1-R-V0/RAMSIN_G3_SFC similarity index 100% rename from run/WPO1.1-R/RAMSIN_G3_SFC rename to run/V0/WPO1.1-R-V0/RAMSIN_G3_SFC diff --git a/run/WPO1.1-R/include.mk.incus.ple b/run/V0/WPO1.1-R-V0/include.mk.incus.ple similarity index 100% rename from run/WPO1.1-R/include.mk.incus.ple rename to run/V0/WPO1.1-R-V0/include.mk.incus.ple diff --git a/run/WPO1.1-R/ple_RAMS.INCUS b/run/V0/WPO1.1-R-V0/ple_RAMS.INCUS similarity index 100% rename from run/WPO1.1-R/ple_RAMS.INCUS rename to run/V0/WPO1.1-R-V0/ple_RAMS.INCUS diff --git a/run/WPO1.1-R/ple_RAMS.INCUS.ldan b/run/V0/WPO1.1-R-V0/ple_RAMS.INCUS.ldan similarity index 100% rename from run/WPO1.1-R/ple_RAMS.INCUS.ldan rename to run/V0/WPO1.1-R-V0/ple_RAMS.INCUS.ldan diff --git a/run/WPO1.1-R/ple_RAMS_G1_his1 b/run/V0/WPO1.1-R-V0/ple_RAMS_G1_his1 similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G1_his1 rename to run/V0/WPO1.1-R-V0/ple_RAMS_G1_his1 diff --git a/run/WPO1.1-R/ple_RAMS_G1_ini b/run/V0/WPO1.1-R-V0/ple_RAMS_G1_ini similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G1_ini rename to run/V0/WPO1.1-R-V0/ple_RAMS_G1_ini diff --git a/run/WPO1.1-R/ple_RAMS_G1_sfc b/run/V0/WPO1.1-R-V0/ple_RAMS_G1_sfc similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G1_sfc rename to run/V0/WPO1.1-R-V0/ple_RAMS_G1_sfc diff --git a/run/WPO1.1-R/ple_RAMS_G1_var b/run/V0/WPO1.1-R-V0/ple_RAMS_G1_var similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G1_var rename to run/V0/WPO1.1-R-V0/ple_RAMS_G1_var diff --git a/run/WPO1.1-R/ple_RAMS_G2_his1 b/run/V0/WPO1.1-R-V0/ple_RAMS_G2_his1 similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G2_his1 rename to run/V0/WPO1.1-R-V0/ple_RAMS_G2_his1 diff --git a/run/WPO1.1-R/ple_RAMS_G2_ini b/run/V0/WPO1.1-R-V0/ple_RAMS_G2_ini similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G2_ini rename to run/V0/WPO1.1-R-V0/ple_RAMS_G2_ini diff --git a/run/WPO1.1-R/ple_RAMS_G2_sfc b/run/V0/WPO1.1-R-V0/ple_RAMS_G2_sfc similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G2_sfc rename to run/V0/WPO1.1-R-V0/ple_RAMS_G2_sfc diff --git a/run/WPO1.1-R/ple_RAMS_G3_his1 b/run/V0/WPO1.1-R-V0/ple_RAMS_G3_his1 similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G3_his1 rename to run/V0/WPO1.1-R-V0/ple_RAMS_G3_his1 diff --git a/run/WPO1.1-R/ple_RAMS_G3_his2 b/run/V0/WPO1.1-R-V0/ple_RAMS_G3_his2 similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G3_his2 rename to run/V0/WPO1.1-R-V0/ple_RAMS_G3_his2 diff --git a/run/WPO1.1-R/ple_RAMS_G3_his3 b/run/V0/WPO1.1-R-V0/ple_RAMS_G3_his3 similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G3_his3 rename to run/V0/WPO1.1-R-V0/ple_RAMS_G3_his3 diff --git a/run/WPO1.1-R/ple_RAMS_G3_his4 b/run/V0/WPO1.1-R-V0/ple_RAMS_G3_his4 similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G3_his4 rename to run/V0/WPO1.1-R-V0/ple_RAMS_G3_his4 diff --git a/run/WPO1.1-R/ple_RAMS_G3_sfc b/run/V0/WPO1.1-R-V0/ple_RAMS_G3_sfc similarity index 100% rename from run/WPO1.1-R/ple_RAMS_G3_sfc rename to run/V0/WPO1.1-R-V0/ple_RAMS_G3_sfc diff --git a/run/WPO1.1-R/rams-6.3.02 b/run/V0/WPO1.1-R-V0/rams-6.3.02 similarity index 100% rename from run/WPO1.1-R/rams-6.3.02 rename to run/V0/WPO1.1-R-V0/rams-6.3.02 diff --git a/src/6.3.02/bc/cyclic_mod.f90 b/src/bc/cyclic_mod.f90 similarity index 100% rename from src/6.3.02/bc/cyclic_mod.f90 rename to src/bc/cyclic_mod.f90 diff --git a/src/6.3.02/bc/rbnd.f90 b/src/bc/rbnd.f90 similarity index 99% rename from src/6.3.02/bc/rbnd.f90 rename to src/bc/rbnd.f90 index b497e1a..e130876 100644 --- a/src/6.3.02/bc/rbnd.f90 +++ b/src/bc/rbnd.f90 @@ -488,8 +488,8 @@ Subroutine latset (m1,m2,m3,ia,iz,ja,jz,ibcon,vnam,ap,uc,vc,dxu,dxm,dyv,dym & if(iaerolbc(ngrid)==1)then if( ((sname == 'CIFNP') .and. & (jnmb(3)>=5 .and. (iifn==1.or.iifn==2))) .or. & - ((sname == 'CCCNP' .or. sname == 'CCCMP' .or. & - sname == 'GCCNP' .or. sname == 'GCCMP') .and. & + ((sname == 'CN1NP' .or. sname == 'CN1MP' .or. & + sname == 'CN2NP' .or. sname == 'CN2MP') .and. & iaerosol==1) .or. & ((sname == 'MD1NP' .or. sname == 'MD1MP' .or. & sname == 'MD2NP' .or. sname == 'MD2MP') .and. & diff --git a/src/6.3.02/bc/rbnd_nonscalar.f90 b/src/bc/rbnd_nonscalar.f90 similarity index 96% rename from src/6.3.02/bc/rbnd_nonscalar.f90 rename to src/bc/rbnd_nonscalar.f90 index 6e96737..d4951c2 100644 --- a/src/6.3.02/bc/rbnd_nonscalar.f90 +++ b/src/bc/rbnd_nonscalar.f90 @@ -309,6 +309,10 @@ Subroutine micro_bcond (m1,m2,m3,micro,ibcon) micro%nucicert(k,1,j) = 0. micro%vapliqt(k,1,j) = 0. micro%vapicet(k,1,j) = 0. + micro%evapliqt(k,1,j) = 0. + micro%evapicet(k,1,j) = 0. + micro%freezingt(k,1,j) = 0. + micro%meltingt(k,1,j) = 0. micro%melticet(k,1,j) = 0. micro%rimecldt(k,1,j) = 0. micro%rain2icet(k,1,j) = 0. @@ -329,6 +333,14 @@ Subroutine micro_bcond (m1,m2,m3,micro,ibcon) micro%vapgraut(k,1,j) = 0. micro%vaphailt(k,1,j) = 0. micro%vapdrizt(k,1,j) = 0. + micro%evapcldt(k,1,j) = 0. + micro%evapraint(k,1,j) = 0. + micro%evapprist(k,1,j) = 0. + micro%evapsnowt(k,1,j) = 0. + micro%evapaggrt(k,1,j) = 0. + micro%evapgraut(k,1,j) = 0. + micro%evaphailt(k,1,j) = 0. + micro%evapdrizt(k,1,j) = 0. micro%meltprist(k,1,j) = 0. micro%meltsnowt(k,1,j) = 0. micro%meltaggrt(k,1,j) = 0. @@ -397,6 +409,10 @@ Subroutine micro_bcond (m1,m2,m3,micro,ibcon) micro%nucicert(k,m2,j) = 0. micro%vapliqt(k,m2,j) = 0. micro%vapicet(k,m2,j) = 0. + micro%evapliqt(k,m2,j) = 0. + micro%evapicet(k,m2,j) = 0. + micro%freezingt(k,m2,j) = 0. + micro%meltingt(k,m2,j) = 0. micro%melticet(k,m2,j) = 0. micro%rimecldt(k,m2,j) = 0. micro%rain2icet(k,m2,j) = 0. @@ -417,6 +433,14 @@ Subroutine micro_bcond (m1,m2,m3,micro,ibcon) micro%vapgraut(k,m2,j) = 0. micro%vaphailt(k,m2,j) = 0. micro%vapdrizt(k,m2,j) = 0. + micro%evapcldt(k,m2,j) = 0. + micro%evapraint(k,m2,j) = 0. + micro%evapprist(k,m2,j) = 0. + micro%evapsnowt(k,m2,j) = 0. + micro%evapaggrt(k,m2,j) = 0. + micro%evapgraut(k,m2,j) = 0. + micro%evaphailt(k,m2,j) = 0. + micro%evapdrizt(k,m2,j) = 0. micro%meltprist(k,m2,j) = 0. micro%meltsnowt(k,m2,j) = 0. micro%meltaggrt(k,m2,j) = 0. @@ -485,6 +509,10 @@ Subroutine micro_bcond (m1,m2,m3,micro,ibcon) micro%nucicert(k,i,1) = 0. micro%vapliqt(k,i,1) = 0. micro%vapicet(k,i,1) = 0. + micro%evapliqt(k,i,1) = 0. + micro%evapicet(k,i,1) = 0. + micro%freezingt(k,i,1) = 0. + micro%meltingt(k,i,1) = 0. micro%melticet(k,i,1) = 0. micro%rimecldt(k,i,1) = 0. micro%rain2icet(k,i,1) = 0. @@ -505,6 +533,14 @@ Subroutine micro_bcond (m1,m2,m3,micro,ibcon) micro%vapgraut(k,i,1) = 0. micro%vaphailt(k,i,1) = 0. micro%vapdrizt(k,i,1) = 0. + micro%evapcldt(k,i,1) = 0. + micro%evapraint(k,i,1) = 0. + micro%evapprist(k,i,1) = 0. + micro%evapsnowt(k,i,1) = 0. + micro%evapaggrt(k,i,1) = 0. + micro%evapgraut(k,i,1) = 0. + micro%evaphailt(k,i,1) = 0. + micro%evapdrizt(k,i,1) = 0. micro%meltprist(k,i,1) = 0. micro%meltsnowt(k,i,1) = 0. micro%meltaggrt(k,i,1) = 0. @@ -573,6 +609,10 @@ Subroutine micro_bcond (m1,m2,m3,micro,ibcon) micro%nucicert(k,i,m3) = 0. micro%vapliqt(k,i,m3) = 0. micro%vapicet(k,i,m3) = 0. + micro%evapliqt(k,i,m3) = 0. + micro%evapicet(k,i,m3) = 0. + micro%freezingt(k,i,m3) = 0. + micro%meltingt(k,i,m3) = 0. micro%melticet(k,i,m3) = 0. micro%rimecldt(k,i,m3) = 0. micro%rain2icet(k,i,m3) = 0. @@ -593,6 +633,14 @@ Subroutine micro_bcond (m1,m2,m3,micro,ibcon) micro%vapgraut(k,i,m3) = 0. micro%vaphailt(k,i,m3) = 0. micro%vapdrizt(k,i,m3) = 0. + micro%evapcldt(k,i,m3) = 0. + micro%evapraint(k,i,m3) = 0. + micro%evapprist(k,i,m3) = 0. + micro%evapsnowt(k,i,m3) = 0. + micro%evapaggrt(k,i,m3) = 0. + micro%evapgraut(k,i,m3) = 0. + micro%evaphailt(k,i,m3) = 0. + micro%evapdrizt(k,i,m3) = 0. micro%meltprist(k,i,m3) = 0. micro%meltsnowt(k,i,m3) = 0. micro%meltaggrt(k,i,m3) = 0. diff --git a/src/6.3.02/bc/rbnd_trsetsns.f90 b/src/bc/rbnd_trsetsns.f90 similarity index 100% rename from src/6.3.02/bc/rbnd_trsetsns.f90 rename to src/bc/rbnd_trsetsns.f90 diff --git a/src/6.3.02/block/hdf5_f2c.c b/src/block/hdf5_f2c.c similarity index 100% rename from src/6.3.02/block/hdf5_f2c.c rename to src/block/hdf5_f2c.c diff --git a/src/6.3.02/block/hdf5_utils.f90 b/src/block/hdf5_utils.f90 similarity index 100% rename from src/6.3.02/block/hdf5_utils.f90 rename to src/block/hdf5_utils.f90 diff --git a/src/6.3.02/block/mk_main.f90 b/src/block/mk_main.f90 similarity index 100% rename from src/6.3.02/block/mk_main.f90 rename to src/block/mk_main.f90 diff --git a/src/6.3.02/core/coriolis.f90 b/src/core/coriolis.f90 similarity index 100% rename from src/6.3.02/core/coriolis.f90 rename to src/core/coriolis.f90 diff --git a/src/6.3.02/core/modsched.f90 b/src/core/modsched.f90 similarity index 100% rename from src/6.3.02/core/modsched.f90 rename to src/core/modsched.f90 diff --git a/src/6.3.02/core/newbase.f90 b/src/core/newbase.f90 similarity index 100% rename from src/6.3.02/core/newbase.f90 rename to src/core/newbase.f90 diff --git a/src/6.3.02/core/raco.f90 b/src/core/raco.f90 similarity index 100% rename from src/6.3.02/core/raco.f90 rename to src/core/raco.f90 diff --git a/src/6.3.02/core/radvc.f90 b/src/core/radvc.f90 similarity index 99% rename from src/6.3.02/core/radvc.f90 rename to src/core/radvc.f90 index d04ced5..c82c8d4 100644 --- a/src/6.3.02/core/radvc.f90 +++ b/src/core/radvc.f90 @@ -92,7 +92,7 @@ Subroutine advectc (varn,mzp,mxp,myp,ia,iz,ja,jz,izu,jzv) !imono=1 option should be considered experimental. !May need bug fixing (Saleeby Oct 5, 2020). !pp and pm terms might not have density multiplied correctly. - imono = 0 + imono = 1 do n=1,num_scalar(ngrid) diff --git a/src/6.3.02/core/rammain.f90 b/src/core/rammain.f90 similarity index 100% rename from src/6.3.02/core/rammain.f90 rename to src/core/rammain.f90 diff --git a/src/6.3.02/core/rams_model.f90 b/src/core/rams_model.f90 similarity index 100% rename from src/6.3.02/core/rams_model.f90 rename to src/core/rams_model.f90 diff --git a/src/6.3.02/core/ref_sounding.f90 b/src/core/ref_sounding.f90 similarity index 100% rename from src/6.3.02/core/ref_sounding.f90 rename to src/core/ref_sounding.f90 diff --git a/src/6.3.02/core/rexev.f90 b/src/core/rexev.f90 similarity index 99% rename from src/6.3.02/core/rexev.f90 rename to src/core/rexev.f90 index 9572f80..77445b8 100644 --- a/src/6.3.02/core/rexev.f90 +++ b/src/core/rexev.f90 @@ -410,7 +410,7 @@ Subroutine exthvadv (mzp,mxp,myp,ia,iz,ja,jz,izu,jzv,thvadv) enddo enddo -imono = 0 !flag for monotonic flux limiter in Z only +imono = 1 !flag for monotonic flux limiter in Z only CALL fa_xc (mzp,mxp,myp,ia,iz & ,thetav,srthtv & diff --git a/src/6.3.02/core/rthrm.f90 b/src/core/rthrm.f90 similarity index 100% rename from src/6.3.02/core/rthrm.f90 rename to src/core/rthrm.f90 diff --git a/src/6.3.02/core/rtimh.f90 b/src/core/rtimh.f90 similarity index 100% rename from src/6.3.02/core/rtimh.f90 rename to src/core/rtimh.f90 diff --git a/src/6.3.02/core/rtimi.f90 b/src/core/rtimi.f90 similarity index 100% rename from src/6.3.02/core/rtimi.f90 rename to src/core/rtimi.f90 diff --git a/src/6.3.02/cuparm/conv_coms.f90 b/src/cuparm/conv_coms.f90 similarity index 100% rename from src/6.3.02/cuparm/conv_coms.f90 rename to src/cuparm/conv_coms.f90 diff --git a/src/6.3.02/cuparm/kf_cuparm.f90 b/src/cuparm/kf_cuparm.f90 similarity index 100% rename from src/6.3.02/cuparm/kf_cuparm.f90 rename to src/cuparm/kf_cuparm.f90 diff --git a/src/6.3.02/cuparm/kf_driver.f90 b/src/cuparm/kf_driver.f90 similarity index 100% rename from src/6.3.02/cuparm/kf_driver.f90 rename to src/cuparm/kf_driver.f90 diff --git a/src/6.3.02/cuparm/kf_rconv.f90 b/src/cuparm/kf_rconv.f90 similarity index 100% rename from src/6.3.02/cuparm/kf_rconv.f90 rename to src/cuparm/kf_rconv.f90 diff --git a/src/6.3.02/cuparm/rconv.f90 b/src/cuparm/rconv.f90 similarity index 100% rename from src/6.3.02/cuparm/rconv.f90 rename to src/cuparm/rconv.f90 diff --git a/src/6.3.02/dprep/dgrib1_main.f90 b/src/dprep/dgrib1_main.f90 similarity index 98% rename from src/6.3.02/dprep/dgrib1_main.f90 rename to src/dprep/dgrib1_main.f90 index bf5e956..d4fd724 100644 --- a/src/6.3.02/dprep/dgrib1_main.f90 +++ b/src/dprep/dgrib1_main.f90 @@ -16,7 +16,7 @@ Program griber ,nlev,slev,inproj,miss,startlev,endlev & ,iyyyy,imm,idd,ihh,fyyyy,fmm,fdd,fhh,leapyear & ,nvar3d,nvar2d,nvarsd,iplevs(1000),islevs(1000),datatype & - ,writesoillevs,writesnowlevs + ,writesoillevs,writesnowlevs,mx,plev1(1000),plev2(1000) real :: alat1,alon1,alat2,alon2,alov,aorient,dx,dy,reflat1,reflat2 & ,tinc,amiss,alatscr logical :: llisglobal,matched @@ -416,6 +416,22 @@ Program griber endif print*,'Number of Pressure Levels= ',nlev +!************************************************************************** +!Make sure the pressure levels are in descending order for correct output +!if not ordered properly in grib file - plev1, plev23, and mx added to +!integer variables declarations (Stephen Noble, SRNL) +plev1=iplevs +do i=1,nlev + mx=maxval(plev1) + plev2(i)=mx + do j=1,nlev + if (plev1(j)==mx) then + plev1(j)=-999 + endif + enddo +enddo +iplevs=plev2 + !************************************************************************** !Determine the number of SOIL levels we are going to use. !Only add soil (moisture and/or temperature) if the soil moisture is there. diff --git a/src/6.3.02/dprep/dgrib2_main.f90 b/src/dprep/dgrib2_main.f90 similarity index 98% rename from src/6.3.02/dprep/dgrib2_main.f90 rename to src/dprep/dgrib2_main.f90 index e945bdd..a5f1af8 100644 --- a/src/6.3.02/dprep/dgrib2_main.f90 +++ b/src/dprep/dgrib2_main.f90 @@ -16,7 +16,7 @@ Program griber ,nlev,slev,inproj,miss,startlev,endlev & ,iyyyy,imm,idd,ihh,fyyyy,fmm,fdd,fhh,leapyear & ,nvar3d,nvar2d,nvarsd,iplevs(1000),islevs(1000),datatype & - ,writesoillevs,writesnowlevs + ,writesoillevs,writesnowlevs,mx,plev1(1000),plev2(1000) real :: alat1,alon1,alat2,alon2,alov,aorient,dx,dy,reflat1,reflat2 & ,tinc,amiss,alatscr logical :: llisglobal,matched @@ -416,6 +416,22 @@ Program griber endif print*,'Number of Pressure Levels= ',nlev +!************************************************************************** +!Make sure the pressure levels are in descending order for correct output +!if not ordered properly in grib file - plev1, plev23, and mx added to +!integer variables declarations (Stephen Noble, SRNL) +plev1=iplevs +do i=1,nlev + mx=maxval(plev1) + plev2(i)=mx + do j=1,nlev + if (plev1(j)==mx) then + plev1(j)=-999 + endif + enddo +enddo +iplevs=plev2 + !************************************************************************** !Determine the number of SOIL levels we are going to use. !Only add soil (moisture and/or temperature) if the soil moisture is there. diff --git a/src/6.3.02/fdda/nud_analysis.f90 b/src/fdda/nud_analysis.f90 similarity index 100% rename from src/6.3.02/fdda/nud_analysis.f90 rename to src/fdda/nud_analysis.f90 diff --git a/src/6.3.02/fdda/oda_krig.f90 b/src/fdda/oda_krig.f90 similarity index 100% rename from src/6.3.02/fdda/oda_krig.f90 rename to src/fdda/oda_krig.f90 diff --git a/src/6.3.02/fdda/oda_nudge.f90 b/src/fdda/oda_nudge.f90 similarity index 100% rename from src/6.3.02/fdda/oda_nudge.f90 rename to src/fdda/oda_nudge.f90 diff --git a/src/6.3.02/fdda/oda_proc_obs.f90 b/src/fdda/oda_proc_obs.f90 similarity index 100% rename from src/6.3.02/fdda/oda_proc_obs.f90 rename to src/fdda/oda_proc_obs.f90 diff --git a/src/6.3.02/fdda/oda_read.f90 b/src/fdda/oda_read.f90 similarity index 100% rename from src/6.3.02/fdda/oda_read.f90 rename to src/fdda/oda_read.f90 diff --git a/src/6.3.02/fdda/oda_sta_count.f90 b/src/fdda/oda_sta_count.f90 similarity index 100% rename from src/6.3.02/fdda/oda_sta_count.f90 rename to src/fdda/oda_sta_count.f90 diff --git a/src/6.3.02/fdda/oda_sta_input.f90 b/src/fdda/oda_sta_input.f90 similarity index 100% rename from src/6.3.02/fdda/oda_sta_input.f90 rename to src/fdda/oda_sta_input.f90 diff --git a/src/6.3.02/fdda/varf_read.f90 b/src/fdda/varf_read.f90 similarity index 100% rename from src/6.3.02/fdda/varf_read.f90 rename to src/fdda/varf_read.f90 diff --git a/src/6.3.02/fdda/varf_update.f90 b/src/fdda/varf_update.f90 similarity index 100% rename from src/6.3.02/fdda/varf_update.f90 rename to src/fdda/varf_update.f90 diff --git a/src/6.3.02/gdf/gdf_input.f90 b/src/gdf/gdf_input.f90 similarity index 100% rename from src/6.3.02/gdf/gdf_input.f90 rename to src/gdf/gdf_input.f90 diff --git a/src/6.3.02/gdf/gdf_read_sfc.f90 b/src/gdf/gdf_read_sfc.f90 similarity index 100% rename from src/6.3.02/gdf/gdf_read_sfc.f90 rename to src/gdf/gdf_read_sfc.f90 diff --git a/src/6.3.02/gdf/gdf_read_upa.f90 b/src/gdf/gdf_read_upa.f90 similarity index 100% rename from src/6.3.02/gdf/gdf_read_upa.f90 rename to src/gdf/gdf_read_upa.f90 diff --git a/src/6.3.02/include/revu_sub_names.h b/src/include/revu_sub_names.h similarity index 100% rename from src/6.3.02/include/revu_sub_names.h rename to src/include/revu_sub_names.h diff --git a/src/6.3.02/include/sub_gribnames.h b/src/include/sub_gribnames.h similarity index 100% rename from src/6.3.02/include/sub_gribnames.h rename to src/include/sub_gribnames.h diff --git a/src/6.3.02/include/utils_sub_names.h b/src/include/utils_sub_names.h similarity index 100% rename from src/6.3.02/include/utils_sub_names.h rename to src/include/utils_sub_names.h diff --git a/src/6.3.02/init/data_init.f90 b/src/init/data_init.f90 similarity index 100% rename from src/6.3.02/init/data_init.f90 rename to src/init/data_init.f90 diff --git a/src/6.3.02/init/gridset.f90 b/src/init/gridset.f90 similarity index 100% rename from src/6.3.02/init/gridset.f90 rename to src/init/gridset.f90 diff --git a/src/6.3.02/init/rams_grid.f90 b/src/init/rams_grid.f90 similarity index 100% rename from src/6.3.02/init/rams_grid.f90 rename to src/init/rams_grid.f90 diff --git a/src/6.3.02/init/rdint.f90 b/src/init/rdint.f90 similarity index 97% rename from src/6.3.02/init/rdint.f90 rename to src/init/rdint.f90 index b71579f..2649903 100644 --- a/src/6.3.02/init/rdint.f90 +++ b/src/init/rdint.f90 @@ -159,13 +159,13 @@ Subroutine initlz () ! Reset aerosols on history initialization if((initial==1 .or. initial==2 .or. (initial==3.and.iaerohist==1)) & .and. level<=3) then - if(iaerosol > 0) CALL init_ccn (mzp,mxp,myp & - ,micro_g(ifm)%cccnp (1,1,1) & - ,micro_g(ifm)%cccmp (1,1,1) & + if(iaerosol > 0) CALL init_ccn1 (mzp,mxp,myp & + ,micro_g(ifm)%cn1np (1,1,1) & + ,micro_g(ifm)%cn1mp (1,1,1) & ,basic_g(ifm)%dn0 (1,1,1),ifm) - if(iaerosol > 0) CALL init_gccn (mzp,mxp,myp & - ,micro_g(ifm)%gccnp (1,1,1) & - ,micro_g(ifm)%gccmp (1,1,1) & + if(iaerosol > 0) CALL init_ccn2 (mzp,mxp,myp & + ,micro_g(ifm)%cn2np (1,1,1) & + ,micro_g(ifm)%cn2mp (1,1,1) & ,basic_g(ifm)%dn0 (1,1,1),ifm) if(idust > 0) CALL init_dust (mzp,mxp,myp & ,micro_g(ifm)%md1np (1,1,1) & diff --git a/src/6.3.02/init/rhhi.f90 b/src/init/rhhi.f90 similarity index 100% rename from src/6.3.02/init/rhhi.f90 rename to src/init/rhhi.f90 diff --git a/src/6.3.02/init/rinit.f90 b/src/init/rinit.f90 similarity index 100% rename from src/6.3.02/init/rinit.f90 rename to src/init/rinit.f90 diff --git a/src/6.3.02/io/anal_extra.f90 b/src/io/anal_extra.f90 similarity index 100% rename from src/6.3.02/io/anal_extra.f90 rename to src/io/anal_extra.f90 diff --git a/src/6.3.02/io/anal_write.f90 b/src/io/anal_write.f90 similarity index 100% rename from src/6.3.02/io/anal_write.f90 rename to src/io/anal_write.f90 diff --git a/src/6.3.02/io/history_start.f90 b/src/io/history_start.f90 similarity index 100% rename from src/6.3.02/io/history_start.f90 rename to src/io/history_start.f90 diff --git a/src/6.3.02/io/inithis.f90 b/src/io/inithis.f90 similarity index 100% rename from src/6.3.02/io/inithis.f90 rename to src/io/inithis.f90 diff --git a/src/6.3.02/io/io_params.f90 b/src/io/io_params.f90 similarity index 100% rename from src/6.3.02/io/io_params.f90 rename to src/io/io_params.f90 diff --git a/src/6.3.02/io/opspec.f90 b/src/io/opspec.f90 similarity index 100% rename from src/6.3.02/io/opspec.f90 rename to src/io/opspec.f90 diff --git a/src/6.3.02/io/ranlavg.f90 b/src/io/ranlavg.f90 similarity index 100% rename from src/6.3.02/io/ranlavg.f90 rename to src/io/ranlavg.f90 diff --git a/src/6.3.02/io/rcio.f90 b/src/io/rcio.f90 similarity index 100% rename from src/6.3.02/io/rcio.f90 rename to src/io/rcio.f90 diff --git a/src/6.3.02/io/rname.f90 b/src/io/rname.f90 similarity index 97% rename from src/6.3.02/io/rname.f90 rename to src/io/rname.f90 index 696b792..61ee642 100644 --- a/src/6.3.02/io/rname.f90 +++ b/src/io/rname.f90 @@ -25,7 +25,7 @@ Subroutine nvfillm (group,vr,ii,ff,cc,nv) real :: ff integer :: ii,nv integer :: inrflg -integer, parameter ::nvgrid=37,nvstrt=78,nvindat=151,nvsound=10 +integer, parameter ::nvgrid=37,nvstrt=78,nvindat=153,nvsound=10 integer :: igrids(nvgrid),istart(nvstrt),iindat(nvindat),isound(nvsound) character(len=16) :: grids(nvgrid),start(nvstrt),indat(nvindat),sound(nvsound) data igrids/nvgrid*0/,istart/nvstrt*0/,iindat/nvindat*0/,isound/nvsound*0/ @@ -55,7 +55,8 @@ Subroutine nvfillm (group,vr,ii,ff,cc,nv) ,'ISSTFN','IVEGTFN','ISOILFN','NDVIFN','ITOPSFLG','TOPTENH' & ,'TOPTWVL','IZ0FLG','Z0MAX','Z0FACT'/ DATA INDAT/ & - 'ICORFLG','IBND','JBND','CPHAS','LSFLG','NFPT','DISTIM','ISWRTYP' & + 'ICORFLG','IBND','JBND','ISPONGE_PTS','SPONGE_TAU','CPHAS','LSFLG' & + ,'NFPT','DISTIM','ISWRTYP' & ,'ILWRTYP','RADFRQ','LONRAD','NNQPARM','CONFRQ','WCLDBS','IKPP' & ,'NKPPZ','FRQKPP','RELAX_SST','RELAX_OCNT','RELAX_SAL','DMAXKPP' & ,'DSCALEKPP','KPPITERMAX','KPPRNT','UBMN_KPP','NPATCH','NVEGPAT' & @@ -73,9 +74,9 @@ Subroutine nvfillm (group,vr,ii,ff,cc,nv) ,'GPARM','HPARM','GNU','HUCMFILE','NDTCOLL','IAEROSOL','ISALT' & ,'IDUST','IDUSTLOFT','DUSTFILE','ICCNLEV','IIFN','IIFN_FORMULA' & ,'IAERORAD','IAERODEP','IAEROPRNT','IAEROHIST','CIN_MAX','CIN_SH' & - ,'ICCN_PROF','CCN_MAX','CCN_SH','BL_HGT','TRAN_DEPTH','CCN_FT' & - ,'GCCN_MAX','DUST1_MAX','DUST2_MAX','SALTF_MAX','SALTJ_MAX' & - ,'SALTS_MAX','IAEROLBC','ICO2LBC','BCTAU','IAERO_CHEM' & + ,'CCN1_MAX','CCN2_MAX','ICCN_PROF','CCN_SH','BL_HGT','TRAN_DEPTH' & + ,'CCN_FT','DUST1_MAX','DUST2_MAX','SALTF_MAX' & + ,'SALTJ_MAX','SALTS_MAX','IAEROLBC','ICO2LBC','BCTAU','IAERO_CHEM' & ,'AERO_EPSILON','AERO_MEDRAD','ITRKEPSILON','ITRKDUST' & ,'ITRKDUSTIFN','SCMTIME','ISCMX','ISCMY','FRACSAT','IABCARB' & ,'ABC1_MAX','ABC2_MAX'/ @@ -240,6 +241,8 @@ END SUBROUTINE varseti IF(VR.EQ.'ICORFLG') CALL varseti (VR,ICORFLG,NV,1,II,0,1) IF(VR.EQ.'IBND') CALL varseti (VR,IBND,NV,1,II,1,2) IF(VR.EQ.'JBND') CALL varseti (VR,JBND,NV,1,II,1,2) + IF(VR.EQ.'ISPONGE_PTS') CALL varseti (VR,ISPONGE_PTS(NV),NV,MAXGRDS,II,0,100) + IF(VR.EQ.'SPONGE_TAU') CALL varsetf (VR,SPONGE_TAU(NV),NV,MAXGRDS,FF,0.,43200.) IF(VR.EQ.'CPHAS') CALL varsetf (VR,CPHAS,NV,1,FF,.001,1.E8) IF(VR.EQ.'LSFLG') CALL varseti (VR,LSFLG,NV,1,II,0,3) IF(VR.EQ.'NFPT') CALL varseti (VR,NFPT,NV,1,II,0,10000) @@ -366,12 +369,12 @@ END SUBROUTINE varseti IF(VR.EQ.'CIN_MAX') CALL varsetf (VR,CIN_MAX,NV,1,FF,0.,1.E4) IF(VR.EQ.'CIN_SH') CALL varsetf (VR,CIN_SH,NV,1,FF,0.,1.E4) IF(VR.EQ.'ICCN_PROF') CALL varseti (VR,ICCN_PROF,NV,1,II,1,2) - IF(VR.EQ.'CCN_MAX') CALL varsetf (VR,CCN_MAX,NV,1,FF,0.,1.E4) IF(VR.EQ.'CCN_SH') CALL varsetf (VR,CCN_SH,NV,1,FF,0.,1.E4) IF(VR.EQ.'BL_HGT') CALL varsetf (VR,BL_HGT,NV,1,FF,0.,10000.) IF(VR.EQ.'TRAN_DEPTH') CALL varsetf (VR,TRAN_DEPTH,NV,1,FF,0.,10000.) IF(VR.EQ.'CCN_FT') CALL varsetf (VR,CCN_FT,NV,1,FF,0.,1.E4) - IF(VR.EQ.'GCCN_MAX') CALL varsetf (VR,GCCN_MAX,NV,1,FF,0.,1.E4) + IF(VR.EQ.'CCN1_MAX') CALL varsetf (VR,CCN1_MAX,NV,1,FF,0.,1.E4) + IF(VR.EQ.'CCN2_MAX') CALL varsetf (VR,CCN2_MAX,NV,1,FF,0.,1.E4) IF(VR.EQ.'DUST1_MAX') CALL varsetf (VR,DUST1_MAX,NV,1,FF,0.,1.E4) IF(VR.EQ.'DUST2_MAX') CALL varsetf (VR,DUST2_MAX,NV,1,FF,0.,1.E4) IF(VR.EQ.'ABC1_MAX') CALL varsetf (VR,ABC1_MAX,NV,1,FF,0.,1.E4) @@ -435,7 +438,7 @@ Subroutine nameout () ,ISSTFLG(NG),IVEGTFLG(NG),NG=1,NGRIDS) WRITE(6,104)(' ',ISOILFLG(NG),NDVIFLG(NG) & ,NNQPARM(NG),IDIFFK(NG),NG=1,NGRIDS) -WRITE(6,105)(' ',IAEROLBC(NG),ICO2LBC(NG) & +WRITE(6,105)(' ',IAEROLBC(NG),ICO2LBC(NG),ISPONGE_PTS(NG) & ,NG=1,NGRIDS) 101 FORMAT(A1,' NNXP=',I4,' NNYP=',I4,' NNZP=',I4 & @@ -447,7 +450,7 @@ Subroutine nameout () 104 FORMAT(A1,'ISOILFLG=',I4,' NDVIFLG=',I4 & ,' NNQPARM=',I4,' IDIFFK=',I4,999(A1,/,I14,3I16)) 105 FORMAT(A1,'IAEROLBC=',I4,' ICO2LBC=',I4 & - ,999(A1,/,I14,1I16)) + ,' ISPONGE_PT=',I4,999(A1,/,I14,2I16)) PRINT*, ' ' @@ -615,12 +618,12 @@ Subroutine nameout () ,'HPARM=',HPARM & ,'CIN_MAX=',CIN_MAX & ,'CIN_SH=',CIN_SH & - ,'CCN_MAX=',CCN_MAX & ,'CCN_SH=',CCN_SH & ,'BL_HGT=',BL_HGT & ,'TRAN_DEPTH=',TRAN_DEPTH & ,'CCN_FT=',CCN_FT & - ,'GCCN_MAX=',GCCN_MAX & + ,'CCN1_MAX=',CCN1_MAX & + ,'CCN2_MAX=',CCN2_MAX & ,'DUST1_MAX=',DUST1_MAX & ,'DUST2_MAX=',DUST2_MAX & ,'ABC1_MAX=',ABC1_MAX & @@ -635,14 +638,14 @@ Subroutine nameout () WRITE(6,301)(' ',TOPTENH(NG),TOPTWVL(NG),CENTLAT(NG),NG=1,NGRIDS) WRITE(6,302)(' ',CENTLON(NG),CSX(NG),CSZ(NG),NG=1,NGRIDS) WRITE(6,303)(' ',XKHKM(NG),ZKHKM(NG),AKMIN(NG),NG=1,NGRIDS) -WRITE(6,304)(' ',BCTAU(NG),NG=1,NGRIDS) +WRITE(6,304)(' ',BCTAU(NG),SPONGE_TAU(NG),NG=1,NGRIDS) 301 FORMAT(A1,'TOPTENH=',E12.5,' TOPTWVL=',E12.5 & ,' CENTLAT=',E12.5,999(A1,/,E21.5,2E28.5)) 302 FORMAT(A1,'CENTLON=',E12.5,' CSX=',E12.5 & ,' CSZ=',E12.5,999(A1,/,E21.5,2E28.5)) 303 FORMAT(A1,' XKHKM=',E12.5,' ZKHKM=',E12.5 & ,' AKMIN=',E12.5,999(A1,/,E21.5,2E28.5)) -304 FORMAT(A1,' BCTAU=',E12.5,999(A1,/,E21.5)) +304 FORMAT(A1,' BCTAU=',E12.5' SPONGE_TAU=',E12.5,999(A1,/,E21.5,E28.5)) PRINT*, ' ' @@ -795,7 +798,7 @@ Subroutine namein (IUNIT,GROUP) NVARN=0 CALL findgr (IUNIT,GROUP) DO 10 NR=1,MAXREC - READ(IUNIT,'(A80)',END=100)LINE + READ(IUNIT,'(A256)',END=100)LINE CALL strip (LINE,LINEW,NCW) NCW=MAX(NCW,1) CALL toknze (LINEW,NCW,TOKENS,NTOK) diff --git a/src/6.3.02/io/rprnt.f90 b/src/io/rprnt.f90 similarity index 100% rename from src/6.3.02/io/rprnt.f90 rename to src/io/rprnt.f90 diff --git a/src/6.3.02/isan/aobj.f90 b/src/isan/aobj.f90 similarity index 100% rename from src/6.3.02/isan/aobj.f90 rename to src/isan/aobj.f90 diff --git a/src/6.3.02/isan/asgen.f90 b/src/isan/asgen.f90 similarity index 100% rename from src/6.3.02/isan/asgen.f90 rename to src/isan/asgen.f90 diff --git a/src/6.3.02/isan/asti.f90 b/src/isan/asti.f90 similarity index 100% rename from src/6.3.02/isan/asti.f90 rename to src/isan/asti.f90 diff --git a/src/6.3.02/isan/asti2.f90 b/src/isan/asti2.f90 similarity index 100% rename from src/6.3.02/isan/asti2.f90 rename to src/isan/asti2.f90 diff --git a/src/6.3.02/isan/astp.f90 b/src/isan/astp.f90 similarity index 100% rename from src/6.3.02/isan/astp.f90 rename to src/isan/astp.f90 diff --git a/src/6.3.02/isan/avarf.f90 b/src/isan/avarf.f90 similarity index 100% rename from src/6.3.02/isan/avarf.f90 rename to src/isan/avarf.f90 diff --git a/src/6.3.02/isan/file_inv.f90 b/src/isan/file_inv.f90 similarity index 100% rename from src/6.3.02/isan/file_inv.f90 rename to src/isan/file_inv.f90 diff --git a/src/6.3.02/isan/isan_coms.f90 b/src/isan/isan_coms.f90 similarity index 100% rename from src/6.3.02/isan/isan_coms.f90 rename to src/isan/isan_coms.f90 diff --git a/src/6.3.02/isan/isan_io.f90 b/src/isan/isan_io.f90 similarity index 100% rename from src/6.3.02/isan/isan_io.f90 rename to src/isan/isan_io.f90 diff --git a/src/6.3.02/isan/isan_name.f90 b/src/isan/isan_name.f90 similarity index 99% rename from src/6.3.02/isan/isan_name.f90 rename to src/isan/isan_name.f90 index 472f372..bc28c07 100644 --- a/src/6.3.02/isan/isan_name.f90 +++ b/src/isan/isan_name.f90 @@ -117,7 +117,7 @@ Subroutine namein_isan (IUNIT,GROUP) NVARN=0 CALL findgr (IUNIT,GROUP) DO 10 NR=1,MAXREC - READ(IUNIT,'(A80)',END=100)LINE + READ(IUNIT,'(A256)',END=100)LINE CALL strip (LINE,LINEW,NCW) NCW=MAX(NCW,1) CALL toknze (LINEW,NCW,TOKENS,NTOK) diff --git a/src/6.3.02/isan/refstate.f90 b/src/isan/refstate.f90 similarity index 100% rename from src/6.3.02/isan/refstate.f90 rename to src/isan/refstate.f90 diff --git a/src/6.3.02/isan/v_interps.f90 b/src/isan/v_interps.f90 similarity index 100% rename from src/6.3.02/isan/v_interps.f90 rename to src/isan/v_interps.f90 diff --git a/src/6.3.02/isan/write_varf.f90 b/src/isan/write_varf.f90 similarity index 100% rename from src/6.3.02/isan/write_varf.f90 rename to src/isan/write_varf.f90 diff --git a/src/6.3.02/kpp/kpp_coeffs.f90 b/src/kpp/kpp_coeffs.f90 similarity index 100% rename from src/6.3.02/kpp/kpp_coeffs.f90 rename to src/kpp/kpp_coeffs.f90 diff --git a/src/6.3.02/kpp/kpp_init.f90 b/src/kpp/kpp_init.f90 similarity index 100% rename from src/6.3.02/kpp/kpp_init.f90 rename to src/kpp/kpp_init.f90 diff --git a/src/6.3.02/kpp/kpp_mix.f90 b/src/kpp/kpp_mix.f90 similarity index 100% rename from src/6.3.02/kpp/kpp_mix.f90 rename to src/kpp/kpp_mix.f90 diff --git a/src/6.3.02/kpp/kpp_ocint.f90 b/src/kpp/kpp_ocint.f90 similarity index 100% rename from src/6.3.02/kpp/kpp_ocint.f90 rename to src/kpp/kpp_ocint.f90 diff --git a/src/6.3.02/kpp/kpp_override.f90 b/src/kpp/kpp_override.f90 similarity index 100% rename from src/6.3.02/kpp/kpp_override.f90 rename to src/kpp/kpp_override.f90 diff --git a/src/6.3.02/kpp/kpp_params.f90 b/src/kpp/kpp_params.f90 similarity index 100% rename from src/6.3.02/kpp/kpp_params.f90 rename to src/kpp/kpp_params.f90 diff --git a/src/6.3.02/kpp/kpp_timestep.f90 b/src/kpp/kpp_timestep.f90 similarity index 100% rename from src/6.3.02/kpp/kpp_timestep.f90 rename to src/kpp/kpp_timestep.f90 diff --git a/src/6.3.02/kpp/kpp_typexfer.f90 b/src/kpp/kpp_typexfer.f90 similarity index 100% rename from src/6.3.02/kpp/kpp_typexfer.f90 rename to src/kpp/kpp_typexfer.f90 diff --git a/src/6.3.02/lib/an_header.f90 b/src/lib/an_header.f90 similarity index 100% rename from src/6.3.02/lib/an_header.f90 rename to src/lib/an_header.f90 diff --git a/src/6.3.02/lib/charutils.f90 b/src/lib/charutils.f90 similarity index 100% rename from src/6.3.02/lib/charutils.f90 rename to src/lib/charutils.f90 diff --git a/src/6.3.02/lib/dateutils.f90 b/src/lib/dateutils.f90 similarity index 100% rename from src/6.3.02/lib/dateutils.f90 rename to src/lib/dateutils.f90 diff --git a/src/6.3.02/lib/griber_grb1.c b/src/lib/griber_grb1.c similarity index 100% rename from src/6.3.02/lib/griber_grb1.c rename to src/lib/griber_grb1.c diff --git a/src/6.3.02/lib/griber_grb2.c b/src/lib/griber_grb2.c similarity index 100% rename from src/6.3.02/lib/griber_grb2.c rename to src/lib/griber_grb2.c diff --git a/src/6.3.02/lib/hdf5_f2c.c b/src/lib/hdf5_f2c.c similarity index 100% rename from src/6.3.02/lib/hdf5_f2c.c rename to src/lib/hdf5_f2c.c diff --git a/src/6.3.02/lib/hdf5_utils.f90 b/src/lib/hdf5_utils.f90 similarity index 100% rename from src/6.3.02/lib/hdf5_utils.f90 rename to src/lib/hdf5_utils.f90 diff --git a/src/6.3.02/lib/interp_lib.f90 b/src/lib/interp_lib.f90 similarity index 100% rename from src/6.3.02/lib/interp_lib.f90 rename to src/lib/interp_lib.f90 diff --git a/src/6.3.02/lib/map_proj.f90 b/src/lib/map_proj.f90 similarity index 100% rename from src/6.3.02/lib/map_proj.f90 rename to src/lib/map_proj.f90 diff --git a/src/6.3.02/lib/numutils.f90 b/src/lib/numutils.f90 similarity index 100% rename from src/6.3.02/lib/numutils.f90 rename to src/lib/numutils.f90 diff --git a/src/6.3.02/lib/parlib.c b/src/lib/parlib.c similarity index 100% rename from src/6.3.02/lib/parlib.c rename to src/lib/parlib.c diff --git a/src/6.3.02/lib/polarst.f90 b/src/lib/polarst.f90 similarity index 100% rename from src/6.3.02/lib/polarst.f90 rename to src/lib/polarst.f90 diff --git a/src/6.3.02/lib/rconstants.f90 b/src/lib/rconstants.f90 similarity index 100% rename from src/6.3.02/lib/rconstants.f90 rename to src/lib/rconstants.f90 diff --git a/src/6.3.02/lib/rget.F90 b/src/lib/rget.F90 similarity index 100% rename from src/6.3.02/lib/rget.F90 rename to src/lib/rget.F90 diff --git a/src/6.3.02/lib/rnamel.f90 b/src/lib/rnamel.f90 similarity index 100% rename from src/6.3.02/lib/rnamel.f90 rename to src/lib/rnamel.f90 diff --git a/src/6.3.02/lib/rsys.F90 b/src/lib/rsys.F90 similarity index 100% rename from src/6.3.02/lib/rsys.F90 rename to src/lib/rsys.F90 diff --git a/src/6.3.02/lib/therm_lib.f90 b/src/lib/therm_lib.f90 similarity index 100% rename from src/6.3.02/lib/therm_lib.f90 rename to src/lib/therm_lib.f90 diff --git a/src/6.3.02/lib/utils_c.c b/src/lib/utils_c.c similarity index 100% rename from src/6.3.02/lib/utils_c.c rename to src/lib/utils_c.c diff --git a/src/6.3.02/lib/utils_f.f90 b/src/lib/utils_f.f90 similarity index 100% rename from src/6.3.02/lib/utils_f.f90 rename to src/lib/utils_f.f90 diff --git a/src/6.3.02/memory/alloc.f90 b/src/memory/alloc.f90 similarity index 100% rename from src/6.3.02/memory/alloc.f90 rename to src/memory/alloc.f90 diff --git a/src/6.3.02/memory/grid_dims.f90 b/src/memory/grid_dims.f90 similarity index 100% rename from src/6.3.02/memory/grid_dims.f90 rename to src/memory/grid_dims.f90 diff --git a/src/6.3.02/memory/grid_struct.f90 b/src/memory/grid_struct.f90 similarity index 100% rename from src/6.3.02/memory/grid_struct.f90 rename to src/memory/grid_struct.f90 diff --git a/src/6.3.02/memory/mem_all.f90 b/src/memory/mem_all.f90 similarity index 100% rename from src/6.3.02/memory/mem_all.f90 rename to src/memory/mem_all.f90 diff --git a/src/6.3.02/memory/mem_basic.f90 b/src/memory/mem_basic.f90 similarity index 100% rename from src/6.3.02/memory/mem_basic.f90 rename to src/memory/mem_basic.f90 diff --git a/src/6.3.02/memory/mem_cuparm.f90 b/src/memory/mem_cuparm.f90 similarity index 100% rename from src/6.3.02/memory/mem_cuparm.f90 rename to src/memory/mem_cuparm.f90 diff --git a/src/6.3.02/memory/mem_grid.f90 b/src/memory/mem_grid.f90 similarity index 99% rename from src/6.3.02/memory/mem_grid.f90 rename to src/memory/mem_grid.f90 index ff18d06..af30da4 100644 --- a/src/6.3.02/memory/mem_grid.f90 +++ b/src/memory/mem_grid.f90 @@ -98,8 +98,10 @@ Module mem_grid !--------------------------------------------------------------------------- !------------------------------------------------------------------------------- integer :: lsflg,ibnd,jbnd,icorflg,nfpt + integer, dimension(maxgrds) :: isponge_pts !------------------------------------------------------------------------------- real :: distim ,cphas + real, dimension(maxgrds) :: sponge_tau !------------------------------------------------------------------------------- Contains diff --git a/src/6.3.02/memory/mem_kpp.f90 b/src/memory/mem_kpp.f90 similarity index 100% rename from src/6.3.02/memory/mem_kpp.f90 rename to src/memory/mem_kpp.f90 diff --git a/src/6.3.02/memory/mem_leaf.f90 b/src/memory/mem_leaf.f90 similarity index 100% rename from src/6.3.02/memory/mem_leaf.f90 rename to src/memory/mem_leaf.f90 diff --git a/src/6.3.02/memory/mem_micro.f90 b/src/memory/mem_micro.f90 similarity index 92% rename from src/6.3.02/memory/mem_micro.f90 rename to src/memory/mem_micro.f90 index 62cbfba..ecd7f97 100644 --- a/src/6.3.02/memory/mem_micro.f90 +++ b/src/memory/mem_micro.f90 @@ -14,7 +14,7 @@ Module mem_micro !Bin precip vars ,pcpvic,pcpvip,pcpvid & !Aerosol categories mass and number - ,cccnp,gccnp,cccmp,gccmp & + ,cn1np,cn2np,cn1mp,cn2mp & ,md1np,md2np,md1mp,md2mp & ,salt_film_np,salt_jet_np,salt_spum_np & ,salt_film_mp,salt_jet_mp,salt_spum_mp & @@ -35,11 +35,14 @@ Module mem_micro ,resol_aero1_mp,resol_aero2_mp & ! MICRO BUDGET PROCESSES (imbudget >=1) ,latheatvap,latheatfrz,nuccldrt,cld2raint,ice2raint,nucicert & - ,vapliqt,vapicet,melticet,rimecldt,rain2icet,aggregatet & + ,vapliqt,vapicet,evapliqt,evapicet,freezingt,meltingt & + ,melticet,rimecldt,rain2icet,aggregatet & ,latheatvapt,latheatfrzt & ! MICRO BUDGET PROCESSES (imbudget >=2) ,inuchomrt,inuccontrt,inucifnrt,inuchazrt,vapcldt,vapraint & ,vapprist,vapsnowt,vapaggrt,vapgraut,vaphailt,vapdrizt & + ,evapcldt,evapraint,evapprist,evapsnowt,evapaggrt,evapgraut & + ,evaphailt,evapdrizt & ,meltprist,meltsnowt,meltaggrt,meltgraut,melthailt & ,rimecldsnowt,rimecldaggrt,rimecldgraut,rimecldhailt & ,rain2prt,rain2snt,rain2agt,rain2grt,rain2hat & @@ -129,10 +132,10 @@ Subroutine alloc_micro (micro,n1,n2,n3,n4) ! Allocate arrays based on options (if necessary) if (level >= 0 .and. level .ne. 4) then if(iaerosol > 0) then - allocate (micro%cccnp(n1,n2,n3)) - allocate (micro%cccmp(n1,n2,n3)) - allocate (micro%gccnp(n1,n2,n3)) - allocate (micro%gccmp(n1,n2,n3)) + allocate (micro%cn1np(n1,n2,n3)) + allocate (micro%cn1mp(n1,n2,n3)) + allocate (micro%cn2np(n1,n2,n3)) + allocate (micro%cn2mp(n1,n2,n3)) endif if(idust > 0) then allocate (micro%md1np(n1,n2,n3)) @@ -290,6 +293,10 @@ Subroutine alloc_micro (micro,n1,n2,n3,n4) allocate (micro%nucicert(n1,n2,n3)) allocate (micro%vapliqt(n1,n2,n3)) allocate (micro%vapicet(n1,n2,n3)) + allocate (micro%evapliqt(n1,n2,n3)) + allocate (micro%evapicet(n1,n2,n3)) + allocate (micro%freezingt(n1,n2,n3)) + allocate (micro%meltingt(n1,n2,n3)) allocate (micro%melticet(n1,n2,n3)) allocate (micro%rimecldt(n1,n2,n3)) allocate (micro%rain2icet(n1,n2,n3)) @@ -310,6 +317,14 @@ Subroutine alloc_micro (micro,n1,n2,n3,n4) allocate (micro%vapgraut(n1,n2,n3)) allocate (micro%vaphailt(n1,n2,n3)) allocate (micro%vapdrizt(n1,n2,n3)) + allocate (micro%evapcldt(n1,n2,n3)) + allocate (micro%evapraint(n1,n2,n3)) + allocate (micro%evapprist(n1,n2,n3)) + allocate (micro%evapsnowt(n1,n2,n3)) + allocate (micro%evapaggrt(n1,n2,n3)) + allocate (micro%evapgraut(n1,n2,n3)) + allocate (micro%evaphailt(n1,n2,n3)) + allocate (micro%evapdrizt(n1,n2,n3)) allocate (micro%meltprist(n1,n2,n3)) allocate (micro%meltsnowt(n1,n2,n3)) allocate (micro%meltaggrt(n1,n2,n3)) @@ -408,6 +423,7 @@ Subroutine alloc_micro (micro,n1,n2,n3,n4) allocate (micro%nuccldct(n1,n2,n3)) allocate (micro%cld2raint(n1,n2,n3)) allocate (micro%vapliqt(n1,n2,n3)) + if(iceprocs==1) then allocate (micro%latheatfrz(n1,n2,n3)) ! allocate (micro%ice2raint(n1,n2,n3)) @@ -493,10 +509,10 @@ Subroutine dealloc_micro (micro) if (allocated(micro%q6)) deallocate (micro%q6) if (allocated(micro%q7)) deallocate (micro%q7) - if (allocated(micro%cccnp)) deallocate (micro%cccnp) - if (allocated(micro%gccnp)) deallocate (micro%gccnp) - if (allocated(micro%cccmp)) deallocate (micro%cccmp) - if (allocated(micro%gccmp)) deallocate (micro%gccmp) + if (allocated(micro%cn1np)) deallocate (micro%cn1np) + if (allocated(micro%cn2np)) deallocate (micro%cn2np) + if (allocated(micro%cn1mp)) deallocate (micro%cn1mp) + if (allocated(micro%cn2mp)) deallocate (micro%cn2mp) if (allocated(micro%md1np)) deallocate (micro%md1np) if (allocated(micro%md2np)) deallocate (micro%md2np) if (allocated(micro%md1mp)) deallocate (micro%md1mp) @@ -599,6 +615,10 @@ Subroutine dealloc_micro (micro) if (allocated(micro%nucicert)) deallocate (micro%nucicert) if (allocated(micro%vapliqt)) deallocate (micro%vapliqt) if (allocated(micro%vapicet)) deallocate (micro%vapicet) + if (allocated(micro%evapliqt)) deallocate (micro%evapliqt) + if (allocated(micro%evapicet)) deallocate (micro%evapicet) + if (allocated(micro%freezingt)) deallocate (micro%freezingt) + if (allocated(micro%meltingt)) deallocate (micro%meltingt) if (allocated(micro%melticet)) deallocate (micro%melticet) if (allocated(micro%rimecldt)) deallocate (micro%rimecldt) if (allocated(micro%rain2icet)) deallocate (micro%rain2icet) @@ -618,6 +638,14 @@ Subroutine dealloc_micro (micro) if (allocated(micro%vapgraut)) deallocate (micro%vapgraut) if (allocated(micro%vaphailt)) deallocate (micro%vaphailt) if (allocated(micro%vapdrizt)) deallocate (micro%vapdrizt) + if (allocated(micro%evapcldt)) deallocate (micro%evapcldt) + if (allocated(micro%evapraint)) deallocate (micro%evapraint) + if (allocated(micro%evapprist)) deallocate (micro%evapprist) + if (allocated(micro%evapsnowt)) deallocate (micro%evapsnowt) + if (allocated(micro%evapaggrt)) deallocate (micro%evapaggrt) + if (allocated(micro%evapgraut)) deallocate (micro%evapgraut) + if (allocated(micro%evaphailt)) deallocate (micro%evaphailt) + if (allocated(micro%evapdrizt)) deallocate (micro%evapdrizt) if (allocated(micro%meltprist)) deallocate (micro%meltprist) if (allocated(micro%meltsnowt)) deallocate (micro%meltsnowt) if (allocated(micro%meltaggrt)) deallocate (micro%meltaggrt) @@ -768,22 +796,22 @@ Subroutine filltab_micro (micro,microm,imean,n1,n2,n3,ng) 'Q7 :3:anal:mpti:mpt1') !Aerosol categories mass and number - if (allocated(micro%cccnp)) & - CALL vtables2 (micro%cccnp(1,1,1),microm%cccnp(1,1,1) & + if (allocated(micro%cn1np)) & + CALL vtables2 (micro%cn1np(1,1,1),microm%cn1np(1,1,1) & ,ng, npts, imean, & - 'CCCNP :3:anal:mpti:mpt1') - if (allocated(micro%gccnp)) & - CALL vtables2 (micro%gccnp(1,1,1),microm%gccnp(1,1,1) & + 'CN1NP :3:anal:mpti:mpt1') + if (allocated(micro%cn2np)) & + CALL vtables2 (micro%cn2np(1,1,1),microm%cn2np(1,1,1) & ,ng, npts, imean, & - 'GCCNP :3:anal:mpti:mpt1') - if (allocated(micro%cccmp)) & - CALL vtables2 (micro%cccmp(1,1,1),microm%cccmp(1,1,1) & + 'CN2NP :3:anal:mpti:mpt1') + if (allocated(micro%cn1mp)) & + CALL vtables2 (micro%cn1mp(1,1,1),microm%cn1mp(1,1,1) & ,ng, npts, imean, & - 'CCCMP :3:anal:mpti:mpt1') - if (allocated(micro%gccmp)) & - CALL vtables2 (micro%gccmp(1,1,1),microm%gccmp(1,1,1) & + 'CN1MP :3:anal:mpti:mpt1') + if (allocated(micro%cn2mp)) & + CALL vtables2 (micro%cn2mp(1,1,1),microm%cn2mp(1,1,1) & ,ng, npts, imean, & - 'GCCMP :3:anal:mpti:mpt1') + 'CN2MP :3:anal:mpti:mpt1') if (allocated(micro%md1np)) & CALL vtables2 (micro%md1np(1,1,1),microm%md1np(1,1,1) & ,ng, npts, imean, & @@ -1082,6 +1110,22 @@ Subroutine filltab_micro (micro,microm,imean,n1,n2,n3,ng) CALL vtables2 (micro%vapicet(1,1,1),microm%vapicet(1,1,1) & ,ng, npts, imean, & 'VAPICET :3:anal:mpti') + if (allocated(micro%evapliqt)) & + CALL vtables2 (micro%evapliqt(1,1,1),microm%evapliqt(1,1,1) & + ,ng, npts, imean, & + 'EVAPLIQT :3:anal:mpti') + if (allocated(micro%evapicet)) & + CALL vtables2 (micro%evapicet(1,1,1),microm%evapicet(1,1,1) & + ,ng, npts, imean, & + 'EVAPICET :3:anal:mpti') + if (allocated(micro%freezingt)) & + CALL vtables2 (micro%freezingt(1,1,1),microm%freezingt(1,1,1) & + ,ng, npts, imean, & + 'FREEZINGT :3:anal:mpti') + if (allocated(micro%meltingt)) & + CALL vtables2 (micro%meltingt(1,1,1),microm%meltingt(1,1,1) & + ,ng, npts, imean, & + 'MELTINGT :3:anal:mpti') if (allocated(micro%melticet)) & CALL vtables2 (micro%melticet(1,1,1),microm%melticet(1,1,1) & ,ng, npts, imean, & @@ -1154,7 +1198,39 @@ Subroutine filltab_micro (micro,microm,imean,n1,n2,n3,ng) if (allocated(micro%vapdrizt)) & CALL vtables2 (micro%vapdrizt(1,1,1),microm%vapdrizt(1,1,1) & ,ng, npts, imean, & - 'VAPDRIZT :3:anal:mpti') + 'VAPDRIZT :3:anal:mpti') + if (allocated(micro%evapcldt)) & + CALL vtables2 (micro%evapcldt(1,1,1),microm%evapcldt(1,1,1) & + ,ng, npts, imean, & + 'EVAPCLDT :3:anal:mpti') + if (allocated(micro%evapraint)) & + CALL vtables2 (micro%evapraint(1,1,1),microm%evapraint(1,1,1) & + ,ng, npts, imean, & + 'EVAPRAINT :3:anal:mpti') + if (allocated(micro%evapprist)) & + CALL vtables2 (micro%evapprist(1,1,1),microm%evapprist(1,1,1) & + ,ng, npts, imean, & + 'EVAPPRIST :3:anal:mpti') + if (allocated(micro%evapsnowt)) & + CALL vtables2 (micro%evapsnowt(1,1,1),microm%evapsnowt(1,1,1) & + ,ng, npts, imean, & + 'EVAPSNOWT :3:anal:mpti') + if (allocated(micro%evapaggrt)) & + CALL vtables2 (micro%evapaggrt(1,1,1),microm%evapaggrt(1,1,1) & + ,ng, npts, imean, & + 'EVAPAGGRT :3:anal:mpti') + if (allocated(micro%evapgraut)) & + CALL vtables2 (micro%evapgraut(1,1,1),microm%evapgraut(1,1,1) & + ,ng, npts, imean, & + 'EVAPGRAUT :3:anal:mpti') + if (allocated(micro%evaphailt)) & + CALL vtables2 (micro%evaphailt(1,1,1),microm%evaphailt(1,1,1) & + ,ng, npts, imean, & + 'EVAPHAILT :3:anal:mpti') + if (allocated(micro%evapdrizt)) & + CALL vtables2 (micro%evapdrizt(1,1,1),microm%evapdrizt(1,1,1) & + ,ng, npts, imean, & + 'EVAPDRIZT :3:anal:mpti') if (allocated(micro%meltprist)) & CALL vtables2 (micro%meltprist(1,1,1),microm%meltprist(1,1,1) & ,ng, npts, imean, & diff --git a/src/6.3.02/memory/mem_mksfc.f90 b/src/memory/mem_mksfc.f90 similarity index 100% rename from src/6.3.02/memory/mem_mksfc.f90 rename to src/memory/mem_mksfc.f90 diff --git a/src/6.3.02/memory/mem_nestb.f90 b/src/memory/mem_nestb.f90 similarity index 100% rename from src/6.3.02/memory/mem_nestb.f90 rename to src/memory/mem_nestb.f90 diff --git a/src/6.3.02/memory/mem_oda.f90 b/src/memory/mem_oda.f90 similarity index 100% rename from src/6.3.02/memory/mem_oda.f90 rename to src/memory/mem_oda.f90 diff --git a/src/6.3.02/memory/mem_radiate.f90 b/src/memory/mem_radiate.f90 similarity index 100% rename from src/6.3.02/memory/mem_radiate.f90 rename to src/memory/mem_radiate.f90 diff --git a/src/6.3.02/memory/mem_scratch.f90 b/src/memory/mem_scratch.f90 similarity index 100% rename from src/6.3.02/memory/mem_scratch.f90 rename to src/memory/mem_scratch.f90 diff --git a/src/6.3.02/memory/mem_sib.f90 b/src/memory/mem_sib.f90 similarity index 100% rename from src/6.3.02/memory/mem_sib.f90 rename to src/memory/mem_sib.f90 diff --git a/src/6.3.02/memory/mem_tend.f90 b/src/memory/mem_tend.f90 similarity index 96% rename from src/6.3.02/memory/mem_tend.f90 rename to src/memory/mem_tend.f90 index 91e0173..0d65d36 100644 --- a/src/6.3.02/memory/mem_tend.f90 +++ b/src/memory/mem_tend.f90 @@ -13,7 +13,7 @@ Module mem_tend ,fncnt, ffcdt, ffict, ffipt, ffidt & ,ffsnt, ffglt, ffhlt, ffint & ,cifnt, tket & - ,cccmt, gccmt, cccnt, gccnt & + ,cn1mt, cn2mt, cn1nt, cn2nt & ,md1nt, md2nt, md1mt, md2mt & ,salt_film_nt,salt_jet_nt,salt_spum_nt & ,salt_film_mt,salt_jet_mt,salt_spum_mt & @@ -109,10 +109,10 @@ Subroutine alloc_tend (numz,numx,numy,ngrs) if (allocated(turb_g(1)%tkep)) allocate (tend%tket(ntpts)) - if (allocated(micro_g(1)%cccnp)) allocate (tend%cccnt(ntpts)) - if (allocated(micro_g(1)%gccnp)) allocate (tend%gccnt(ntpts)) - if (allocated(micro_g(1)%cccmp)) allocate (tend%cccmt(ntpts)) - if (allocated(micro_g(1)%gccmp)) allocate (tend%gccmt(ntpts)) + if (allocated(micro_g(1)%cn1np)) allocate (tend%cn1nt(ntpts)) + if (allocated(micro_g(1)%cn2np)) allocate (tend%cn2nt(ntpts)) + if (allocated(micro_g(1)%cn1mp)) allocate (tend%cn1mt(ntpts)) + if (allocated(micro_g(1)%cn2mp)) allocate (tend%cn2mt(ntpts)) if (allocated(micro_g(1)%md1np)) allocate (tend%md1nt(ntpts)) if (allocated(micro_g(1)%md2np)) allocate (tend%md2nt(ntpts)) if (allocated(micro_g(1)%md1mp)) allocate (tend%md1mt(ntpts)) @@ -238,10 +238,10 @@ Subroutine dealloc_tend (ngrs) if (allocated(tend%tket)) deallocate (tend%tket) - if (allocated(tend%cccnt))deallocate (tend%cccnt) - if (allocated(tend%gccnt))deallocate (tend%gccnt) - if (allocated(tend%cccmt)) deallocate (tend%cccmt) - if (allocated(tend%gccmt)) deallocate (tend%gccmt) + if (allocated(tend%cn1nt))deallocate (tend%cn1nt) + if (allocated(tend%cn2nt))deallocate (tend%cn2nt) + if (allocated(tend%cn1mt)) deallocate (tend%cn1mt) + if (allocated(tend%cn2mt)) deallocate (tend%cn2mt) if (allocated(tend%md1nt)) deallocate (tend%md1nt) if (allocated(tend%md2nt)) deallocate (tend%md2nt) if (allocated(tend%md1mt)) deallocate (tend%md1mt) @@ -389,14 +389,14 @@ Subroutine filltab_tend (basic,micro,turb,sib,tracer,ng) if( allocated(tend%tket)) & CALL vtables_scalar (turb%tkep(1,1,1),tend%tket(1),ng,'TKEP') - if (allocated(tend%cccnt)) & - CALL vtables_scalar (micro%cccnp(1,1,1),tend%cccnt(1),ng,'CCCNP') - if (allocated(tend%gccnt)) & - CALL vtables_scalar (micro%gccnp(1,1,1),tend%gccnt(1),ng,'GCCNP') - if (allocated(tend%cccmt)) & - CALL vtables_scalar (micro%cccmp(1,1,1),tend%cccmt(1),ng,'CCCMP') - if (allocated(tend%gccmt)) & - CALL vtables_scalar (micro%gccmp(1,1,1),tend%gccmt(1),ng,'GCCMP') + if (allocated(tend%cn1nt)) & + CALL vtables_scalar (micro%cn1np(1,1,1),tend%cn1nt(1),ng,'CN1NP') + if (allocated(tend%cn2nt)) & + CALL vtables_scalar (micro%cn2np(1,1,1),tend%cn2nt(1),ng,'CN2NP') + if (allocated(tend%cn1mt)) & + CALL vtables_scalar (micro%cn1mp(1,1,1),tend%cn1mt(1),ng,'CN1MP') + if (allocated(tend%cn2mt)) & + CALL vtables_scalar (micro%cn2mp(1,1,1),tend%cn2mt(1),ng,'CN2MP') if (allocated(tend%md1nt)) & CALL vtables_scalar (micro%md1np(1,1,1),tend%md1nt(1),ng,'MD1NP') if (allocated(tend%md2nt)) & diff --git a/src/6.3.02/memory/mem_tracer.f90 b/src/memory/mem_tracer.f90 similarity index 100% rename from src/6.3.02/memory/mem_tracer.f90 rename to src/memory/mem_tracer.f90 diff --git a/src/6.3.02/memory/mem_turb.f90 b/src/memory/mem_turb.f90 similarity index 100% rename from src/6.3.02/memory/mem_turb.f90 rename to src/memory/mem_turb.f90 diff --git a/src/6.3.02/memory/mem_varinit.f90 b/src/memory/mem_varinit.f90 similarity index 100% rename from src/6.3.02/memory/mem_varinit.f90 rename to src/memory/mem_varinit.f90 diff --git a/src/6.3.02/memory/var_tables.f90 b/src/memory/var_tables.f90 similarity index 100% rename from src/6.3.02/memory/var_tables.f90 rename to src/memory/var_tables.f90 diff --git a/src/6.3.02/memory/vtab_fill.f90 b/src/memory/vtab_fill.f90 similarity index 100% rename from src/6.3.02/memory/vtab_fill.f90 rename to src/memory/vtab_fill.f90 diff --git a/src/6.3.02/micro/aero_deposit.f90 b/src/micro/aero_deposit.f90 similarity index 99% rename from src/6.3.02/micro/aero_deposit.f90 rename to src/micro/aero_deposit.f90 index 2787abf..b078b00 100644 --- a/src/6.3.02/micro/aero_deposit.f90 +++ b/src/micro/aero_deposit.f90 @@ -91,8 +91,8 @@ Subroutine deposition_driver (i,j,m1,xztop,rtgt & rundep=0 !Set up profile of aerosol properties if they exist - if((acat==1 .and. iaerosol>0) .or. & ! CCN - (acat==2 .and. iaerosol>0) .or. & ! GCCN + if((acat==1 .and. iaerosol>0) .or. & ! CCN mode 1 + (acat==2 .and. iaerosol>0) .or. & ! CCN mode 2 (acat==3 .and. idust>0) .or. & ! Small dust mode (acat==4 .and. idust>0) .or. & ! Large dust mode (acat==5 .and. isalt>0) .or. & ! Salt film mode @@ -525,7 +525,8 @@ Subroutine cal_dwet (T,rh,ddry,dwet,vhoff,epsilonsol,rhodry,rhowet) !Equation r = A * rd ** B requires radius in microns !r100 growth equation computes in meters and needs converstion !to microns before applying to "ddry" which is in microns -!Then return radius in microns +!Then return radius in microns. ddry and dwet are actually radii +!and not diameter. implicit none @@ -598,7 +599,7 @@ Subroutine cal_dwet (T,rh,ddry,dwet,vhoff,epsilonsol,rhodry,rhowet) dwet = min(10.,dwet) !If particle swells, compute density of particle + water -volumeratio = ddry**3 / dwet**3 +volumeratio = min(1.00, ddry**3 / dwet**3) rhowet = rhodry * volumeratio + 1000. * (1.-volumeratio) if(rhowet<1000.0 .or. rhowet>2659.0 .or.rhodry<1000.0 .or. rhodry>2659.0) then diff --git a/src/6.3.02/micro/aero_include.f90 b/src/micro/aero_include.f90 similarity index 100% rename from src/6.3.02/micro/aero_include.f90 rename to src/micro/aero_include.f90 diff --git a/src/6.3.02/micro/aero_sources.f90 b/src/micro/aero_sources.f90 similarity index 100% rename from src/6.3.02/micro/aero_sources.f90 rename to src/micro/aero_sources.f90 diff --git a/src/6.3.02/micro/mic_adj.f90 b/src/micro/mic_adj.f90 similarity index 97% rename from src/6.3.02/micro/mic_adj.f90 rename to src/micro/mic_adj.f90 index e6a86ec..8604dbc 100644 --- a/src/6.3.02/micro/mic_adj.f90 +++ b/src/micro/mic_adj.f90 @@ -141,7 +141,7 @@ Subroutine adj1 (m1,m2,m3,rtp,micro,ngr) rxloss=0 !Zero out hydrometeor fields if they are below a min threshold for 2-moment - if(jnmb(lcat)>=5 .and. (rx(k,lcat) < rxmin .or. cx(k,lcat) <= 0.0)) then + if(jnmb(lcat)>=5 .and. (rx(k,lcat) < rxmin .or. cx(k,lcat) < cxmin)) then zerocheck=1 cxloss = cx(k,lcat) rxloss = rx(k,lcat) @@ -355,12 +355,12 @@ Subroutine adj1 (m1,m2,m3,rtp,micro,ngr) endif endif if(iaerosol>0)then - if(micro%cccnp(k,i,j) > maxaero) then - print*,"Too many CCN:",micro%cccnp(k,i,j) + if(micro%cn1np(k,i,j) > maxaero) then + print*,"Too many CCN1:",micro%cn1np(k,i,j) toomany=1 endif - if(micro%gccnp(k,i,j) > maxaero) then - print*,"Too many GCCN:",micro%gccnp(k,i,j) + if(micro%cn2np(k,i,j) > maxaero) then + print*,"Too many CCN2:",micro%cn2np(k,i,j) toomany=1 endif endif @@ -419,13 +419,13 @@ Subroutine adj1 (m1,m2,m3,rtp,micro,ngr) !SET SMALL VALUES TO ZERO if(iaerosol>0) then - if(micro%cccnp(k,i,j)0) then diff --git a/src/6.3.02/micro/mic_aero.f90 b/src/micro/mic_aero.f90 similarity index 92% rename from src/6.3.02/micro/mic_aero.f90 rename to src/micro/mic_aero.f90 index 5cbf2d5..66872ce 100644 --- a/src/6.3.02/micro/mic_aero.f90 +++ b/src/micro/mic_aero.f90 @@ -57,8 +57,8 @@ Subroutine aerosols () do i = ia,iz CALL aero_copy (1,mzp & - ,micro_g(ngrid)%cccnp(1,i,j),micro_g(ngrid)%cccmp(1,i,j) & - ,micro_g(ngrid)%gccnp(1,i,j),micro_g(ngrid)%gccmp(1,i,j) & + ,micro_g(ngrid)%cn1np(1,i,j),micro_g(ngrid)%cn1mp(1,i,j) & + ,micro_g(ngrid)%cn2np(1,i,j),micro_g(ngrid)%cn2mp(1,i,j) & ,micro_g(ngrid)%md1np(1,i,j),micro_g(ngrid)%md1mp(1,i,j) & ,micro_g(ngrid)%md2np(1,i,j),micro_g(ngrid)%md2mp(1,i,j) & ,micro_g(ngrid)%salt_film_np(1,i,j),micro_g(ngrid)%salt_film_mp(1,i,j) & @@ -84,8 +84,8 @@ Subroutine aerosols () ) CALL aero_copy (2,mzp & - ,micro_g(ngrid)%cccnp(1,i,j),micro_g(ngrid)%cccmp(1,i,j) & - ,micro_g(ngrid)%gccnp(1,i,j),micro_g(ngrid)%gccmp(1,i,j) & + ,micro_g(ngrid)%cn1np(1,i,j),micro_g(ngrid)%cn1mp(1,i,j) & + ,micro_g(ngrid)%cn2np(1,i,j),micro_g(ngrid)%cn2mp(1,i,j) & ,micro_g(ngrid)%md1np(1,i,j),micro_g(ngrid)%md1mp(1,i,j) & ,micro_g(ngrid)%md2np(1,i,j),micro_g(ngrid)%md2mp(1,i,j) & ,micro_g(ngrid)%salt_film_np(1,i,j),micro_g(ngrid)%salt_film_mp(1,i,j) & @@ -157,7 +157,7 @@ Subroutine aerosol_init () END SUBROUTINE aerosol_init !############################################################################## -Subroutine aero_copy (aflag,m1,cccnp,cccmp,gccnp,gccmp,md1np,md1mp & +Subroutine aero_copy (aflag,m1,cn1np,cn1mp,cn2np,cn2mp,md1np,md1mp & ,md2np,md2mp,salt_film_np,salt_film_mp,salt_jet_np & ,salt_jet_mp,salt_spum_np,salt_spum_mp & ,abc1np,abc1mp,abc2np,abc2mp) @@ -170,7 +170,7 @@ Subroutine aero_copy (aflag,m1,cccnp,cccmp,gccnp,gccmp,md1np,md1mp & implicit none integer :: m1,k,aflag -real, dimension(m1) :: cccnp,cccmp,gccnp,gccmp,md1np,md1mp & +real, dimension(m1) :: cn1np,cn1mp,cn2np,cn2mp,md1np,md1mp & ,md2np,md2mp,salt_film_np,salt_film_mp,salt_jet_np & ,salt_jet_mp,salt_spum_np,salt_spum_mp & ,abc1np,abc1mp,abc2np,abc2mp @@ -185,10 +185,10 @@ Subroutine aero_copy (aflag,m1,cccnp,cccmp,gccnp,gccmp,md1np,md1mp & !Fill scratch arrays for aerosol modes for level=1,2 do k = 1,m1-1 if (iaerosol > 0) then - aerocon(k,1) = cccnp(k) - aeromas(k,1) = cccmp(k) - aerocon(k,2) = gccnp(k) - aeromas(k,2) = gccmp(k) + aerocon(k,1) = cn1np(k) + aeromas(k,1) = cn1mp(k) + aerocon(k,2) = cn2np(k) + aeromas(k,2) = cn2mp(k) endif if (idust > 0) then aerocon(k,3) = md1np(k) @@ -216,10 +216,10 @@ Subroutine aero_copy (aflag,m1,cccnp,cccmp,gccnp,gccmp,md1np,md1mp & !Copy back scratch arrays to aerosol modes for level=1,2 do k = 1,m1-1 if (iaerosol > 0) then - cccnp(k) = aerocon(k,1) - cccmp(k) = aeromas(k,1) - gccnp(k) = aerocon(k,2) - gccmp(k) = aeromas(k,2) + cn1np(k) = aerocon(k,1) + cn1mp(k) = aeromas(k,1) + cn2np(k) = aerocon(k,2) + cn2mp(k) = aeromas(k,2) endif if (idust > 0) then md1np(k) = aerocon(k,3) diff --git a/src/6.3.02/micro/mic_chknan.f90 b/src/micro/mic_chknan.f90 similarity index 94% rename from src/6.3.02/micro/mic_chknan.f90 rename to src/micro/mic_chknan.f90 index aac82ee..1a29a31 100644 --- a/src/6.3.02/micro/mic_chknan.f90 +++ b/src/micro/mic_chknan.f90 @@ -73,22 +73,22 @@ Subroutine checkmicro (string) isnanr(micro_g(ngrid)%salt_jet_mp(k,i,j)) .or. & isnanr(micro_g(ngrid)%salt_spum_mp(k,i,j)) ) prtflg=1 endif - !CHECK CCN AND GCCN + !CHECK CCN Modes if(iaerosol > 0)then - if(isnanr(micro_g(ngrid)%cccnp(k,i,j)) .or. & - isnanr(micro_g(ngrid)%cccmp(k,i,j)) .or. & - isnanr(micro_g(ngrid)%gccnp(k,i,j)) .or. & - isnanr(micro_g(ngrid)%gccmp(k,i,j)) ) prtflg=1 - tempvar = valugp(mzp,mxp,myp,k,i,j,tend%cccnt(1)) + if(isnanr(micro_g(ngrid)%cn1np(k,i,j)) .or. & + isnanr(micro_g(ngrid)%cn1mp(k,i,j)) .or. & + isnanr(micro_g(ngrid)%cn2np(k,i,j)) .or. & + isnanr(micro_g(ngrid)%cn2mp(k,i,j)) ) prtflg=1 + tempvar = valugp(mzp,mxp,myp,k,i,j,tend%cn1nt(1)) if(isnanr(tempvar)) prtflg=1 if(tempvar>1.e30) prtflg=1 - tempvar = valugp(mzp,mxp,myp,k,i,j,tend%cccmt(1)) + tempvar = valugp(mzp,mxp,myp,k,i,j,tend%cn1mt(1)) if(isnanr(tempvar)) prtflg=1 if(tempvar>1.e30) prtflg=1 - tempvar = valugp(mzp,mxp,myp,k,i,j,tend%gccnt(1)) + tempvar = valugp(mzp,mxp,myp,k,i,j,tend%cn2nt(1)) if(isnanr(tempvar)) prtflg=1 if(tempvar>1.e30) prtflg=1 - tempvar = valugp(mzp,mxp,myp,k,i,j,tend%gccmt(1)) + tempvar = valugp(mzp,mxp,myp,k,i,j,tend%cn2mt(1)) if(isnanr(tempvar)) prtflg=1 if(tempvar>1.e30) prtflg=1 endif @@ -348,7 +348,7 @@ Subroutine checkmicro (string) if(prtflg==1)then print*,'Checked After: ',string - print*,'NAN Check (ngrid,k,j,i)',ngrid,k,j+mj0(ngrid),i+mi0(ngrid) + print*,'NAN Check (ngrid,k,i,j)',ngrid,k,i+mi0(ngrid),j+mj0(ngrid) print*,'wp: ',basic_g(ngrid)%wp(k,i,j) print*,'wc: ',basic_g(ngrid)%wc(k,i,j) @@ -376,14 +376,14 @@ Subroutine checkmicro (string) print*,'cifnp-tend: ',valugp(mzp,mxp,myp,k,i,j,tend%cifnt(1)) endif if(iaerosol > 0)then - print*,'cccnp: ',micro_g(ngrid)%cccnp(k,i,j) - print*,'cccnp-tend: ',valugp(mzp,mxp,myp,k,i,j,tend%cccnt(1)) - print*,'cccmp: ',micro_g(ngrid)%cccmp(k,i,j) - print*,'cccmp-tend: ',valugp(mzp,mxp,myp,k,i,j,tend%cccmt(1)) - print*,'gccnp: ',micro_g(ngrid)%gccnp(k,i,j) - print*,'gccnp-tend: ',valugp(mzp,mxp,myp,k,i,j,tend%gccnt(1)) - print*,'gccmp: ',micro_g(ngrid)%gccmp(k,i,j) - print*,'gccmp-tend: ',valugp(mzp,mxp,myp,k,i,j,tend%gccmt(1)) + print*,'cn1np: ',micro_g(ngrid)%cn1np(k,i,j) + print*,'cn1np-tend: ',valugp(mzp,mxp,myp,k,i,j,tend%cn1nt(1)) + print*,'cn1mp: ',micro_g(ngrid)%cn1mp(k,i,j) + print*,'cn1mp-tend: ',valugp(mzp,mxp,myp,k,i,j,tend%cn1mt(1)) + print*,'cn2np: ',micro_g(ngrid)%cn2np(k,i,j) + print*,'cn2np-tend: ',valugp(mzp,mxp,myp,k,i,j,tend%cn2nt(1)) + print*,'cn2mp: ',micro_g(ngrid)%cn2mp(k,i,j) + print*,'cn2mp-tend: ',valugp(mzp,mxp,myp,k,i,j,tend%cn2mt(1)) endif if(idust > 0)then print*,'md1np: ',micro_g(ngrid)%md1np(k,i,j) diff --git a/src/6.3.02/micro/mic_coll.f90 b/src/micro/mic_coll.f90 similarity index 95% rename from src/6.3.02/micro/mic_coll.f90 rename to src/micro/mic_coll.f90 index 2134c4a..81ea013 100644 --- a/src/6.3.02/micro/mic_coll.f90 +++ b/src/micro/mic_coll.f90 @@ -564,6 +564,15 @@ Subroutine effxy (m1,k1,k2) integer :: m1,k,ncall7 integer, dimension(11) :: k1,k2 data ncall7/0/ + +integer :: etmp +real :: wt1,wt2,tagg +real, dimension(12) :: temps,efftemp +! Celcius temperature +data temps / 0., -5., -10., -14., -15., -16., -20., -25., -30., -35., -40., -50./ +! Aggregation efficiency +data efftemp /0.20, 0.15, 0.20, 0.60, 0.65, 0.60, 0.10, 0.08, 0.06, 0.04, 0.025, 0.020/ + save ! 1 = rp,rs,ra,rg,rh @@ -604,32 +613,54 @@ Subroutine effxy (m1,k1,k2) ! 4 = pp,ps,pa if (jnmb(5) .ge. 1) then do k = k1(3),k2(3) - if (abs(tx(k,3)+14.) .le. 2.) then - eff(k,4) = 1.4 - else - eff(k,4) = min(0.2,10. ** (0.035 * tx(k,3) - 0.7)) + tagg = tx(k,3) + if (tagg <= -50.0) then + tagg = -50.0 + elseif (tagg >= 0.0) then + tagg = 0.0 endif + do etmp=1,11 + if ( (tagg <= temps(etmp)) .and. (tagg >= temps(etmp+1)) )then + wt1=abs( (tagg-temps(etmp)) / (temps(etmp)-temps(etmp+1)) ) + wt2=1.0-wt1 + eff(k,4) = wt2*efftemp(etmp) + wt1*efftemp(etmp+1) + endif + enddo enddo ! 5 = ss,sa do k = k1(4),k2(4) - if (abs(tx(k,4)+14.) .le. 2.) then - eff(k,5) = 1.4 - else - eff(k,5) = min(0.2,10. ** (0.035 * tx(k,4) - 0.7)) + tagg = tx(k,4) + if (tagg <= -50.0) then + tagg = -50.0 + elseif (tagg >= 0.0) then + tagg = 0.0 endif + do etmp=1,11 + if ( (tagg <= temps(etmp)) .and. (tagg >= temps(etmp+1)) )then + wt1=abs( (tagg-temps(etmp)) / (temps(etmp)-temps(etmp+1)) ) + wt2=1.0-wt1 + eff(k,5) = wt2*efftemp(etmp) + wt1*efftemp(etmp+1) + endif + enddo enddo ! 6 = aa do k = k1(5),k2(5) if (rx(k,5) .ge. rxmin) then - if (abs(tx(k,5)+14.) .le. 2.) then - eff(k,6) = 1.4 - elseif (tx(k,5) .ge. -1.) then - eff(k,6) = 1. - else - eff(k,6) = min(0.2,10. ** (0.035 * tx(k,5) - 0.7)) + tagg = tx(k,5) + if (tagg <= -50.0) then + tagg = -50.0 + elseif (tagg >= 0.0) then + tagg = 0.0 endif + do etmp=1,11 + if ( (tagg <= temps(etmp)) .and. (tagg >= temps(etmp+1)) )then + wt1=abs( (tagg-temps(etmp)) / (temps(etmp)-temps(etmp+1)) ) + wt2=1.0-wt1 + eff(k,6) = wt2*efftemp(etmp) + wt1*efftemp(etmp+1) + endif + enddo endif enddo endif @@ -640,7 +671,19 @@ Subroutine effxy (m1,k1,k2) if (qr(k,6) .gt. 0.) then eff(k,7) = 1.0 else - eff(k,7) = min(0.2,10. ** (0.035 * tx(k,6) - 0.7)) + tagg = tx(k,6) + if (tagg <= -50.0) then + tagg = -50.0 + elseif (tagg >= 0.0) then + tagg = 0.0 + endif + do etmp=1,11 + if ( (tagg <= temps(etmp)) .and. (tagg >= temps(etmp+1)) )then + wt1=abs( (tagg-temps(etmp)) / (temps(etmp)-temps(etmp+1)) ) + wt2=1.0-wt1 + eff(k,7) = wt2*efftemp(etmp) + wt1*efftemp(etmp+1) + endif + enddo endif enddo endif @@ -652,7 +695,19 @@ Subroutine effxy (m1,k1,k2) if (qr(k,7) .gt. 0.) then eff(k,8) = 1.0 else - eff(k,8) = min(0.2,10. ** (0.035 * tx(k,7) - 0.7)) + tagg = tx(k,7) + if (tagg <= -50.0) then + tagg = -50.0 + elseif (tagg >= 0.0) then + tagg = 0.0 + endif + do etmp=1,11 + if ( (tagg <= temps(etmp)) .and. (tagg >= temps(etmp+1)) )then + wt1=abs( (tagg-temps(etmp)) / (temps(etmp)-temps(etmp+1)) ) + wt2=1.0-wt1 + eff(k,8) = wt2*efftemp(etmp) + wt1*efftemp(etmp+1) + endif + enddo endif endif enddo diff --git a/src/6.3.02/micro/mic_driv.f90 b/src/micro/mic_driv.f90 similarity index 92% rename from src/6.3.02/micro/mic_driv.f90 rename to src/micro/mic_driv.f90 index 55736cb..2286be5 100644 --- a/src/6.3.02/micro/mic_driv.f90 +++ b/src/micro/mic_driv.f90 @@ -250,6 +250,14 @@ Subroutine mcphys (m1,k1,k2,k3,i,j,ngr,maxnzp & data dpcp0 /.001,.001,.010,.010,.010,.003,.001,.001/ save +!Output some data for diagnostic purposes +!if(i==4)then +! do k=2,38 +! print*,'ice_start',k,(theta(k) * (pi0(k)+pp(k)) / 1004.) - 273.16 & +! ,rx(k,3)+rx(k,4),(cx(k,3)+cx(k,4))*dn0(k)/1000. +! enddo +!endif + ! Compute pressure, temperature, and moisture for vapor diffusion CALL thrmstr (m1,k1,k2,thp(1),theta(1),rtp(1),rv(1) & ,pp(1),pi0(1) & @@ -420,6 +428,12 @@ Subroutine mcphys (m1,k1,k2,k3,i,j,ngr,maxnzp & ! Make hydrometeor transfers due to collision-coalescence CALL colxfers (m1,k1,k2,scrmic1,scrmic2) +! Pristine ice to snow transfer done after collision-coalescence to +! avoid any mass/number adjustments that impact cloud-ice number +if (jnmb(4) .ge. 1) then + CALL psxfer (k1(3),k2(3),k1(4),k2(4),i,j) +endif + ! Calcs r,q,c for each category considering melting processes ! in the order of pristine,cloud,drizzle,snow,agg,graupel,hail,rain ! though nothing done for cloud or drizzle in (x02) routine @@ -473,6 +487,14 @@ Subroutine mcphys (m1,k1,k2,k3,i,j,ngr,maxnzp & ,dn0(1),dtlt,i,j) endif +!Output some data for diagnostic purposes +!if(i==4)then +! do k=2,38 +! print*,'ice_nuc',k,(theta(k) * (pi0(k)+pp(k)) / 1004.) - 273.16 & +! ,rx(k,3)+rx(k,4),(cx(k,3)+cx(k,4))*dn0(k)/1000. +! enddo +!endif + ! Finds bottom and top later of pristine ice if (jnmb(3) .ge. 1) then k1(3) = min(k1(3),k1pnuc) @@ -485,6 +507,13 @@ Subroutine mcphys (m1,k1,k2,k3,i,j,ngr,maxnzp & if (jnmb(1) .ge. 3) CALL enemb (m1,k1,k2,1,dn0(1)) if (jnmb(8) .ge. 3) CALL enemb (m1,k1,k2,8,dn0(1)) +!if(i==4)then +! do k=2,38 +! print*,'ice_presed',k,(theta(k) * (pi0(k)+pp(k)) / 1004.) - 273.16 & +! ,rx(k,3)+rx(k,4),(cx(k,3)+cx(k,4))*dn0(k)/1000. +! enddo +!endif + ! Update latent heating budgets after ice nucleation CALL calc_lhr_icenuc (k1,k2) @@ -537,6 +566,14 @@ Subroutine mcphys (m1,k1,k2,k3,i,j,ngr,maxnzp & ,ustar(1),prough(1),imonthx & ) +!Output some data for diagnostic purposes +!if(i==4)then +! do k=2,38 +! print*,'ice_last',k,(theta(k) * (pi0(k)+pp(k)) / 1004.) - 273.16 & +! ,rx(k,3)+rx(k,4),(cx(k,3)+cx(k,4))*dn0(k)/1000. +! enddo +!endif + return END SUBROUTINE mcphys @@ -567,10 +604,10 @@ Subroutine copyback (m1,k2,k3,i,j,micro) !Copyback AEROSOLS if (iaerosol > 0) then - CALL ae1kmic (2,m1-1,micro%cccnp(1,i,j),aerocon(1,1)) - CALL ae1kmic (2,m1-1,micro%cccmp(1,i,j),aeromas(1,1)) - CALL ae1kmic (2,m1-1,micro%gccnp(1,i,j),aerocon(1,2)) - CALL ae1kmic (2,m1-1,micro%gccmp(1,i,j),aeromas(1,2)) + CALL ae1kmic (2,m1-1,micro%cn1np(1,i,j),aerocon(1,1)) + CALL ae1kmic (2,m1-1,micro%cn1mp(1,i,j),aeromas(1,1)) + CALL ae1kmic (2,m1-1,micro%cn2np(1,i,j),aerocon(1,2)) + CALL ae1kmic (2,m1-1,micro%cn2mp(1,i,j),aeromas(1,2)) endif if (idust > 0) then CALL ae1kmic (2,m1-1,micro%md1np(1,i,j),aerocon(1,3)) @@ -750,6 +787,10 @@ Subroutine copyback (m1,k2,k3,i,j,micro) CALL ae1kmic (1,m1,micro%nucicert(1,i,j),xnucicert(1)) CALL ae1kmic (1,m1,micro%vapliqt(1,i,j),xvapliqt(1)) CALL ae1kmic (1,m1,micro%vapicet(1,i,j),xvapicet(1)) + CALL ae1kmic (1,m1,micro%evapliqt(1,i,j),xevapliqt(1)) + CALL ae1kmic (1,m1,micro%evapicet(1,i,j),xevapicet(1)) + CALL ae1kmic (1,m1,micro%freezingt(1,i,j),xfreezingt(1)) + CALL ae1kmic (1,m1,micro%meltingt(1,i,j),xmeltingt(1)) CALL ae1kmic (1,m1,micro%melticet(1,i,j),xmelticet(1)) CALL ae1kmic (1,m1,micro%rimecldt(1,i,j),xrimecldt(1)) CALL ae1kmic (1,m1,micro%rain2icet(1,i,j),xrain2icet(1)) @@ -770,6 +811,14 @@ Subroutine copyback (m1,k2,k3,i,j,micro) CALL ae1kmic (1,m1,micro%vapgraut(1,i,j),xvapgraut(1)) CALL ae1kmic (1,m1,micro%vaphailt(1,i,j),xvaphailt(1)) CALL ae1kmic (1,m1,micro%vapdrizt(1,i,j),xvapdrizt(1)) + CALL ae1kmic (1,m1,micro%evapcldt(1,i,j),xevapcldt(1)) + CALL ae1kmic (1,m1,micro%evapraint(1,i,j),xevapraint(1)) + CALL ae1kmic (1,m1,micro%evapprist(1,i,j),xevapprist(1)) + CALL ae1kmic (1,m1,micro%evapsnowt(1,i,j),xevapsnowt(1)) + CALL ae1kmic (1,m1,micro%evapaggrt(1,i,j),xevapaggrt(1)) + CALL ae1kmic (1,m1,micro%evapgraut(1,i,j),xevapgraut(1)) + CALL ae1kmic (1,m1,micro%evaphailt(1,i,j),xevaphailt(1)) + CALL ae1kmic (1,m1,micro%evapdrizt(1,i,j),xevapdrizt(1)) CALL ae1kmic (1,m1,micro%meltprist(1,i,j),xmeltprist(1)) CALL ae1kmic (1,m1,micro%meltsnowt(1,i,j),xmeltsnowt(1)) CALL ae1kmic (1,m1,micro%meltaggrt(1,i,j),xmeltaggrt(1)) @@ -805,6 +854,10 @@ Subroutine copyback (m1,k2,k3,i,j,micro) micro%nucicert(1,i,j) = micro%nucicert(2,i,j) micro%vapliqt(1,i,j) = micro%vapliqt(2,i,j) micro%vapicet(1,i,j) = micro%vapicet(2,i,j) + micro%evapliqt(1,i,j) = micro%evapliqt(2,i,j) + micro%evapicet(1,i,j) = micro%evapicet(2,i,j) + micro%freezingt(1,i,j) = micro%freezingt(2,i,j) + micro%meltingt(1,i,j) = micro%meltingt(2,i,j) micro%melticet(1,i,j) = micro%melticet(2,i,j) micro%rimecldt(1,i,j) = micro%rimecldt(2,i,j) micro%rain2icet(1,i,j) = micro%rain2icet(2,i,j) @@ -825,6 +878,14 @@ Subroutine copyback (m1,k2,k3,i,j,micro) micro%vapgraut(1,i,j) = micro%vapgraut(2,i,j) micro%vaphailt(1,i,j) = micro%vaphailt(2,i,j) micro%vapdrizt(1,i,j) = micro%vapdrizt(2,i,j) + micro%evapcldt(1,i,j) = micro%evapcldt(2,i,j) + micro%evapraint(1,i,j) = micro%evapraint(2,i,j) + micro%evapprist(1,i,j) = micro%evapprist(2,i,j) + micro%evapsnowt(1,i,j) = micro%evapsnowt(2,i,j) + micro%evapaggrt(1,i,j) = micro%evapaggrt(2,i,j) + micro%evapgraut(1,i,j) = micro%evapgraut(2,i,j) + micro%evaphailt(1,i,j) = micro%evaphailt(2,i,j) + micro%evapdrizt(1,i,j) = micro%evapdrizt(2,i,j) micro%meltprist(1,i,j) = micro%meltprist(2,i,j) micro%meltsnowt(1,i,j) = micro%meltsnowt(2,i,j) micro%meltaggrt(1,i,j) = micro%meltaggrt(2,i,j) @@ -871,7 +932,7 @@ Subroutine calc_lhr_vap (k1,k2) integer :: lcat,k integer, dimension(11) :: k1,k2 -real :: temp,fracliq1,fracliq2,latheat +real :: temp,fracliq1,fracliq2,latheat,rxchange if(imbudget>=1)then @@ -922,14 +983,22 @@ Subroutine calc_lhr_vap (k1,k2) ! Now calculate melting if (lhrtheta) then - latheat = (alli/pitot(k)) * (rx(k,lcat) & - *(1.-fracliq2)-rx(k,lcat)*(1.-fracliq1)) + latheat = (alli/pitot(k)) * & + (rx(k,lcat)*(1.-fracliq2)-rx(k,lcat)*(1.-fracliq1)) else - latheat = alli * cpi * (rx(k,lcat) & - *(1.-fracliq2)-rx(k,lcat)*(1.-fracliq1)) + latheat = alli * cpi * & + (rx(k,lcat)*(1.-fracliq2)-rx(k,lcat)*(1.-fracliq1)) endif xlatheatfrz(k) = xlatheatfrz(k) + latheat xlatheatfrzt(k) = xlatheatfrzt(k) + latheat + + ! Compute total freezing or melting and enter as positive values + rxchange = (rx(k,lcat)*(1.-fracliq2)-rx(k,lcat)*(1.-fracliq1)) + if (rxchange >= 0.0) then + xfreezingt(k) = xfreezingt(k) + rxchange + else + xmeltingt(k) = xmeltingt(k) - rxchange + endif endif enddo @@ -1001,6 +1070,12 @@ Subroutine calc_lhr_collmelt (m1) xlatheatfrz(k) = xlatheatfrz(k) + alli * cpi * (rice2(k)-rice1(k)) xlatheatfrzt(k) = xlatheatfrzt(k) + alli * cpi * (rice2(k)-rice1(k)) endif + ! Compute total freezing or melting and enter as positive values + if (rice2(k)-rice1(k) >= 0.0) then + xfreezingt(k) = xfreezingt(k) + (rice2(k)-rice1(k)) + else + xmeltingt(k) = xmeltingt(k) - (rice2(k)-rice1(k)) + endif enddo endif diff --git a/src/6.3.02/micro/mic_gamma.f90 b/src/micro/mic_gamma.f90 similarity index 100% rename from src/6.3.02/micro/mic_gamma.f90 rename to src/micro/mic_gamma.f90 diff --git a/src/6.3.02/micro/mic_init.f90 b/src/micro/mic_init.f90 similarity index 81% rename from src/6.3.02/micro/mic_init.f90 rename to src/micro/mic_init.f90 index fcffe9f..2bcaa7a 100644 --- a/src/6.3.02/micro/mic_init.f90 +++ b/src/micro/mic_init.f90 @@ -151,9 +151,17 @@ Subroutine init_ifn (n1,n2,n3,cifnp,dn0,ifm) implicit none integer :: n1,n2,n3,i,j,k,ifm +real :: e_a,e_b,e_t,e_k,e_c real, dimension(n1,n2,n3) :: cifnp,dn0 real :: cin_maxt +!CREATE YOUR OWN CUSTOM POTENTIAL IFN/INP PROFILE BELOW. OUR SORT OF +!DEFAULT IS THE EXPONENTIALLY DECREASING PROFILE, BUT THIS IS BY ALL +!MEANS NOT A DEFINITIVE PROFILE, JUST A NECESSARY PLACEHOLDER SO THAT +!SOME HETEROGENEOUS ICE NUCLEATION CAN OCCUR IF IIFN==1or2. IIFN==3 +!USES ONE OF THE DEMOTT FORMULAS AND IS BASED ON LARGE AEROSOLS DETERMINED +!FROM THE CLOUD DROPLET NUCLEATING AEROSOL DISTRIBUTIONS. + ! Initialize IFN if(iaeroprnt==1 .and. print_msg) then print*,'Start Initializing Ice Nuclei concentration' @@ -166,11 +174,14 @@ Subroutine init_ifn (n1,n2,n3,cifnp,dn0,ifm) !Convert RAMSIN #/mg to #/kg cin_maxt = cin_max * 1.e6 + !!!!JB commented out extra if statement below for SPICULE/MC3E IFN !!!! + !if (cin_max >= 0.0) then + !Set up Vertical profile if(k<=2) cifnp(k,i,j)=cin_maxt ! Exponential decrease that scales with pressure decrease if(k>2) cifnp(k,i,j)=cin_maxt*exp(-zt(k)/cin_sh) - + !Output initial sample profile if(iaeroprnt==1 .and. i==1 .and. j==1 .and. print_msg) then if(k==1) print*,' Ice Nuclei - init (k,zt,ifn/kg,ifn/L) on Grid:',ifm @@ -178,7 +189,60 @@ Subroutine init_ifn (n1,n2,n3,cifnp,dn0,ifm) ,k,zt(k),cifnp(k,i,j),cifnp(k,i,j)/1.e3*dn0(k,i,j) endif - +!!!! JB start comment out SPICULE/MC3E INP profiles from V6.3.04 !!!! +!!!! INCUS is using idealized profiles set in lines [174-187] !!!! +!!!! above and not these observations !!!! + + !!*************************************************************************** + !!Use SPICULE INP profile if cin_maxt ~ -1.0 + !!Profile from aircraft obs during the SPICULE field campaign. + !!To mimic the SPICULE profile in magnitude, need to set the following parameters. + !!and use IIFN=2 for DeMott scheme, and IFN_FORMULA=2 for DeMott(2015) dust formula. + !!Perhaps using this profile is more realistic given that is has basis + !!in reality from observations of the central-western continental U.S. + + !elseif (cin_max > -1.01 .and. cin_max < -0.99) then + ! e_t = 0.10 ! Controls the shape of the profile + ! e_a = 2.50 ! approximately cin_maxt + ! e_k = 3.80 + ! e_b = 5.80 ! Level where you want profile to start decreasing + ! e_c = 1.32 ! Necessary so you do not get negative numbers (changes with "a") + ! cifnp(k,i,j)=(-1.0*(e_a/2.0)*(erf(((zt(k)/1000)-e_b)/sqrt(4.0*e_k*e_t)))+e_c) + ! !NOTE THAT THIS CURVE FIT TO DATA IS BASED ON #/CM3 UNITS, SO CONVERT BELOW + ! cifnp(k,i,j) = cifnp(k,i,j) * 1.e6 / dn0(k,i,j) ! convert #/cm3 to #/kg + ! !Output initial sample profile + ! if(iaeroprnt==1 .and. i==1 .and. j==1 .and. print_msg) then + ! if(k==1) print*,' Ice Nuclei - init (k,zt,inp/cm3,inp/mg,inp/L) on Grid:',ifm + ! print'(a9,i5,f11.1,3f12.3)',' IFN-init',k,zt(k) & + ! ,cifnp(k,i,j)/1.e6*dn0(k,i,j),cifnp(k,i,j)/1.e6,cifnp(k,i,j)/1.e3*dn0(k,i,j) + ! endif + + !!*************************************************************************** + !!Use MC3E INP profile if cin_maxt ~ 2.0 + !!Profile from aircraft obs during the MC3E field project. (Marinescu et al. 2016) + !!To mimic the MC3E profile in magnitude, need to set the following parameters. + !!and use IIFN=2 for DeMott scheme, and IFN_FORMULA=1 for DeMott(2010) general formula. + !!Perhaps using this profile is more realistic given that is has basis + !!in reality from observations in the southern great plains of the continental U.S. + !elseif (cin_max > -2.01 .and. cin_max < -1.99) then + !e_t = 0.35 ! Controls the shape of the profile + !e_a = 3.28 ! approximately cin_maxt + !e_k = 3.00 + !e_b = 2.27 ! Level where you want profile to start decreasing + !e_c = 1.96 ! Necessary so you do not get negative numbers (changes with "a") + !cifnp(k,i,j)=(-1.0*(e_a/2.0)*(erf(((zt(k)/1000)-e_b)/sqrt(4.0*e_k*e_t)))+e_c) + !!NOTE THAT THIS CURVE FIT TO DATA IS BASED ON #/MG UNITS, SO CONVERT BELOW + !cifnp(k,i,j) = cifnp(k,i,j) * 1.e6 ! convert #/mg to #/kg + !!Output initial sample profile + !if(iaeroprnt==1 .and. i==1 .and. j==1 .and. print_msg) then + ! if(k==1) print*,' Ice Nuclei - init (k,zt,inp/cm3,inp/mg,inp/L) on Grid:',ifm + ! print'(a9,i5,f11.1,3f12.3)',' IFN-init',k,zt(k) & + ! ,cifnp(k,i,j)/1.e6*dn0(k,i,j),cifnp(k,i,j)/1.e6,cifnp(k,i,j)/1.e3*dn0(k,i,j) + !endif + !!*************************************************************************** + +!!!! JB end comment out SPICULE/MC3E INP profiles !!!! + enddo enddo enddo @@ -189,7 +253,7 @@ Subroutine init_ifn (n1,n2,n3,cifnp,dn0,ifm) END SUBROUTINE init_ifn !############################################################################## -Subroutine init_ccn (n1,n2,n3,cccnp,cccmp,dn0,ifm) +Subroutine init_ccn1 (n1,n2,n3,cn1np,cn1mp,dn0,ifm) use micphys use rconstants @@ -198,15 +262,15 @@ Subroutine init_ccn (n1,n2,n3,cccnp,cccmp,dn0,ifm) implicit none integer :: n1,n2,n3,i,j,k,ifm -real, dimension(n1,n2,n3) :: cccnp,cccmp,dn0 -real :: ccn_maxt,ccn_ftt real :: ft_hgt ! PJM - height of free tropsophere (boundary layer height + transition depth) +real, dimension(n1,n2,n3) :: cn1np,cn1mp,dn0 +real :: ccn1_maxt,ccn_ftt -! Initialize CCN -if(iaeroprnt==1 .and. print_msg) print*,'Start Initializing CCN concentration' +! Initialize CCN mode 1 +if(iaeroprnt==1 .and. print_msg) print*,'Start Initializing CCN mode 1 concen' !Convert RAMSIN #/mg to #/kg - ccn_maxt = ccn_max * 1.e6 + ccn1_maxt = ccn1_max * 1.e6 ccn_ftt = ccn_ft * 1.e6 do j = 1,n3 @@ -214,18 +278,18 @@ Subroutine init_ccn (n1,n2,n3,cccnp,cccmp,dn0,ifm) do k = 1,n1 !Set up Vertical profile - if(k<=2) cccnp(k,i,j)=ccn_maxt + if(k<=2) cn1np(k,i,j)=ccn1_maxt if(iccn_prof==1) then !Exponential decrease that scales with pressure decrease - if(k>2) cccnp(k,i,j)=ccn_maxt*exp(-zt(k)/ccn_sh) + if(k>2) cn1np(k,i,j)=ccn1_maxt*exp(-zt(k)/ccn_sh) ! PJM Added more realistic aerosol profile (loosely based on observed vertical profiles) elseif(iccn_prof==2) then !More realistic profile, with constant ccn in boundary layer and exp. decr. above boundary layer - if(zt(k)<=bl_hgt) cccnp(k,i,j) = ccn_maxt ! Constant ccn conc. in boundary layer + if(zt(k)<=bl_hgt) cn1np(k,i,j) = ccn1_maxt ! Constant ccn conc. in boundary layer - if(zt(k)>bl_hgt) cccnp(k,i,j) = ccn_maxt * exp(-zt(k)/ccn_sh) ! Exponential decrease that scales with height + if(zt(k)>bl_hgt) cn1np(k,i,j) = ccn1_maxt * exp(-zt(k)/ccn_sh) ! Exponential decrease that scales with height ! PJM Added more realistic aerosol profile (loosely based on observed vertical profiles) elseif(iccn_prof==3) then @@ -233,28 +297,28 @@ Subroutine init_ccn (n1,n2,n3,cccnp,cccmp,dn0,ifm) !troposphere value, and decreasing to the model top ft_hgt = bl_hgt + tran_depth ! Calculate free troposphere height - if(zt(k)<=bl_hgt) cccnp(k,i,j) = ccn_maxt ! Constant ccn conc. in boundary layer + if(zt(k)<=bl_hgt) cn1np(k,i,j) = ccn1_maxt ! Constant ccn conc. in boundary layer ! Linear decrease during transition depth to free tropospheric value - if(zt(k)>bl_hgt .and. zt(k)<= ft_hgt) cccnp(k,i,j) = (ccn_maxt - & - ((ccn_maxt - ccn_ftt) * (zt(k)-bl_hgt) / tran_depth)) + if(zt(k)>bl_hgt .and. zt(k)<= ft_hgt) cn1np(k,i,j) = (ccn1_maxt - & + ((ccn1_maxt - ccn_ftt) * (zt(k)-bl_hgt) / tran_depth)) ! Linear decrease from free troposphere to 0 to the model top - if(zt(k)> ft_hgt) cccnp(k,i,j) = (ccn_ftt - (ccn_ftt * & + if(zt(k)> ft_hgt) cn1np(k,i,j) = (ccn_ftt - (ccn_ftt * & (zt(k) - ft_hgt) / (zt(n1) - ft_hgt))) endif !Output initial sample profile if(iaeroprnt==1 .and. i==1 .and. j==1 .and. print_msg) then - if(k==1) print*,' CCN-init (k,zt,ccn/mg,ccn/cc) on Grid:',ifm - print'(a9,i5,f11.1,2f17.7)',' CCN-init' & - ,k,zt(k),cccnp(k,i,j)/1.e6,cccnp(k,i,j)/1.e6*dn0(k,i,j) + if(k==1) print*,' CCN-1-init (k,zt,ccn1/mg,ccn1/cc) on Grid:',ifm + print'(a11,i5,f11.1,2f17.7)',' CCN-1-init' & + ,k,zt(k),cn1np(k,i,j)/1.e6,cn1np(k,i,j)/1.e6*dn0(k,i,j) endif - !Set up Field of CCN mass mixing ratio (kg/kg) - cccmp(k,i,j) = ((aero_medrad(1)*aero_rg2rm(1))**3.) & - *cccnp(k,i,j)/(0.23873/aero_rhosol(1)) + !Set up Field of CCN-mode-1 mass mixing ratio (kg/kg) + cn1mp(k,i,j) = ((aero_medrad(1)*aero_rg2rm(1))**3.) & + *cn1np(k,i,j)/(0.23873/aero_rhosol(1)) enddo enddo @@ -263,10 +327,10 @@ Subroutine init_ccn (n1,n2,n3,cccnp,cccmp,dn0,ifm) if(iaeroprnt==1 .and. print_msg) print*,' ' return -END SUBROUTINE init_ccn +END SUBROUTINE init_ccn1 !############################################################################## -Subroutine init_gccn (n1,n2,n3,gccnp,gccmp,dn0,ifm) +Subroutine init_ccn2 (n1,n2,n3,cn2np,cn2mp,dn0,ifm) use micphys use rconstants @@ -275,34 +339,34 @@ Subroutine init_gccn (n1,n2,n3,gccnp,gccmp,dn0,ifm) implicit none integer :: n1,n2,n3,i,j,k,ifm -real, dimension(n1,n2,n3) :: gccnp,gccmp,dn0 -real :: gccn_maxt +real, dimension(n1,n2,n3) :: cn2np,cn2mp,dn0 +real :: ccn2_maxt -! Initialize Giant-CCN -if(iaeroprnt==1 .and. print_msg) print*,'Start Initializing GCCN concentration' +! Initialize CCN mode 2 +if(iaeroprnt==1 .and. print_msg) print*,'Start Initializing CCN mode 2 concen' !Convert RAMSIN #/mg to #/kg - gccn_maxt = gccn_max * 1.e6 + ccn2_maxt = ccn2_max * 1.e6 do j = 1,n3 do i = 1,n2 do k = 1,n1 !Set up Vertical profile - if(k<=2) gccnp(k,i,j)=gccn_maxt + if(k<=2) cn2np(k,i,j)=ccn2_maxt ! Exponential decrease that scales with pressure decrease - if(k>2) gccnp(k,i,j)=gccn_maxt*exp(-zt(k)/7000.) + if(k>2) cn2np(k,i,j)=ccn2_maxt*exp(-zt(k)/7000.) !Output initial sample profile if(iaeroprnt==1 .and. i==1 .and. j==1 .and. print_msg) then - if(k==1) print*,' GCCN-init (k,zt,gccn/mg,gccn/cc) on Grid:',ifm - print'(a10,i5,f11.1,2f17.7)',' GCCN-init' & - ,k,zt(k),gccnp(k,i,j)/1.e6,gccnp(k,i,j)/1.e6*dn0(k,i,j) + if(k==1) print*,' CCN-2-init (k,zt,ccn2/mg,ccn2/cc) on Grid:',ifm + print'(a11,i5,f11.1,2f17.7)',' CCN-2-init' & + ,k,zt(k),cn2np(k,i,j)/1.e6,cn2np(k,i,j)/1.e6*dn0(k,i,j) endif - !Set up Field of GCCN mass mixing ratio (kg/kg) - gccmp(k,i,j) = ((aero_medrad(2)*aero_rg2rm(2))**3.) & - *gccnp(k,i,j)/(0.23873/aero_rhosol(2)) + !Set up Field of CCN-mode-2 mass mixing ratio (kg/kg) + cn2mp(k,i,j) = ((aero_medrad(2)*aero_rg2rm(2))**3.) & + *cn2np(k,i,j)/(0.23873/aero_rhosol(2)) enddo enddo @@ -311,7 +375,7 @@ Subroutine init_gccn (n1,n2,n3,gccnp,gccmp,dn0,ifm) if(iaeroprnt==1 .and. print_msg) print*,' ' return -END SUBROUTINE init_gccn +END SUBROUTINE init_ccn2 !############################################################################## Subroutine init_dust (n1,n2,n3,md1np,md2np,md1mp,md2mp,dn0,ifm) @@ -539,14 +603,14 @@ Subroutine init_tracer (n1,n2,n3,tracerp,dn0,ifm,nsc) integer :: n1,n2,n3,i,j,k,ifm,nsc,ii,jj real, dimension(n1,n2,n3) :: tracerp,dn0 -real :: ccn_maxt,ccn_ftt +real :: ccn1_maxt,ccn_ftt real :: ft_hgt ! PJM - height of free tropsophere (boundary layer height + transition depth) ! Initialize Tracers if(print_msg) print*,'Start Initializing Tracers, Grid:',ifm,' Tracer:',nsc !Convert RAMSIN #/mg to #/kg - ccn_maxt = ccn_max * 1.e6 + ccn1_maxt = ccn1_max * 1.e6 ccn_ftt = ccn_ft * 1.e6 do j = 1,n3 @@ -559,18 +623,18 @@ Subroutine init_tracer (n1,n2,n3,tracerp,dn0,ifm,nsc) !Set up Vertical profile if(nsc==1) then - if(k<=2) tracerp(k,i,j)=ccn_maxt + if(k<=2) tracerp(k,i,j)=ccn1_maxt if(iccn_prof==1) then !Exponential decrease that scales with pressure decrease - if(k>2) tracerp(k,i,j)=ccn_maxt*exp(-zt(k)/7000.) + if(k>2) tracerp(k,i,j)=ccn1_maxt*exp(-zt(k)/7000.) ! PJM Added more realistic aerosol profile (loosely based on observed vertical profiles) elseif(iccn_prof==2) then !More realistic profile, with constant ccn in boundary layer and exp. decr. above boundary layer - if(zt(k)<=bl_hgt) tracerp(k,i,j) = ccn_maxt ! Constant ccn conc. in boundary layer + if(zt(k)<=bl_hgt) tracerp(k,i,j) = ccn1_maxt ! Constant ccn conc. in boundary layer - if(zt(k)>bl_hgt) tracerp(k,i,j) = ccn_maxt * exp(-zt(k)/3500.) ! Exponential decrease that scales with height + if(zt(k)>bl_hgt) tracerp(k,i,j) = ccn1_maxt * exp(-zt(k)/3500.) ! Exponential decrease that scales with height ! PJM Added more realistic aerosol profile (loosely based on observed vertical profiles) elseif(iccn_prof==3) then @@ -579,11 +643,11 @@ Subroutine init_tracer (n1,n2,n3,tracerp,dn0,ifm,nsc) !Note: requires roughly constant boundary layer throughout simulation time ft_hgt = bl_hgt + tran_depth ! Calculate free troposphere height - if(zt(k)<=bl_hgt) tracerp(k,i,j) = ccn_maxt ! Constant ccn conc. in boundary layer + if(zt(k)<=bl_hgt) tracerp(k,i,j) = ccn1_maxt ! Constant ccn conc. in boundary layer ! Linear decrease during transition depth to free tropospheric value - if(zt(k)>bl_hgt .and. zt(k)<= ft_hgt) tracerp(k,i,j) = (ccn_maxt - & - ((ccn_maxt - ccn_ftt) * (zt(k)-bl_hgt) / tran_depth)) + if(zt(k)>bl_hgt .and. zt(k)<= ft_hgt) tracerp(k,i,j) = (ccn1_maxt - & + ((ccn1_maxt - ccn_ftt) * (zt(k)-bl_hgt) / tran_depth)) ! Linear decrease from free troposphere to 0 to the model top if(zt(k)> ft_hgt) tracerp(k,i,j) = (ccn_ftt - (ccn_ftt * & @@ -782,8 +846,11 @@ Subroutine micinit () print*,'' endif +! 125 micron max diameter ice crystal size for participating +! in Hallet-Mossop 2ndary ice splintering process. dps = 125.e-6 dps2 = dps ** 2 + rictmin = 1.0001 rictmax = 0.9999 * float(nembc) diff --git a/src/6.3.02/micro/mic_misc.f90 b/src/micro/mic_misc.f90 similarity index 97% rename from src/6.3.02/micro/mic_misc.f90 rename to src/micro/mic_misc.f90 index 0d6d104..b2877bf 100644 --- a/src/6.3.02/micro/mic_misc.f90 +++ b/src/micro/mic_misc.f90 @@ -160,10 +160,10 @@ Subroutine range_check (m1,k1,k2,k3,i,j,frq,ngr,dtlt,time,micro) cifnx(k) = micro%cifnp(k,i,j) endif if (iaerosol > 0) then - aerocon(k,1) = micro%cccnp(k,i,j) - aeromas(k,1) = micro%cccmp(k,i,j) - aerocon(k,2) = micro%gccnp(k,i,j) - aeromas(k,2) = micro%gccmp(k,i,j) + aerocon(k,1) = micro%cn1np(k,i,j) + aeromas(k,1) = micro%cn1mp(k,i,j) + aerocon(k,2) = micro%cn2np(k,i,j) + aeromas(k,2) = micro%cn2mp(k,i,j) endif if (idust > 0) then aerocon(k,3) = micro%md1np(k,i,j) @@ -423,6 +423,10 @@ Subroutine range_check (m1,k1,k2,k3,i,j,frq,ngr,dtlt,time,micro) xnucicert(k) = micro%nucicert(k,i,j) xvapliqt(k) = micro%vapliqt(k,i,j) xvapicet(k) = micro%vapicet(k,i,j) + xevapliqt(k) = micro%evapliqt(k,i,j) + xevapicet(k) = micro%evapicet(k,i,j) + xfreezingt(k) = micro%freezingt(k,i,j) + xmeltingt(k) = micro%meltingt(k,i,j) xmelticet(k) = micro%melticet(k,i,j) xrimecldt(k) = micro%rimecldt(k,i,j) xaggregatet(k) = micro%aggregatet(k,i,j) @@ -445,6 +449,14 @@ Subroutine range_check (m1,k1,k2,k3,i,j,frq,ngr,dtlt,time,micro) xvapgraut(k) = micro%vapgraut(k,i,j) xvaphailt(k) = micro%vaphailt(k,i,j) xvapdrizt(k) = micro%vapdrizt(k,i,j) + xevapcldt(k) = micro%evapcldt(k,i,j) + xevapraint(k) = micro%evapraint(k,i,j) + xevapprist(k) = micro%evapprist(k,i,j) + xevapsnowt(k) = micro%evapsnowt(k,i,j) + xevapaggrt(k) = micro%evapaggrt(k,i,j) + xevapgraut(k) = micro%evapgraut(k,i,j) + xevaphailt(k) = micro%evaphailt(k,i,j) + xevapdrizt(k) = micro%evapdrizt(k,i,j) xmeltprist(k) = micro%meltprist(k,i,j) xmeltsnowt(k) = micro%meltsnowt(k,i,j) xmeltaggrt(k) = micro%meltaggrt(k,i,j) @@ -494,6 +506,10 @@ Subroutine range_check (m1,k1,k2,k3,i,j,frq,ngr,dtlt,time,micro) xnucicert(k) = 0. xvapliqt(k) = 0. xvapicet(k) = 0. + xevapliqt(k) = 0. + xevapicet(k) = 0. + xfreezingt(k) = 0. + xmeltingt(k) = 0. xmelticet(k) = 0. xrimecldt(k) = 0. xaggregatet(k) = 0. @@ -516,6 +532,14 @@ Subroutine range_check (m1,k1,k2,k3,i,j,frq,ngr,dtlt,time,micro) xvapgraut(k) = 0. xvaphailt(k) = 0. xvapdrizt(k) = 0. + xevapcldt(k) = 0. + xevapraint(k) = 0. + xevapprist(k) = 0. + xevapsnowt(k) = 0. + xevapaggrt(k) = 0. + xevapgraut(k) = 0. + xevaphailt(k) = 0. + xevapdrizt(k) = 0. xmeltprist(k) = 0. xmeltsnowt(k) = 0. xmeltaggrt(k) = 0. diff --git a/src/6.3.02/micro/mic_nuc.f90 b/src/micro/mic_nuc.f90 similarity index 94% rename from src/6.3.02/micro/mic_nuc.f90 rename to src/micro/mic_nuc.f90 index 01202f2..e030fb7 100644 --- a/src/6.3.02/micro/mic_nuc.f90 +++ b/src/micro/mic_nuc.f90 @@ -13,7 +13,7 @@ Subroutine cldnuc (m1,k1cnuc,k2cnuc,k1dnuc,k2dnuc,rv,wp,i,j,dn0) real :: tairc_nuc,w_nuc,rg_nuc,tab,sfcareatotal real :: rjw,wtw1,wtw2,rjconcen,wtcon1,wtcon2,jrg1,jrg2,eps1,eps2 real :: total_cld_nucc,total_drz_nucc,total_cld_nucr,total_drz_nucr -real, dimension(9) :: concen_tab +real, dimension(aerocat) :: concen_tab !Re-set cloud layer before nucleation k1cnuc = 2 @@ -50,7 +50,7 @@ Subroutine cldnuc (m1,k1cnuc,k2cnuc,k1dnuc,k2dnuc,rv,wp,i,j,dn0) enddo !************************************************************************* -!Saleeby(6/3/02) Prognosing number concentration of cloud and drizzle **** +!Saleeby(6/3/2002) Prognosing number concentration of cloud and drizzle **** !************************************************************************* elseif (jnmb(1) >= 5) then do k = 2,m1-1 @@ -68,15 +68,15 @@ Subroutine cldnuc (m1,k1cnuc,k2cnuc,k1dnuc,k2dnuc,rv,wp,i,j,dn0) !Set aside ice nuclei for DeMott scheme and recomute aerosol stats if(iifn==3) CALL prenuc_ifn (m1,k,dn0,rv) -!**********LOOP OVER CCN, GCCN, 2 DUST MODES, 3 SALT MODES *************** +!**********LOOP OVER 2 CCN MODES, 2 DUST MODES, 3 SALT MODES *************** !Use the acat loop for turning on aerosol nucleation do acat=1,aerocat concen_tab(acat) = 0.0 concen_nuc = 0.0 - if((acat==1) .or. & ! CCN - (acat==2) .or. & ! GCCN + if((acat==1) .or. & ! CCN-1 + (acat==2) .or. & ! CCN-2 (acat==3 .and. idust>0) .or. & ! Small dust mode (acat==4 .and. idust>0) .or. & ! Large dust mode (acat==5 .and. isalt>0) .or. & ! Salt film mode @@ -181,6 +181,15 @@ Subroutine cldnuc (m1,k1cnuc,k2cnuc,k1dnuc,k2dnuc,rv,wp,i,j,dn0) endif concen_tab(acat) = concen_nuc * tab * epstemp + !Saleeby(2023-06-06) + !Override nucleation if median radius (rg) less than minimum lookup + !table size. In the past we simply forced rg up to the minimum and + !continued activation of aerosols with rg < 10nm. Perhaps we need to + !limit this activation. So, no activation if rg < 10nm. In this respect, + !some aerosols may be carried around without nucleating. They can still + !be radiatively important and undergo depositin. + if (rg < 0.01e-6) concen_tab(acat) = 0.0 + endif !if concen_nuc > mincon endif !if acat aerosol type is valid enddo !looping over aerocat @@ -190,8 +199,8 @@ Subroutine cldnuc (m1,k1cnuc,k2cnuc,k1dnuc,k2dnuc,rv,wp,i,j,dn0) do acat=1,aerocat aero_ratio(acat) = 0.0 ! Aerosol fraction aero_vap(acat) = 0.0 ! Total surface area of aerosol category - if((acat==1) .or. & ! CCN - (acat==2) .or. & ! GCCN + if((acat==1) .or. & ! CCN-1 + (acat==2) .or. & ! CCN-2 (acat==3 .and. idust>0) .or. & ! Small dust mode (acat==4 .and. idust>0) .or. & ! Large dust mode (acat==5 .and. isalt>0) .or. & ! Salt film mode @@ -220,8 +229,8 @@ Subroutine cldnuc (m1,k1cnuc,k2cnuc,k1dnuc,k2dnuc,rv,wp,i,j,dn0) total_drz_nucr=0.0 do acat=1,aerocat ctc = 0 - if((acat==1) .or. & ! CCN - (acat==2) .or. & ! GCCN + if((acat==1) .or. & ! CCN-1 + (acat==2) .or. & ! CCN-2 (acat==3 .and. idust>0) .or. & ! Small dust mode (acat==4 .and. idust>0) .or. & ! Large dust mode (acat==5 .and. isalt>0) .or. & ! Salt film mode @@ -256,6 +265,11 @@ Subroutine cldnuc (m1,k1cnuc,k2cnuc,k1dnuc,k2dnuc,rv,wp,i,j,dn0) !Vapor allocated to a given aerosol species vaprccn = 0.5*excessrv*cldrat !Sum of all nucleation <= 1/2 excessrv + !Saleeby(2023-06-01): Replacing line above to try and limit new nucleation. + !Anecdotal evidence suggests that we nucleate too many aerosols, so we are + !seeing if this will switch more to growth of existing droplets over making + !more new ones. + !vaprccn = 0.25*excessrv*cldrat !Sum of all nucleation <= 1/4 excessrv !Determine if nucleated droplets go to cloud or drizzle drop=1 @@ -266,8 +280,9 @@ Subroutine cldnuc (m1,k1cnuc,k2cnuc,k1dnuc,k2dnuc,rv,wp,i,j,dn0) if(concen_tab(acat) > vaprccn / emb0(drop)) concen_tab(acat) = vaprccn / emb0(drop) if(concen_tab(acat) < vaprccn / emb1(drop)) vaprccn = concen_tab(acat) * emb1(drop) -!Nucleate to 2-micron diameter droplets whose mass is emb0 -!if(concen_tab(acat) * emb0(drop) <= vaprccn) vaprccn=concen_tab(acat) * emb0(drop) + !Saleeby(2023-05-30) + !Nucleate to minimum drop diameter (cloud or drizzle) droplets whose mass is emb0 + if(concen_tab(acat) * emb0(drop) <= vaprccn) vaprccn=concen_tab(acat) * emb0(drop) !Accumulated nucleated particles if not removing them if(iccnlev==0) then @@ -370,7 +385,7 @@ Subroutine cldnuc (m1,k1cnuc,k2cnuc,k1dnuc,k2dnuc,rv,wp,i,j,dn0) ccncon(ic) = ccncon(ic) + ccncon(ic-1) ccnmas(ic) = ccnmas(ic) + ccnmas(ic-1) endif - !Track immersion freezing droplets that contain large CCN, GCCN, or DUST + !Track immersion freezing droplets that contain large CCN1, CCN2, or DUST ! Do not track immersion freezing for salt species (acat=5,6,7) if(iifn==3.and.(acat==1.or.acat==2.or.acat==3.or.acat==4.or.acat==8.or.acat==9 & .or.acat==aerocat-1.or.acat==aerocat) & @@ -762,12 +777,12 @@ Subroutine icenuc (m1,kc1,kc2,kd1,kd2,k1pnuc,k2pnuc,ngr,rv,dn0,dtlt,i,j) !Input aerosols in #/cm3 and outputs #/L activated if(iifn_formula==1) then !Original Demott(2010) formula - nifn(k) = 0.0000594 * (-tairc(k))**3.33 & - * (tot_in)**(0.0264*(-tairc(k))+0.0033) + nifn(k) = 0.0000594 * ( -max(-35.0,tairc(k)) )**3.33 & + * (tot_in)**(0.0264*( -max(-35.0,tairc(k)) )+0.0033) elseif(iifn_formula==2) then !Modified Demott(2010) for dust-dominated cases !Paul suggested an additional factor of 3 multiplier - nifn(k) = 3.0 * 0.0008 * 10 ** (-0.2*(tairc(k)+9.7)) * tot_in ** 1.25 + nifn(k) = 3.0 * 0.0008 * 10 ** (-0.2*(max(-35.0,tairc(k))+9.7)) * tot_in ** 1.25 endif !Adjust units and such @@ -797,15 +812,15 @@ Subroutine icenuc (m1,kc1,kc2,kd1,kd2,k1pnuc,k2pnuc,ngr,rv,dn0,dtlt,i,j) vapnuc=0.0 if(jnmb(1)>=5)then if(iccnlev==0) then - vapnuc = max(0.,haznuc + diagni - cx(k,3)) + vapnuc = max(0.,haznuc + diagni - cx(k,3) - cx(k,4)) elseif(iccnlev>=1 .and. iifn==3) then vapnuc = max(0.,haznuc + diagni) elseif(iccnlev>=1 .and. iifn<=2) then vapnuc = max(0.,haznuc) - vapnuc = vapnuc + max(0.,diagni - cx(k,3)) + vapnuc = vapnuc + max(0.,diagni - cx(k,3) - cx(k,4)) endif else - vapnuc = max(0.,haznuc + diagni - cx(k,3)) + vapnuc = max(0.,haznuc + diagni - cx(k,3) - cx(k,4)) endif !Modify haze nucleation and IN nucleation if not enough vapor available @@ -821,7 +836,7 @@ Subroutine icenuc (m1,kc1,kc2,kd1,kd2,k1pnuc,k2pnuc,ngr,rv,dn0,dtlt,i,j) !(Saleeby10-17-2011) Determine haze nucleation and IN nucleation !DeMott(2010) formula already applied for ICLOUD >= 5 !Allow large DeMott (diagni) particles to preferentially nucleate - !over the haze particles (cccnp) for IIFN==3. Perhaps should include + !over the haze particles (cn1np) for IIFN==3. Perhaps should include !all aerosols into potential haze nucleation? if((haznuc.gt.0.0 .or. diagni.gt.0.0) .and. jnmb(3).ge.5) then @@ -894,12 +909,12 @@ Subroutine icenuc (m1,kc1,kc2,kd1,kd2,k1pnuc,k2pnuc,ngr,rv,dn0,dtlt,i,j) !Input aerosols in #/cm3 and outputs #/L activated if(iifn_formula==1) then !Original Demott(2010) formula - ifntemp = 0.0000594 * (-tairc(k))**3.33 & - * (tot_in)**(0.0264*(-tairc(k))+0.0033) + ifntemp = 0.0000594 * ( -max(-35.0,tairc(k)) )**3.33 & + * (tot_in)**(0.0264*( -max(-35.0,tairc(k)) )+0.0033) elseif(iifn_formula==2) then !Modified Demott(2010) for dust-dominated cases !Paul suggested an additional factor of 3 multiplier - ifntemp = 3.0 * 0.0008 * 10 ** (-0.2*(tairc(k)+9.7)) * tot_in ** 1.25 + ifntemp = 3.0 * 0.0008 * 10 ** (-0.2*(max(-35.0,tairc(k))+9.7)) * tot_in ** 1.25 endif !Adjust units and such diff --git a/src/6.3.02/micro/mic_nucpre.f90 b/src/micro/mic_nucpre.f90 similarity index 92% rename from src/6.3.02/micro/mic_nucpre.f90 rename to src/micro/mic_nucpre.f90 index c79240b..7a56c2f 100644 --- a/src/6.3.02/micro/mic_nucpre.f90 +++ b/src/micro/mic_nucpre.f90 @@ -14,8 +14,8 @@ Subroutine prenuc_ccn (k,i,j) !Set default values to override if aerosol type exists aero_rg(acat) = aero_medrad(acat) ! Default median radius - if((acat==1) .or. & ! CCN - (acat==2) .or. & ! GCCN + if((acat==1) .or. & ! CCN-1 + (acat==2) .or. & ! CCN-2 (acat==3 .and. idust>0) .or. & ! Small dust mode (acat==4 .and. idust>0) .or. & ! Large dust mode (acat==5 .and. isalt>0) .or. & ! Salt film mode @@ -36,7 +36,9 @@ Subroutine prenuc_ccn (k,i,j) aero_rg(acat)=((0.23873/rhosol*aeromas(k,acat)/aerocon(k,acat)) & **(1./3.))/aero_rg2rm(acat) - if(aero_rg(acat) < 0.01e-6) aero_rg(acat) = 0.01e-6 + !Saleeby(2023-06-06):Do not limit minimum rg (median radius) + !if(aero_rg(acat) < 0.01e-6) aero_rg(acat) = 0.01e-6 + if(aero_rg(acat) > 6.50e-6) aero_rg(acat) = 6.50e-6 aeromas(k,acat) = ((aero_rg(acat)*aero_rg2rm(acat))**3.) & @@ -75,16 +77,15 @@ Subroutine prenuc_ifn (m1,k,dn0,rv) tot_in = 0.0 total_in(k) = 0.0 - !Loop over CCN, GCCN, SMALL DUST, LARGE DUST, REGEN 1&2 (1,2,3,4,8,9) - !Not looping over salt species since these cannot act is ice nuclei + !Not looping over salt species since these are not allowed to act as ice nuclei do acat=1,aerocat in_thresh = 1 totifnn(k,acat) = 0.0 totifnm(k,acat) = 0.0 - if((acat==1) .or. & ! CCN - (acat==2) .or. & ! GCCN + if((acat==1) .or. & ! CCN-1 + (acat==2) .or. & ! CCN-2 (acat==3 .and. idust>0) .or. & ! Small dust mode (acat==4 .and. idust>0) .or. & ! Large dust mode (acat==8 .and. iabcarb>0) .or. & ! Absorbing carbon 1 mode @@ -183,7 +184,7 @@ Subroutine prenuc_ifn (m1,k,dn0,rv) !DeMott IN activation based on total number of all aerosol !greater than 0.5 micron diameter. nifn(k) = 0.0 - if(tairc(k) .lt. 0.0 .and. total_in(k) .gt. mincon) then + if(tairc(k) < 0.0 .and. total_in(k) > mincon) then !For DeMott Eqn, the aerosol number to put into the eqn needs to be !the remaining of unprocessed aerosols > 0.5 microns + the remaining !aerosols > 0.5 microns contained in droplets + @@ -202,12 +203,12 @@ Subroutine prenuc_ifn (m1,k,dn0,rv) !Input aerosols in #/cm3 and outputs #/L activated if(iifn_formula==1) then !Original Demott(2010) formula - nifn(k) = 0.0000594 * (-tairc(k))**3.33 & - * (tot_in)**(0.0264*(-tairc(k))+0.0033) + nifn(k) = 0.0000594 * ( -max(-35.0,tairc(k)) )**3.33 & + * (tot_in)**(0.0264*( -max(-35.0,tairc(k)) )+0.0033) elseif(iifn_formula==2) then !Modified Demott(2010) for dust-dominated cases !Paul suggested an additional factor of 3 multiplier - nifn(k) = 3.0 * 0.0008 * 10 ** (-0.2*(tairc(k)+9.7)) * tot_in ** 1.25 + nifn(k) = 3.0 * 0.0008 * 10 ** (-0.2*(max(-35.0,tairc(k))+9.7)) * tot_in ** 1.25 endif !Adjust units and such @@ -254,8 +255,8 @@ Subroutine prenuc_ifn (m1,k,dn0,rv) totifnn(k,acat) = totifnn(k,acat) * ifnfrac totifnm(k,acat) = totifnm(k,acat) * ifnfrac if(iccnlev>=1 .and. ifnfrac>0.0) then - if((acat==1) .or. & ! CCN - (acat==2) .or. & ! GCCN + if((acat==1) .or. & ! CCN-1 + (acat==2) .or. & ! CCN-2 (acat==3 .and. idust>0) .or. & ! Small dust mode (acat==4 .and. idust>0) .or. & ! Large dust mode (acat==8 .and. iabcarb>0) .or. & ! Absorbing carbon 1 mode @@ -296,7 +297,10 @@ Subroutine prenuc_ifn (m1,k,dn0,rv) rhosol=aero_rhosol(acat) aero_rg(acat)=((0.23873/rhosol*aeromas(k,acat)/aerocon(k,acat)) & **(1./3.))/aero_rg2rm(acat) - if(aero_rg(acat) < 0.01e-6) aero_rg(acat) = 0.01e-6 + + !Saleeby(2023-06-06):Do not limit minimum rg (median radius) + !if(aero_rg(acat) < 0.01e-6) aero_rg(acat) = 0.01e-6 + if(aero_rg(acat) > 6.50e-6) aero_rg(acat) = 6.50e-6 aeromas(k,acat) = ((aero_rg(acat)*aero_rg2rm(acat))**3.) & *aerocon(k,acat)/(0.23873/rhosol) diff --git a/src/6.3.02/micro/mic_nuctab.f90 b/src/micro/mic_nuctab.f90 similarity index 99% rename from src/6.3.02/micro/mic_nuctab.f90 rename to src/micro/mic_nuctab.f90 index 44cbe21..3b7e6ae 100644 --- a/src/6.3.02/micro/mic_nuctab.f90 +++ b/src/micro/mic_nuctab.f90 @@ -13,12 +13,12 @@ Subroutine aero_nuc_tab_nh42so4 (rrv,rrvlsair,eps1,eps2,wtw1,wtw2,wtcon1,wtcon2 real :: mult1,mult2,nucss1,nucss2,nucss,rrv,rrvlsair !Saleeby (6/3/02) -!The following tables are percent of prescibed CCN to activate. +!The following tables are percent of prescibed aerosols to activate. !Table dimensions are: ! (median radius,updraft,concentration,temperature,solubility). -!Large aerosols or GCCN number are prescibed by the user and these +!Large aerosols (rg>0.96microns) are prescibed by the user and these !automatically nucleate and they have no lookup tables. -!Small aerosols or CCN with median radius from 0.01 - 0.96 microns +!Small aerosols with median radius from 0.01 - 0.96 microns !are user prescribed in concentration from 1 - 10,000 /mg. !Median radius is in centimeters as is the parcel model. @@ -7193,12 +7193,12 @@ Subroutine aero_nuc_tab_nacl (rrv,rrvlsair,eps1,eps2,wtw1,wtw2,wtcon1,wtcon2 & real :: mult1,mult2,nucss1,nucss2,nucss,rrv,rrvlsair !Saleeby (6/3/02) -!The following tables are percent of prescibed CCN to activate. +!The following tables are percent of prescibed aerosols to activate. !Table dimensions are: ! (median radius,updraft,concentration,temperature,solubility). -!Large aerosols or GCCN number are prescibed by the user and these +!Large aerosols are prescibed by the user and these !automatically nucleate and they have no lookup tables. -!Small aerosols or CCN with median radius from 0.01 - 0.96 microns +!Small aerosols with median radius from 0.01 - 0.96 microns !are user prescribed in concentration from 1 - 10,000 /mg. !Median radius is in centimeters as is the parcel model. diff --git a/src/6.3.02/micro/mic_tabs.f90 b/src/micro/mic_tabs.f90 similarity index 100% rename from src/6.3.02/micro/mic_tabs.f90 rename to src/micro/mic_tabs.f90 diff --git a/src/6.3.02/micro/mic_vap.f90 b/src/micro/mic_vap.f90 similarity index 93% rename from src/6.3.02/micro/mic_vap.f90 rename to src/micro/mic_vap.f90 index 4412ebe..829954c 100644 --- a/src/6.3.02/micro/mic_vap.f90 +++ b/src/micro/mic_vap.f90 @@ -339,14 +339,22 @@ Subroutine vapflux (m1,lcat,k1,k2,rv,i,j) endif endif - !Vapor deposition and evaporation budgets for all species + !Vapor deposition and evaporation budgets for all species. + !Deposition, condensation, evaporation, sublimation are all given positive + ! values as process rates. if(imbudget >= 1) then - if(lcat.eq.1 .or. lcat.eq.2 .or. lcat.eq.8) & - xvapliqt(k) = xvapliqt(k) + vap(k,lcat)*budget_scalet - if(lcat.ge.3 .and. lcat.le.7) & - xvapicet(k) = xvapicet(k) + vap(k,lcat)*budget_scalet + if(lcat.eq.1 .or. lcat.eq.2 .or. lcat.eq.8) then + if(vap(k,lcat) > 0.00) xvapliqt(k) = xvapliqt(k) + vap(k,lcat)*budget_scalet + if(vap(k,lcat) < 0.00) xevapliqt(k) = xevapliqt(k) - vap(k,lcat)*budget_scalet + endif + if(lcat.ge.3 .and. lcat.le.7) then + if(vap(k,lcat) > 0.00) xvapicet(k) = xvapicet(k) + vap(k,lcat)*budget_scalet + if(vap(k,lcat) < 0.00) xevapicet(k) = xevapicet(k) - vap(k,lcat)*budget_scalet + endif endif + if(imbudget >= 2) then + if(vap(k,lcat) > 0.00) then if(lcat==1) xvapcldt(k) = xvapcldt(k) + vap(k,lcat)*budget_scalet if(lcat==2) xvapraint(k) = xvapraint(k) + vap(k,lcat)*budget_scalet if(lcat==3) xvapprist(k) = xvapprist(k) + vap(k,lcat)*budget_scalet @@ -355,6 +363,17 @@ Subroutine vapflux (m1,lcat,k1,k2,rv,i,j) if(lcat==6) xvapgraut(k) = xvapgraut(k) + vap(k,lcat)*budget_scalet if(lcat==7) xvaphailt(k) = xvaphailt(k) + vap(k,lcat)*budget_scalet if(lcat==8) xvapdrizt(k) = xvapdrizt(k) + vap(k,lcat)*budget_scalet + endif + if(vap(k,lcat) < 0.00) then + if(lcat==1) xevapcldt(k) = xevapcldt(k) - vap(k,lcat)*budget_scalet + if(lcat==2) xevapraint(k) = xevapraint(k) - vap(k,lcat)*budget_scalet + if(lcat==3) xevapprist(k) = xevapprist(k) - vap(k,lcat)*budget_scalet + if(lcat==4) xevapsnowt(k) = xevapsnowt(k) - vap(k,lcat)*budget_scalet + if(lcat==5) xevapaggrt(k) = xevapaggrt(k) - vap(k,lcat)*budget_scalet + if(lcat==6) xevapgraut(k) = xevapgraut(k) - vap(k,lcat)*budget_scalet + if(lcat==7) xevaphailt(k) = xevaphailt(k) - vap(k,lcat)*budget_scalet + if(lcat==8) xevapdrizt(k) = xevapdrizt(k) - vap(k,lcat)*budget_scalet + endif endif 229 continue diff --git a/src/6.3.02/micro/micphys.f90 b/src/micro/micphys.f90 similarity index 95% rename from src/6.3.02/micro/micphys.f90 rename to src/micro/micphys.f90 index 4f4963b..cebddf9 100644 --- a/src/6.3.02/micro/micphys.f90 +++ b/src/micro/micphys.f90 @@ -19,7 +19,7 @@ Module micphys ,nembc=20 real, parameter :: dtc=1.,ddnc=2.e-6 ,dthz=1.,drhhz=.02 real, parameter :: budget_scalet=1. -real, parameter :: rxmin=1.e-9,cxmin=1.e-3 +real, parameter :: rxmin=1.e-16,cxmin=1.e-5 !IDIFFPERTS !0=normal scalar diffusion @@ -104,13 +104,16 @@ Module micphys !******Variables Needed for COMPUTING BUDGETS ****************************** !For imbudget>=1 real, dimension(nzpmax) :: xlatheatvap,xlatheatfrz,xnuccldrt,xcld2raint & -,xice2raint,xnucicert,xvapliqt,xvapicet,xmelticet,xrimecldt,xaggregatet & +,xice2raint,xnucicert,xvapliqt,xvapicet,xevapliqt,xevapicet & +,xmelticet,xrimecldt,xaggregatet,xfreezingt,xmeltingt & ,xrain2icet,xlatheatvapt,xlatheatfrzt !For imbudget>=2 real, dimension(nzpmax) :: xinuchomrt,xinuccontrt,xinucifnrt,xinuchazrt & ,xvapcldt,xvapraint,xvapprist,xvapsnowt,xvapaggrt,xvapgraut,xvaphailt & -,xvapdrizt,xmeltprist,xmeltsnowt,xmeltaggrt,xmeltgraut,xmelthailt & +,xvapdrizt,xevapcldt,xevapraint,xevapprist,xevapsnowt,xevapaggrt & +,xevapgraut,xevaphailt,xevapdrizt & +,xmeltprist,xmeltsnowt,xmeltaggrt,xmeltgraut,xmelthailt & ,xrimecldsnowt,xrimecldaggrt,xrimecldgraut,xrimecldhailt,xrain2prt & ,xrain2snt,xrain2agt,xrain2grt,xrain2hat,xaggrselfprist & ,xaggrselfsnowt,xaggrprissnowt @@ -128,11 +131,12 @@ Module micphys !******Variables Needed for CCN nucleation and restore ********************* integer :: iccnlev,ic,rgb,iccn_prof -real :: cin_max,cin_sh,ccn_max,ccn_sh,bl_hgt,tran_depth,ccn_ft,gccn_max & +real :: cin_max,cin_sh,ccn1_max,ccn2_max,ccn_sh,bl_hgt,tran_depth,ccn_ft & ,dust1_max,dust2_max,saltf_max,saltj_max,salts_max,enxferratio,rxferratio& ,ccnmass,ccnnum,rxtemp,cxtemp,fracmass,cxloss,concen_nuc,aeromass,rg & ,rhosol,cldrat,epsil,ant,rcm,rmlar,rmsma,power,scnmass,dcnmass,dinmass & ,abc1_max,abc2_max + real, dimension(nzpmax) :: nifn !Tracking total aerosol mass, immersion freezing number in hydrometeors cats @@ -164,8 +168,8 @@ Module micphys !Make sure you change both if you alter number of species !Each category can have the soluble component be either !Ammonium sulfate (NH4-2SO4) or Sodium chloride (NaCl) -! 1 = Sub-micron CCN -! 2 = Super-micron GCCN +! 1 = CCN mode 1 +! 2 = CCN mode 2 ! 3 = Small mode mineral dust (soluble coating) ! 4 = Large mode mineral dust (soluble coating) ! 5 = Film mode sea salt @@ -195,8 +199,8 @@ Module micphys !tables with parcel model runs using a new sigma. The median radii bins !in nucleation and pre_nucleation routines (rg, rmsma, rmlar) are also !specifically set for sigma=1.8. These would need to be updated as well. -data aero_sigma / 1.80 & !CCN - ,1.80 & !GCCN +data aero_sigma / 1.80 & !CCN mode 1 + ,1.80 & !CCN mode 2 ,1.80 & !small mineral dust ,1.80 & !large mineral dust ,1.80 & !salt film mode @@ -209,8 +213,8 @@ Module micphys !Set the relationship between median radius and mean mass radius !based on aerosol distribution spectral width !exp(1.5 * (alog(sigma))**2) -data aero_rg2rm / 1.6791 & !CCN - ,1.6791 & !GCCN +data aero_rg2rm / 1.6791 & !CCN mode 1 + ,1.6791 & !CCN mode 2 ,1.6791 & !small mineral dust ,1.6791 & !large mineral dust ,1.6791 & !salt film mode diff --git a/src/6.3.02/micro/write_scm.f90 b/src/micro/write_scm.f90 similarity index 92% rename from src/6.3.02/micro/write_scm.f90 rename to src/micro/write_scm.f90 index 586703c..ee8f2d8 100644 --- a/src/6.3.02/micro/write_scm.f90 +++ b/src/micro/write_scm.f90 @@ -146,10 +146,10 @@ Subroutine readwrite_scm (wf,fln) endif if(iaerosol > 0) then - CALL iofil ('cccnp.txt',micro_g(ng)%cccnp(:,i,j),m1,wf,fln) - CALL iofil ('cccmp.txt',micro_g(ng)%cccmp(:,i,j),m1,wf,fln) - CALL iofil ('gccnp.txt',micro_g(ng)%gccnp(:,i,j),m1,wf,fln) - CALL iofil ('gccmp.txt',micro_g(ng)%gccmp(:,i,j),m1,wf,fln) + CALL iofil ('cn1np.txt',micro_g(ng)%cn1np(:,i,j),m1,wf,fln) + CALL iofil ('cn1mp.txt',micro_g(ng)%cn1mp(:,i,j),m1,wf,fln) + CALL iofil ('cn2np.txt',micro_g(ng)%cn2np(:,i,j),m1,wf,fln) + CALL iofil ('cn2mp.txt',micro_g(ng)%cn2mp(:,i,j),m1,wf,fln) endif if(idust > 0) then @@ -296,7 +296,7 @@ Subroutine readwrite_scm (wf,fln) if(jnmb(8)>=5) CALL iofil ('immerdp.txt',micro_g(ng)%immerdp(:,i,j),m1,wf,fln) if(jnmb(2)>=5) CALL iofil ('immerrp.txt',micro_g(ng)%immerrp(:,i,j),m1,wf,fln) endif - if(imbudget>=1) then !14 + if(imbudget>=1) then !18 CALL iofil ('latheatvap.txt' ,micro_g(ng)%latheatvap (:,i,j),m1,wf,fln) CALL iofil ('latheatfrz.txt' ,micro_g(ng)%latheatfrz (:,i,j),m1,wf,fln) CALL iofil ('nuccldrt.txt' ,micro_g(ng)%nuccldrt (:,i,j),m1,wf,fln) @@ -305,6 +305,10 @@ Subroutine readwrite_scm (wf,fln) CALL iofil ('nucicert.txt' ,micro_g(ng)%nucicert (:,i,j),m1,wf,fln) CALL iofil ('vapliqt.txt' ,micro_g(ng)%vapliqt (:,i,j),m1,wf,fln) CALL iofil ('vapicet.txt' ,micro_g(ng)%vapicet (:,i,j),m1,wf,fln) + CALL iofil ('evapliqt.txt' ,micro_g(ng)%evapliqt (:,i,j),m1,wf,fln) + CALL iofil ('evapicet.txt' ,micro_g(ng)%evapicet (:,i,j),m1,wf,fln) + CALL iofil ('freezingt.txt' ,micro_g(ng)%freezingt (:,i,j),m1,wf,fln) + CALL iofil ('meltingt.txt' ,micro_g(ng)%meltingt (:,i,j),m1,wf,fln) CALL iofil ('melticet.txt' ,micro_g(ng)%melticet (:,i,j),m1,wf,fln) CALL iofil ('rimecldt.txt' ,micro_g(ng)%rimecldt (:,i,j),m1,wf,fln) CALL iofil ('rain2icet.txt' ,micro_g(ng)%rain2icet (:,i,j),m1,wf,fln) @@ -312,7 +316,7 @@ Subroutine readwrite_scm (wf,fln) CALL iofil ('latheatvapt.txt',micro_g(ng)%latheatvapt(:,i,j),m1,wf,fln) CALL iofil ('latheatfrzt.txt',micro_g(ng)%latheatfrzt(:,i,j),m1,wf,fln) endif - if(imbudget>=2) then !29 + if(imbudget>=2) then !37 CALL iofil ('inuchomrt.txt' ,micro_g(ng)%inuchomrt (:,i,j),m1,wf,fln) CALL iofil ('inuccontrt.txt' ,micro_g(ng)%inuccontrt (:,i,j),m1,wf,fln) CALL iofil ('inucifnrt.txt' ,micro_g(ng)%inucifnrt (:,i,j),m1,wf,fln) @@ -325,6 +329,14 @@ Subroutine readwrite_scm (wf,fln) CALL iofil ('vapgraut.txt' ,micro_g(ng)%vapgraut (:,i,j),m1,wf,fln) CALL iofil ('vaphailt.txt' ,micro_g(ng)%vaphailt (:,i,j),m1,wf,fln) CALL iofil ('vapdrizt.txt' ,micro_g(ng)%vapdrizt (:,i,j),m1,wf,fln) + CALL iofil ('evapcldt.txt' ,micro_g(ng)%evapcldt (:,i,j),m1,wf,fln) + CALL iofil ('evapraint.txt' ,micro_g(ng)%evapraint (:,i,j),m1,wf,fln) + CALL iofil ('evapprist.txt' ,micro_g(ng)%evapprist (:,i,j),m1,wf,fln) + CALL iofil ('evapsnowt.txt' ,micro_g(ng)%evapsnowt (:,i,j),m1,wf,fln) + CALL iofil ('evapaggrt.txt' ,micro_g(ng)%evapaggrt (:,i,j),m1,wf,fln) + CALL iofil ('evapgraut.txt' ,micro_g(ng)%evapgraut (:,i,j),m1,wf,fln) + CALL iofil ('evaphailt.txt' ,micro_g(ng)%evaphailt (:,i,j),m1,wf,fln) + CALL iofil ('evapdrizt.txt' ,micro_g(ng)%evapdrizt (:,i,j),m1,wf,fln) CALL iofil ('meltprist.txt' ,micro_g(ng)%meltprist (:,i,j),m1,wf,fln) CALL iofil ('meltsnowt.txt' ,micro_g(ng)%meltsnowt (:,i,j),m1,wf,fln) CALL iofil ('meltaggrt.txt' ,micro_g(ng)%meltaggrt (:,i,j),m1,wf,fln) diff --git a/src/6.3.02/micro_bin/micro_prm.f90 b/src/micro_bin/micro_prm.f90 similarity index 100% rename from src/6.3.02/micro_bin/micro_prm.f90 rename to src/micro_bin/micro_prm.f90 diff --git a/src/6.3.02/micro_bin/microphysics.f90 b/src/micro_bin/microphysics.f90 similarity index 99% rename from src/6.3.02/micro_bin/microphysics.f90 rename to src/micro_bin/microphysics.f90 index 284df0f..868f6d1 100644 --- a/src/6.3.02/micro_bin/microphysics.f90 +++ b/src/micro_bin/microphysics.f90 @@ -44,7 +44,7 @@ Subroutine micro_proc () use mem_micro use rconstants use micro_prm -use micphys, only: imbudget,ipris,igraup,ihail,ccn_max +use micphys, only: imbudget,ipris,igraup,ihail,ccn1_max IMPLICIT NONE @@ -77,7 +77,7 @@ Subroutine micro_proc () integer itimestep, kr, ikl do kr=1,nkr - fccn0(kr) =FCCNR0(KR)*1000.*xccn(kr)*ccn_max + fccn0(kr) =FCCNR0(KR)*1000.*xccn(kr)*ccn1_max enddo @@ -455,7 +455,7 @@ Subroutine micro_init (bininit) use micro_prm use mem_micro use mem_grid -use micphys, only:ccn_max,cin_max,iaero_chem,aero_medrad,iifn +use micphys, only:ccn1_max,cin_max,iaero_chem,aero_medrad,iifn use module_hujisbm IMPLICIT NONE @@ -547,23 +547,23 @@ Subroutine micro_init (bininit) ! Initialize arrays for the initial run. Do not run this for history restart. if(bininit==1) then -!Factor of 1000 is to convert to CGS units. ccn_max is #/mg +!Factor of 1000 is to convert to CGS units. ccn1_max is #/mg DO k=1,mzp DO i=1,mxp DO j=1,myp DO KR=1,NKR IF (k<=2) THEN - micro_g(ngrid)%fncn(k,i,j,KR)=FCCNR0(KR)*1000.*xccn(kr)*ccn_max + micro_g(ngrid)%fncn(k,i,j,KR)=FCCNR0(KR)*1000.*xccn(kr)*ccn1_max ELSE micro_g(ngrid)%fncn(k,i,j,KR)=FCCNR0(KR)*1000.*xccn(kr)* & - ccn_max*exp(-zt(k)/7000.) + ccn1_max*exp(-zt(k)/7000.) ENDIF ENDDO ENDDO END DO END DO if (iceprocs == 1 .and. iifn == 2) then - fracin = cin_max/ccn_max + fracin = cin_max/ccn1_max micro_g(ngrid)%ffin=micro_g(ngrid)%fncn*fracin endif endif diff --git a/src/6.3.02/micro_bin/module_hujisbm.f90 b/src/micro_bin/module_hujisbm.f90 similarity index 100% rename from src/6.3.02/micro_bin/module_hujisbm.f90 rename to src/micro_bin/module_hujisbm.f90 diff --git a/src/6.3.02/mksfc/geodat.f90 b/src/mksfc/geodat.f90 similarity index 100% rename from src/6.3.02/mksfc/geodat.f90 rename to src/mksfc/geodat.f90 diff --git a/src/6.3.02/mksfc/landuse_input.f90 b/src/mksfc/landuse_input.f90 similarity index 100% rename from src/6.3.02/mksfc/landuse_input.f90 rename to src/mksfc/landuse_input.f90 diff --git a/src/6.3.02/mksfc/mksfc_driver.f90 b/src/mksfc/mksfc_driver.f90 similarity index 100% rename from src/6.3.02/mksfc/mksfc_driver.f90 rename to src/mksfc/mksfc_driver.f90 diff --git a/src/6.3.02/mksfc/mksfc_ndvi.f90 b/src/mksfc/mksfc_ndvi.f90 similarity index 99% rename from src/6.3.02/mksfc/mksfc_ndvi.f90 rename to src/mksfc/mksfc_ndvi.f90 index 3f2de60..c9a22f3 100644 --- a/src/6.3.02/mksfc/mksfc_ndvi.f90 +++ b/src/mksfc/mksfc_ndvi.f90 @@ -58,7 +58,7 @@ Subroutine ndvi_read_dataheader (ifm) ! read prefix list and times do itime = 1,nvndvif(ifm) - read(25,'(A80)') line + read(25,'(A256)') line CALL char_strip_var (line,flnm,line2) read (line2,*) iyearvn(itime,ifm),imonthvn(itime,ifm) & ,idatevn(itime,ifm),ihourvn(itime,ifm) diff --git a/src/6.3.02/mksfc/mksfc_sfc.f90 b/src/mksfc/mksfc_sfc.f90 similarity index 100% rename from src/6.3.02/mksfc/mksfc_sfc.f90 rename to src/mksfc/mksfc_sfc.f90 diff --git a/src/6.3.02/mksfc/mksfc_sst.f90 b/src/mksfc/mksfc_sst.f90 similarity index 99% rename from src/6.3.02/mksfc/mksfc_sst.f90 rename to src/mksfc/mksfc_sst.f90 index 4a3834e..4fd7e8d 100644 --- a/src/6.3.02/mksfc/mksfc_sst.f90 +++ b/src/mksfc/mksfc_sst.f90 @@ -63,7 +63,7 @@ Subroutine sst_read_dataheader (ifm) nvsstf(ifm)=0 do itime = 1,nsst - read(25,'(A80)') line + read(25,'(A256)') line CALL char_strip_var (line,flnm,line2) read (line2,*) issty,isstm,isstd,issth diff --git a/src/6.3.02/mksfc/mksfc_top.f90 b/src/mksfc/mksfc_top.f90 similarity index 100% rename from src/6.3.02/mksfc/mksfc_top.f90 rename to src/mksfc/mksfc_top.f90 diff --git a/src/6.3.02/mksfc/ndvi_read.f90 b/src/mksfc/ndvi_read.f90 similarity index 100% rename from src/6.3.02/mksfc/ndvi_read.f90 rename to src/mksfc/ndvi_read.f90 diff --git a/src/6.3.02/mksfc/nest_geosst.f90 b/src/mksfc/nest_geosst.f90 similarity index 100% rename from src/6.3.02/mksfc/nest_geosst.f90 rename to src/mksfc/nest_geosst.f90 diff --git a/src/6.3.02/mksfc/sst_read.f90 b/src/mksfc/sst_read.f90 similarity index 100% rename from src/6.3.02/mksfc/sst_read.f90 rename to src/mksfc/sst_read.f90 diff --git a/src/6.3.02/mpi/mpass_cyclic.f90 b/src/mpi/mpass_cyclic.f90 similarity index 100% rename from src/6.3.02/mpi/mpass_cyclic.f90 rename to src/mpi/mpass_cyclic.f90 diff --git a/src/6.3.02/mpi/mpass_dtl.f90 b/src/mpi/mpass_dtl.f90 similarity index 100% rename from src/6.3.02/mpi/mpass_dtl.f90 rename to src/mpi/mpass_dtl.f90 diff --git a/src/6.3.02/mpi/mpass_init.f90 b/src/mpi/mpass_init.f90 similarity index 99% rename from src/6.3.02/mpi/mpass_init.f90 rename to src/mpi/mpass_init.f90 index fe3f0c6..abbe0f9 100644 --- a/src/6.3.02/mpi/mpass_init.f90 +++ b/src/mpi/mpass_init.f90 @@ -32,7 +32,7 @@ Subroutine broadcast_config () nwords = 219 * 1 & !single values + 1 * 8 & !micro (8-hydromet types for gnu) + 3 * aerocat & !micro (number aerosol species) - + 42 * maxgrds & !grid-dependent (max grids) + + 44 * maxgrds & !grid-dependent (max grids) + 3 * nzpmax & !max vertical levels + 3 * nzgmax & !max soil levels + 1 * maxisn & !max isentropic levels @@ -192,6 +192,8 @@ Subroutine broadcast_config () CALL par_put_int (ICORFLG,1) CALL par_put_int (IBND,1) CALL par_put_int (JBND,1) + CALL par_put_int (ISPONGE_PTS,MAXGRDS) + CALL par_put_float (SPONGE_TAU,MAXGRDS) CALL par_put_float (CPHAS,1) CALL par_put_int (LSFLG,1) CALL par_put_int (NFPT,1) @@ -317,12 +319,12 @@ Subroutine broadcast_config () CALL par_put_float (CIN_MAX,1) CALL par_put_float (CIN_SH,1) CALL par_put_int (ICCN_PROF,1) - CALL par_put_float (CCN_MAX,1) CALL par_put_float (CCN_SH,1) CALL par_put_float (BL_HGT,1) CALL par_put_float (TRAN_DEPTH,1) CALL par_put_float (CCN_FT,1) - CALL par_put_float (GCCN_MAX,1) + CALL par_put_float (CCN1_MAX,1) + CALL par_put_float (CCN2_MAX,1) CALL par_put_float (DUST1_MAX,1) CALL par_put_float (DUST2_MAX,1) CALL par_put_float (SALTF_MAX,1) @@ -531,6 +533,8 @@ Subroutine broadcast_config () CALL par_get_int (ICORFLG,1) CALL par_get_int (IBND,1) CALL par_get_int (JBND,1) + CALL par_get_int (ISPONGE_PTS,MAXGRDS) + CALL par_get_float (SPONGE_TAU,MAXGRDS) CALL par_get_float (CPHAS,1) CALL par_get_int (LSFLG,1) CALL par_get_int (NFPT,1) @@ -656,12 +660,12 @@ Subroutine broadcast_config () CALL par_get_float (CIN_MAX,1) CALL par_get_float (CIN_SH,1) CALL par_get_int (ICCN_PROF,1) - CALL par_get_float (CCN_MAX,1) CALL par_get_float (CCN_SH,1) CALL par_get_float (BL_HGT,1) CALL par_get_float (TRAN_DEPTH,1) CALL par_get_float (CCN_FT,1) - CALL par_get_float (GCCN_MAX,1) + CALL par_get_float (CCN1_MAX,1) + CALL par_get_float (CCN2_MAX,1) CALL par_get_float (DUST1_MAX,1) CALL par_get_float (DUST2_MAX,1) CALL par_get_float (SALTF_MAX,1) diff --git a/src/6.3.02/mpi/mpass_lbc.f90 b/src/mpi/mpass_lbc.f90 similarity index 100% rename from src/6.3.02/mpi/mpass_lbc.f90 rename to src/mpi/mpass_lbc.f90 diff --git a/src/6.3.02/mpi/mpass_nest.f90 b/src/mpi/mpass_nest.f90 similarity index 100% rename from src/6.3.02/mpi/mpass_nest.f90 rename to src/mpi/mpass_nest.f90 diff --git a/src/6.3.02/mpi/node_mod.f90 b/src/mpi/node_mod.f90 similarity index 100% rename from src/6.3.02/mpi/node_mod.f90 rename to src/mpi/node_mod.f90 diff --git a/src/6.3.02/mpi/par_decomp.f90 b/src/mpi/par_decomp.f90 similarity index 100% rename from src/6.3.02/mpi/par_decomp.f90 rename to src/mpi/par_decomp.f90 diff --git a/src/6.3.02/mpi/para_init.f90 b/src/mpi/para_init.f90 similarity index 100% rename from src/6.3.02/mpi/para_init.f90 rename to src/mpi/para_init.f90 diff --git a/src/6.3.02/mpi/rnode.f90 b/src/mpi/rnode.f90 similarity index 100% rename from src/6.3.02/mpi/rnode.f90 rename to src/mpi/rnode.f90 diff --git a/src/6.3.02/nesting/nest_drivers.f90 b/src/nesting/nest_drivers.f90 similarity index 100% rename from src/6.3.02/nesting/nest_drivers.f90 rename to src/nesting/nest_drivers.f90 diff --git a/src/6.3.02/nesting/nest_feed.f90 b/src/nesting/nest_feed.f90 similarity index 100% rename from src/6.3.02/nesting/nest_feed.f90 rename to src/nesting/nest_feed.f90 diff --git a/src/6.3.02/nesting/nest_intrp.f90 b/src/nesting/nest_intrp.f90 similarity index 99% rename from src/6.3.02/nesting/nest_intrp.f90 rename to src/nesting/nest_intrp.f90 index 789de5b..7409e89 100644 --- a/src/6.3.02/nesting/nest_intrp.f90 +++ b/src/nesting/nest_intrp.f90 @@ -3,7 +3,7 @@ Subroutine nstbtnd (m1,m2,m3,ia,iz,ja,jz,ibcon,ngrid & ,scp,sct,bx,by,bz,vnam,tymeinv,nstbot,nsttop,jdim) use node_mod, only: mi0, mj0 -use mem_grid, only: nnxp, nnyp +use mem_grid, only: nnxp, nnyp, isponge_pts, sponge_tau implicit none @@ -38,15 +38,10 @@ Subroutine nstbtnd (m1,m2,m3,ia,iz,ja,jz,ibcon,ngrid & ! set up sponge zone time scale and calculate inverse nudging timescale -tau_sponge = 30. ! s -!tau_sponge = 60. ! s ! PJM change for testing -!tau_sponge = 10. ! s ! PJM change for testing +tau_sponge = sponge_tau(ngrid) !30. ! s itau_spg = 1./tau_sponge ! set up number of points in the sponge zone. Can vary for different grids -! Here, use 5 points on grid2 and 8 points on grid3 -npts_sponge = 5 -if (ngrid .eq. 3) npts_sponge = 8 - +npts_sponge = isponge_pts(ngrid) !5 ! check that subdomain lengths are not smaller than the sponge zone width ! these are conservative estimates since they use ia/ja and iz/jz if ( iand(ibcon,1) .ne. 0 .or. iand(ibcon,2) .ne. 0 ) then ! W or E boundary diff --git a/src/6.3.02/radiate/rad_aero.f90 b/src/radiate/rad_aero.f90 similarity index 99% rename from src/6.3.02/radiate/rad_aero.f90 rename to src/radiate/rad_aero.f90 index e1cc26b..1d26bd9 100644 --- a/src/6.3.02/radiate/rad_aero.f90 +++ b/src/radiate/rad_aero.f90 @@ -55,8 +55,8 @@ Subroutine aerorad (i,j,mb,nb,nrad,m1,dzl,relh,tp,omgp,gp,dn0,aodt) enddo if(iaerosol>0) then - aerotype(1) = 1 ! CCN - aerotype(2) = 1 ! GCCN + aerotype(1) = 1 ! CCN-mode-1 + aerotype(2) = 1 ! CCN-mode-2 endif if(idust>0) then aerotype(3) = 3 ! Small dust mode diff --git a/src/6.3.02/radiate/rad_ccmp.f90 b/src/radiate/rad_ccmp.f90 similarity index 100% rename from src/6.3.02/radiate/rad_ccmp.f90 rename to src/radiate/rad_ccmp.f90 diff --git a/src/6.3.02/radiate/rad_driv.f90 b/src/radiate/rad_driv.f90 similarity index 99% rename from src/6.3.02/radiate/rad_driv.f90 rename to src/radiate/rad_driv.f90 index c05bf3f..0d15dd0 100644 --- a/src/6.3.02/radiate/rad_driv.f90 +++ b/src/radiate/rad_driv.f90 @@ -163,10 +163,10 @@ Subroutine radiate (mzp,mxp,myp,ia,iz,ja,jz) ,radiate_g(ngrid)%swdn (1,1,1) & ,radiate_g(ngrid)%lwup (1,1,1) & ,radiate_g(ngrid)%lwdn (1,1,1) & - ,micro_g(ngrid)%cccnp (1,1,1) & - ,micro_g(ngrid)%cccmp (1,1,1) & - ,micro_g(ngrid)%gccnp (1,1,1) & - ,micro_g(ngrid)%gccmp (1,1,1) & + ,micro_g(ngrid)%cn1np (1,1,1) & + ,micro_g(ngrid)%cn1mp (1,1,1) & + ,micro_g(ngrid)%cn2np (1,1,1) & + ,micro_g(ngrid)%cn2mp (1,1,1) & ,micro_g(ngrid)%md1np (1,1,1) & ,micro_g(ngrid)%md1mp (1,1,1) & ,micro_g(ngrid)%md2np (1,1,1) & @@ -464,7 +464,7 @@ Subroutine radcomp3 (m1,m2,m3,ia,iz,ja,jz & ,glat,rtgt,topt,albedt,cosz,rlongup,rlontop,rshort,rlong,aodt & ,rv,dn0,fthrd,pi0,pp,theta,rcp & ,bext,swup,swdn,lwup,lwdn & - ,cccnp,cccmp,gccnp,gccmp,md1np,md1mp,md2np,md2mp & + ,cn1np,cn1mp,cn2np,cn2mp,md1np,md1mp,md2np,md2mp & ,salt_film_np,salt_film_mp,salt_jet_np,salt_jet_mp & ,salt_spum_np,salt_spum_mp,abc1np,abc1mp,abc2np,abc2mp) @@ -485,7 +485,7 @@ Subroutine radcomp3 (m1,m2,m3,ia,iz,ja,jz & ,rshort,rlong,aodt real, dimension(m1,m2,m3) :: dn0,rv,fthrd,pi0,pp,theta,rcp real, dimension(m1,m2,m3) :: bext,swup,swdn,lwup,lwdn -real, dimension(m1,m2,m3) :: cccnp,cccmp,gccnp,gccmp,md1np,md1mp,md2np,md2mp & +real, dimension(m1,m2,m3) :: cn1np,cn1mp,cn2np,cn2mp,md1np,md1mp,md2np,md2mp & ,salt_film_np,salt_film_mp,salt_jet_np,salt_jet_mp,salt_spum_np,salt_spum_mp & ,abc1np,abc1mp,abc2np,abc2mp real, external :: gammln @@ -539,8 +539,8 @@ Subroutine radcomp3 (m1,m2,m3,ia,iz,ja,jz & ! Call the sub-driver if(iaerorad==1 .and. level .ne. 4)then CALL aero_copy (1,m1 & - ,cccnp(1,i,j),cccmp(1,i,j) & - ,gccnp(1,i,j),gccmp(1,i,j) & + ,cn1np(1,i,j),cn1mp(1,i,j) & + ,cn2np(1,i,j),cn2mp(1,i,j) & ,md1np(1,i,j),md1mp(1,i,j) & ,md2np(1,i,j),md2mp(1,i,j) & ,salt_film_np(1,i,j),salt_film_mp(1,i,j) & diff --git a/src/6.3.02/radiate/rad_mclat.f90 b/src/radiate/rad_mclat.f90 similarity index 100% rename from src/6.3.02/radiate/rad_mclat.f90 rename to src/radiate/rad_mclat.f90 diff --git a/src/6.3.02/radiate/rad_stable.f90 b/src/radiate/rad_stable.f90 similarity index 100% rename from src/6.3.02/radiate/rad_stable.f90 rename to src/radiate/rad_stable.f90 diff --git a/src/6.3.02/radiate/rrad2.f90 b/src/radiate/rrad2.f90 similarity index 100% rename from src/6.3.02/radiate/rrad2.f90 rename to src/radiate/rrad2.f90 diff --git a/src/6.3.02/radiate/rrad3.f90 b/src/radiate/rrad3.f90 similarity index 100% rename from src/6.3.02/radiate/rrad3.f90 rename to src/radiate/rrad3.f90 diff --git a/src/6.3.02/revu/RAMS_hdf5.f90 b/src/revu/RAMS_hdf5.f90 similarity index 100% rename from src/6.3.02/revu/RAMS_hdf5.f90 rename to src/revu/RAMS_hdf5.f90 diff --git a/src/6.3.02/revu/getvar.f90 b/src/revu/getvar.f90 similarity index 100% rename from src/6.3.02/revu/getvar.f90 rename to src/revu/getvar.f90 diff --git a/src/6.3.02/revu/hvlib.f90 b/src/revu/hvlib.f90 similarity index 99% rename from src/6.3.02/revu/hvlib.f90 rename to src/revu/hvlib.f90 index 6275f72..dd0be0a 100644 --- a/src/6.3.02/revu/hvlib.f90 +++ b/src/revu/hvlib.f90 @@ -1932,17 +1932,17 @@ Subroutine rams_varlib (cvar,n1,n2,n3,ngrd,a,b,flnm,cdname,cdunits) cdname='ice-nuclei-concentration;' cdunits='#/cm3;' -elseif(cvar(1:lv).eq.'ccn_concen_mg') then +elseif(cvar(1:lv).eq.'ccn1_concen_mg') then ivar_type=3 - ierr=rams_getvar('CCCNP',idim_type,ngrd,a,flnm) + ierr=rams_getvar('CN1NP',idim_type,ngrd,a,flnm) CALL rams_comp_mults (n1,n2,n3,a,1.e-6) CALL rams_comp_noneg (n1,n2,n3,a) - cdname='ccn-concentration;' + cdname='ccn-mode-1-concentration;' cdunits='#/mg;' -elseif(cvar(1:lv).eq.'ccn_concen_cm3') then +elseif(cvar(1:lv).eq.'ccn1_concen_cm3') then ivar_type=3 - ierr=rams_getvar('CCCNP',idim_type,ngrd,a,flnm) + ierr=rams_getvar('CN1NP',idim_type,ngrd,a,flnm) ierr=rams_getvar('TOPT',idim_type,ngrd,e,flnm) if(ierr.eq.0) then CALL rams_comp_dn0 (n1,n2,n3,b,c,d,e,ngrd) @@ -1950,20 +1950,20 @@ Subroutine rams_varlib (cvar,n1,n2,n3,ngrd,a,b,flnm,cdname,cdunits) CALL rams_comp_mults (n1,n2,n3,a,1.e-6) CALL rams_comp_noneg (n1,n2,n3,a) endif - cdname='ccn-concentration;' + cdname='ccn-mode-1-concentration;' cdunits='#/cm3;' -elseif(cvar(1:lv).eq.'gccn_concen_mg') then +elseif(cvar(1:lv).eq.'ccn2_concen_mg') then ivar_type=3 - ierr=rams_getvar('GCCNP',idim_type,ngrd,a,flnm) + ierr=rams_getvar('CN2NP',idim_type,ngrd,a,flnm) CALL rams_comp_mults (n1,n2,n3,a,1.e-6) CALL rams_comp_noneg (n1,n2,n3,a) - cdname='gccn-concentration;' + cdname='ccn-mode-2-concentration;' cdunits='#/mg;' -elseif(cvar(1:lv).eq.'gccn_concen_cm3') then +elseif(cvar(1:lv).eq.'ccn2_concen_cm3') then ivar_type=3 - ierr=rams_getvar('GCCNP',idim_type,ngrd,a,flnm) + ierr=rams_getvar('CN2NP',idim_type,ngrd,a,flnm) ierr=rams_getvar('TOPT',idim_type,ngrd,e,flnm) if(ierr.eq.0) then CALL rams_comp_dn0 (n1,n2,n3,b,c,d,e,ngrd) @@ -1971,7 +1971,7 @@ Subroutine rams_varlib (cvar,n1,n2,n3,ngrd,a,b,flnm,cdname,cdunits) CALL rams_comp_mults (n1,n2,n3,a,1.e-6) CALL rams_comp_noneg (n1,n2,n3,a) endif - cdname='gccn-concentration;' + cdname='ccn-mode-2-concentration;' cdunits='#/cm3;' elseif(cvar(1:lv).eq.'dust1_concen') then @@ -2091,9 +2091,9 @@ Subroutine rams_varlib (cvar,n1,n2,n3,ngrd,a,b,flnm,cdname,cdunits) cdname='regenerated-aero2-concentration;' cdunits='#/cm3;' -elseif(cvar(1:lv).eq.'ccn_mass') then +elseif(cvar(1:lv).eq.'ccn1_mass') then ivar_type=3 - ierr=rams_getvar('CCCMP',idim_type,ngrd,a,flnm) + ierr=rams_getvar('CN1MP',idim_type,ngrd,a,flnm) ierr=rams_getvar('TOPT',idim_type,ngrd,e,flnm) if(ierr.eq.0) then CALL rams_comp_dn0 (n1,n2,n3,b,c,d,e,ngrd) @@ -2101,12 +2101,12 @@ Subroutine rams_varlib (cvar,n1,n2,n3,ngrd,a,b,flnm,cdname,cdunits) CALL rams_comp_mults (n1,n2,n3,a,1.e9) CALL rams_comp_noneg (n1,n2,n3,a) endif - cdname='ccn-mass;' + cdname='ccn-mode-1-mass;' cdunits='micro-grams/m3;' -elseif(cvar(1:lv).eq.'gccn_mass') then +elseif(cvar(1:lv).eq.'ccn2_mass') then ivar_type=3 - ierr=rams_getvar('GCCMP',idim_type,ngrd,a,flnm) + ierr=rams_getvar('CN2MP',idim_type,ngrd,a,flnm) ierr=rams_getvar('TOPT',idim_type,ngrd,e,flnm) if(ierr.eq.0) then CALL rams_comp_dn0 (n1,n2,n3,b,c,d,e,ngrd) @@ -2114,7 +2114,7 @@ Subroutine rams_varlib (cvar,n1,n2,n3,ngrd,a,b,flnm,cdname,cdunits) CALL rams_comp_mults (n1,n2,n3,a,1.e9) CALL rams_comp_noneg (n1,n2,n3,a) endif - cdname='gccn-mass;' + cdname='ccn-mode-2-mass;' cdunits='micro-grams/m3;' elseif(cvar(1:lv).eq.'dust1_mass') then @@ -2310,24 +2310,24 @@ Subroutine rams_varlib (cvar,n1,n2,n3,ngrd,a,b,flnm,cdname,cdunits) cdname='regen2-solubility-fraction;' cdunits='fraction;' -elseif(cvar(1:lv).eq.'ccn_medrad') then +elseif(cvar(1:lv).eq.'ccn1_medrad') then ivar_type=3 - ierr=rams_getvar('CCCMP',idim_type,ngrd,a,flnm) - ierr=rams_getvar('CCCNP',idim_type,ngrd,c,flnm) + ierr=rams_getvar('CN1MP',idim_type,ngrd,a,flnm) + ierr=rams_getvar('CN2NP',idim_type,ngrd,c,flnm) CALL rams_comp_aeromedrad (n1,n2,n3,a,c,1769.) !1769 kg/m3 is solute density CALL rams_comp_mults (n1,n2,n3,a,1.e6) CALL rams_comp_noneg (n1,n2,n3,a) - cdname='ccn-median-radius;' + cdname='ccn1-median-radius;' cdunits='microns;' -elseif(cvar(1:lv).eq.'gccn_medrad') then +elseif(cvar(1:lv).eq.'ccn2_medrad') then ivar_type=3 - ierr=rams_getvar('GCCMP',idim_type,ngrd,a,flnm) - ierr=rams_getvar('GCCNP',idim_type,ngrd,c,flnm) + ierr=rams_getvar('CN2MP',idim_type,ngrd,a,flnm) + ierr=rams_getvar('CN2NP',idim_type,ngrd,c,flnm) CALL rams_comp_aeromedrad (n1,n2,n3,a,c,1769.) !1769 kg/m3 is solute density CALL rams_comp_mults (n1,n2,n3,a,1.e6) CALL rams_comp_noneg (n1,n2,n3,a) - cdname='gccn-median-radius;' + cdname='ccn2-median-radius;' cdunits='microns;' elseif(cvar(1:lv).eq.'dust1_medrad') then diff --git a/src/6.3.02/revu/iplt.f90 b/src/revu/iplt.f90 similarity index 100% rename from src/6.3.02/revu/iplt.f90 rename to src/revu/iplt.f90 diff --git a/src/6.3.02/revu/rainit.f90 b/src/revu/rainit.f90 similarity index 100% rename from src/6.3.02/revu/rainit.f90 rename to src/revu/rainit.f90 diff --git a/src/6.3.02/revu/rbat.f90 b/src/revu/rbat.f90 similarity index 100% rename from src/6.3.02/revu/rbat.f90 rename to src/revu/rbat.f90 diff --git a/src/6.3.02/revu/rcommons.f90 b/src/revu/rcommons.f90 similarity index 100% rename from src/6.3.02/revu/rcommons.f90 rename to src/revu/rcommons.f90 diff --git a/src/6.3.02/revu/rcomp.f90 b/src/revu/rcomp.f90 similarity index 100% rename from src/6.3.02/revu/rcomp.f90 rename to src/revu/rcomp.f90 diff --git a/src/6.3.02/revu/revu_main.f90 b/src/revu/revu_main.f90 similarity index 100% rename from src/6.3.02/revu/revu_main.f90 rename to src/revu/revu_main.f90 diff --git a/src/6.3.02/revu/revu_utils.f90 b/src/revu/revu_utils.f90 similarity index 100% rename from src/6.3.02/revu/revu_utils.f90 rename to src/revu/revu_utils.f90 diff --git a/src/6.3.02/revu/revugrads.f90 b/src/revu/revugrads.f90 similarity index 100% rename from src/6.3.02/revu/revugrads.f90 rename to src/revu/revugrads.f90 diff --git a/src/6.3.02/revu/rhdf5_f2c.c b/src/revu/rhdf5_f2c.c similarity index 100% rename from src/6.3.02/revu/rhdf5_f2c.c rename to src/revu/rhdf5_f2c.c diff --git a/src/6.3.02/revu/rhdf5_utils.f90 b/src/revu/rhdf5_utils.f90 similarity index 100% rename from src/6.3.02/revu/rhdf5_utils.f90 rename to src/revu/rhdf5_utils.f90 diff --git a/src/6.3.02/revu/textout.f90 b/src/revu/textout.f90 similarity index 98% rename from src/6.3.02/revu/textout.f90 rename to src/revu/textout.f90 index 7d59e19..44bdf74 100644 --- a/src/6.3.02/revu/textout.f90 +++ b/src/revu/textout.f90 @@ -438,10 +438,10 @@ Subroutine rams_text (a,iztrans,ivtype,nngd,n1,n2,n3,fcstsec & !3D AEROSOLS NUMBER, MASS, SIZE, SOLUBILITY - 37 variables if(len_trim(cvar).eq.13.and.cvar(1:13).eq.'ifn_concen_mg') ngem='IFNM' if(len_trim(cvar).eq.14.and.cvar(1:14).eq.'ifn_concen_cm3') ngem='IFNC' -if(len_trim(cvar).eq.13.and.cvar(1:13).eq.'ccn_concen_mg') ngem='CCNM' -if(len_trim(cvar).eq.14.and.cvar(1:14).eq.'ccn_concen_cm3') ngem='CCNC' -if(len_trim(cvar).eq.14.and.cvar(1:14).eq.'gccn_concen_mg') ngem='GCNM' -if(len_trim(cvar).eq.15.and.cvar(1:15).eq.'gccn_concen_cm3') ngem='GCNC' +if(len_trim(cvar).eq.13.and.cvar(1:14).eq.'ccn1_concen_mg') ngem='C1NM' +if(len_trim(cvar).eq.14.and.cvar(1:15).eq.'ccn1_concen_cm3') ngem='C1NC' +if(len_trim(cvar).eq.14.and.cvar(1:14).eq.'ccn2_concen_mg') ngem='C2NM' +if(len_trim(cvar).eq.15.and.cvar(1:15).eq.'ccn2_concen_cm3') ngem='C2NC' if(len_trim(cvar).eq.12.and.cvar(1:12).eq.'dust1_concen') ngem='D1CN' if(len_trim(cvar).eq.12.and.cvar(1:12).eq.'dust2_concen') ngem='D2CN' if(len_trim(cvar).eq.16.and.cvar(1:16).eq.'salt_film_concen') ngem='SFCN' @@ -449,8 +449,8 @@ Subroutine rams_text (a,iztrans,ivtype,nngd,n1,n2,n3,fcstsec & if(len_trim(cvar).eq.17.and.cvar(1:17).eq.'salt_spume_concen') ngem='SSCN' if(len_trim(cvar).eq.18.and.cvar(1:18).eq.'regen_aero1_concen') ngem='R1CN' if(len_trim(cvar).eq.18.and.cvar(1:18).eq.'regen_aero2_concen') ngem='R2CN' -if(len_trim(cvar).eq.8 .and.cvar(1:8) .eq.'ccn_mass') ngem='CCCM' -if(len_trim(cvar).eq.9 .and.cvar(1:9) .eq.'gccn_mass') ngem='GCCM' +if(len_trim(cvar).eq.8 .and.cvar(1:9) .eq.'ccn1_mass') ngem='C1CM' +if(len_trim(cvar).eq.9 .and.cvar(1:9) .eq.'ccn2_mass') ngem='C2CM' if(len_trim(cvar).eq.10.and.cvar(1:10).eq.'dust1_mass') ngem='D1CM' if(len_trim(cvar).eq.13.and.cvar(1:13).eq.'dust1_massd10') ngem='D1CM' if(len_trim(cvar).eq.10.and.cvar(1:10).eq.'dust2_mass') ngem='D2CM' @@ -464,8 +464,8 @@ Subroutine rams_text (a,iztrans,ivtype,nngd,n1,n2,n3,fcstsec & if(len_trim(cvar).eq.16.and.cvar(1:16).eq.'resol_aero2_mass') ngem='R2SM' if(len_trim(cvar).eq.14.and.cvar(1:14).eq.'regen1_epsilon') ngem='R1EP' if(len_trim(cvar).eq.14.and.cvar(1:14).eq.'regen2_epsilon') ngem='R2EP' -if(len_trim(cvar).eq.10.and.cvar(1:10).eq.'ccn_medrad') ngem='CCCR' -if(len_trim(cvar).eq.11.and.cvar(1:11).eq.'gccn_medrad') ngem='GCCR' +if(len_trim(cvar).eq.10.and.cvar(1:11).eq.'ccn1_medrad') ngem='C1CR' +if(len_trim(cvar).eq.11.and.cvar(1:11).eq.'ccn2_medrad') ngem='C2CR' if(len_trim(cvar).eq.12.and.cvar(1:12).eq.'dust1_medrad') ngem='D1CR' if(len_trim(cvar).eq.12.and.cvar(1:12).eq.'dust2_medrad') ngem='D2CR' if(len_trim(cvar).eq.16.and.cvar(1:16).eq.'salt_film_medrad') ngem='SFCR' diff --git a/src/6.3.02/revu/vplt.f90 b/src/revu/vplt.f90 similarity index 100% rename from src/6.3.02/revu/vplt.f90 rename to src/revu/vplt.f90 diff --git a/src/6.3.02/sib/sib2_co2.f90 b/src/sib/sib2_co2.f90 similarity index 100% rename from src/6.3.02/sib/sib2_co2.f90 rename to src/sib/sib2_co2.f90 diff --git a/src/6.3.02/sib/sib2_init.f90 b/src/sib/sib2_init.f90 similarity index 100% rename from src/6.3.02/sib/sib2_init.f90 rename to src/sib/sib2_init.f90 diff --git a/src/6.3.02/surface/leaf3_canopy.f90 b/src/surface/leaf3_canopy.f90 similarity index 100% rename from src/6.3.02/surface/leaf3_canopy.f90 rename to src/surface/leaf3_canopy.f90 diff --git a/src/6.3.02/surface/leaf3_init.f90 b/src/surface/leaf3_init.f90 similarity index 100% rename from src/6.3.02/surface/leaf3_init.f90 rename to src/surface/leaf3_init.f90 diff --git a/src/6.3.02/surface/leaf3_prep.f90 b/src/surface/leaf3_prep.f90 similarity index 100% rename from src/6.3.02/surface/leaf3_prep.f90 rename to src/surface/leaf3_prep.f90 diff --git a/src/6.3.02/surface/leaf3_slayer.f90 b/src/surface/leaf3_slayer.f90 similarity index 100% rename from src/6.3.02/surface/leaf3_slayer.f90 rename to src/surface/leaf3_slayer.f90 diff --git a/src/6.3.02/surface/leaf3_soilveg.f90 b/src/surface/leaf3_soilveg.f90 similarity index 100% rename from src/6.3.02/surface/leaf3_soilveg.f90 rename to src/surface/leaf3_soilveg.f90 diff --git a/src/6.3.02/surface/leaf_coms.f90 b/src/surface/leaf_coms.f90 similarity index 100% rename from src/6.3.02/surface/leaf_coms.f90 rename to src/surface/leaf_coms.f90 diff --git a/src/6.3.02/surface/ruser.f90 b/src/surface/ruser.f90 similarity index 100% rename from src/6.3.02/surface/ruser.f90 rename to src/surface/ruser.f90 diff --git a/src/6.3.02/surface/sfc_driver.f90 b/src/surface/sfc_driver.f90 similarity index 100% rename from src/6.3.02/surface/sfc_driver.f90 rename to src/surface/sfc_driver.f90 diff --git a/src/6.3.02/turb/rgrad.f90 b/src/turb/rgrad.f90 similarity index 100% rename from src/6.3.02/turb/rgrad.f90 rename to src/turb/rgrad.f90 diff --git a/src/6.3.02/turb/turb_diff.f90 b/src/turb/turb_diff.f90 similarity index 100% rename from src/6.3.02/turb/turb_diff.f90 rename to src/turb/turb_diff.f90 diff --git a/src/6.3.02/turb/turb_k.f90 b/src/turb/turb_k.f90 similarity index 100% rename from src/6.3.02/turb/turb_k.f90 rename to src/turb/turb_k.f90 diff --git a/src/6.3.02/turb/turb_ke.f90 b/src/turb/turb_ke.f90 similarity index 100% rename from src/6.3.02/turb/turb_ke.f90 rename to src/turb/turb_ke.f90