? LOG ? chemdat/chemdata_old.f90 ? dynamic/densitycloud.f90 ? dynamic/densitycloud_precipitation.f90 ? dynamic/densitycloud_precipturb.f90 ? dynamic/densitycloud_prototype.f90 ? dynamic/densitycloud_turb.f90 ? dynamic/densitycloud_turb2.f90 ? dynamic/dynimpfunc.f90 ? dynamic/dynimpfunc_3d.f90 ? dynamic/dynimpfunc_Marscond.f90 ? dynamic/dynimpfunc_Marscond.f90.lapack ? env/basicenv_old.f90 ? env/disturbenv_old.f90 ? io/historyfileio081006.f90 ? io/historyfileio_mmconv.f90 ? io/historyfileio_mmconv2.f90 ? io/historyfileio_prototype.f90 ? main/arare_081006.f90 ? main/arare_081115.f90 ? main/arare_081116.f90 ? main/arare_081202.f90 ? main/arare_081219.f90 ? main/arare_081227.f90 ? main/arare_SK1989.f90 ? main/arare_SK1994.f90 ? moist/cloudset.f90 ? physics/latentheat.f90 ? physics/latentheat_old.f90 ? physics/latentheatpermass.f90 ? physics/masscondense.f90 ? physics/masscondense_precipitation.f90 ? physics/masscondense_prototype.f90 ? physics/masscondense_threshold.f90 ? physics/radiation_balance.f90 ? physics/radiation_fluxandcool.f90 ? physics/radiation_heatandcool.f90 ? physics/saturationratio.f90 ? setup/gridset_3d_old.f90 ? setup/storepottemp_mmconv.f90 ? setup/storepottemp_prototype.f90 ? util/xyz_bc_module_old.f90 ? util/xyz_deriv_c4_module_old.f90 ? util/xyz_deriv_module_old.f90 ? util/xyz_module_old.f90 Index: chemdat/chemdata.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/chemdat/chemdata.f90,v retrieving revision 1.8 diff -r1.8 chemdata.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 11c11 < !諸々の化学種の物性データを保管するモジュール --- > !諸々の化学種の物性データを保管するモジュール(火星版) 29a30,31 > !CO2 の Antoine の式の係数を追加. (by YAMASHITA) > ! 393a396,401 > !Antoine の式の係数 (化学工学会, 1999) > !2008/06/09 山下 達也 追加 > ChemData_SvapPress_AntoineA(SNum) = 27.4d0 > ChemData_SvapPress_AntoineB(SNum) = 3103d0 > ChemData_SvapPress_AntoineC(SNum) = -0.16d0 > 1072d1079 < integer :: ChemData_SpcID(SpcNum) 1074a1082 > integer :: ChemData_SpcID(SpcNum) Index: dynamic/dynfunc.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/dynamic/dynfunc.f90,v retrieving revision 1.11 diff -r1.11 dynfunc.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: dynamic/dynfunc_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/dynamic/dynfunc_3d.f90,v retrieving revision 1.5 diff -r1.5 dynfunc_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 22a23,24 > ! > ! * intel fortran 9.0 用に対処療法的に修正されたもの. 59c61 < use StoreMixRt_3d, only: StoreMixRtAdv --- > !use StoreMixRt, only: StoreMixRtAdv 70c72 < public xyza_AdvScalar --- > ! public xyza_AdvScalar 93a96 > ! use xyz_deriv_module, only: pyz_dx_xyz, xqz_dy_xyz, xyr_dz_xyz 132c135 < use xyz_deriv_c4_module, only: pyz_dx_xyz, xqz_dy_xyz, xyr_dz_xyz --- > use xyz_deriv_module, only: pyz_dx_xyz, xqz_dy_xyz, xyr_dz_xyz 162c165 < function xyza_AdvScalar(xyza_Var, pyz_VelX, xqz_VelY, xyr_VelZ) --- > ! function xza_AdvScalar(xza_Var, pz_VelX, xr_VelZ) 168,169c171,172 < use xyz_deriv_c4_module, only: pyz_dx_xyz, xqz_dy_xyz, xyr_dz_xyz < ! use xyz_deriv_module, only: pyz_dx_xyz, xqz_dy_xyz, xyr_dz_xyz --- > ! use differentiate_center4, only: pz_dx_xz, xr_dz_xz > ! use differentiate_center2, only: pz_dx_xz, xr_dz_xz 172c175 < implicit none --- > ! implicit none 175,179c178 < real(DP), intent(in) :: pyz_VelX & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < !水平風速 < real(DP), intent(in) :: xqz_VelY & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) --- > ! real(DP), intent(in) :: pz_VelX(DimXMin:DimXMax, DimZMin:DimZMax) 181,182c180 < real(DP), intent(in) :: xyr_VelZ & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) --- > ! real(DP), intent(in) :: xr_VelZ(DimXMin:DimXMax, DimZMin:DimZMax) 184,185c182 < real(DP), intent(in) :: xyza_Var & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) --- > ! real(DP), intent(in) :: xza_Var(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) 187,188c184 < real(DP) :: xyza_AdvScalar & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) --- > ! real(DP) :: xza_AdvScalar(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) 190c186 < integer :: s ! ループ変数 --- > ! integer :: s 192,197c188,192 < do s = 1, SpcNum < xyza_AdvScalar(:,:,:,s) = & < & - xyz_avr_pyz(pyz_VelX * pyz_dx_xyz(xyza_Var(:,:,:,s))) & < & - xyz_avr_xqz(xqz_VelY * xqz_dy_xyz(xyza_Var(:,:,:,s))) & < & - xyz_avr_xyr(xyr_VelZ * xyr_dz_xyz(xyza_Var(:,:,:,s))) < end do --- > ! do s = 1, SpcNum > ! xza_AdvScalar(:,:,s) = & > ! & - xz_avr_pz(pz_VelX * pz_dx_xz(xza_Var(:,:,s))) & > ! & - xz_avr_xr(xr_VelZ * xr_dz_xz(xza_Var(:,:,s))) > ! end do 199c194,196 < call StoreMixRtAdv( xyza_AdvScalar ) --- > > ! end function xza_AdvScalar > 201d197 < end function xyza_AdvScalar Index: env/basicenv.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/env/basicenv.f90,v retrieving revision 1.25 diff -r1.25 basicenv.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 20a21,22 > ! * 火星湿潤対流計算用 > ! 38a41 > & RegXMin, &!配列の X 方向の下限 39a43 > & RegXMax, &!配列の X 方向の上限 42a47 > & RegZMax, &!配列の X 方向の上限 60c65,67 < & Dhight !重み関数のパラメータ [m] --- > & Dhight, & !重み関数のパラメータ [m] > & TempSfc, & > & PressSfc 66a74,76 > use cloudset, only: SatRtWetAdia > use ChemData, only: ChemData_SVapPress_AntoineA, & > & ChemData_SVapPress_AntoineB 89a100,113 > real(8) :: xz_TempAdia(DimXMin:DimXMax, DimZMin:DimZMax) > ! 乾燥断熱線に沿った温度 > real(8) :: xz_TempSat(DimXMin:DimXMax, DimZMin:DimZMax) > ! 凝結線に沿った温度 > real(8) :: xz_TempIso(DimXMin:DimXMax, DimZMin:DimZMax) > ! 等温線に沿った温度 > real(8) :: xz_Z(DimXMin:DimXMax, DimZMin:DimZMax) > ! 2D 座標 > real(8) :: Temp_0, Temp_1, Press_0, Press_1 > ! 乾燥断熱線と湿潤断熱線とが交わる高度を反復法で求める > ! 際に用いる作業変数 > real(8) :: Work > real(8) :: LCL ! 乾燥断熱線と湿潤断熱線が交わる高度 > real(8) :: LTP ! 湿潤断熱線と等温線が交わる高度 102c126,127 < z_TempBasicZ = 0.0d0 --- > ! z_TempBasicZ = 0.0d0 > z_TempBasicZ = TempSfc 105a131,134 > ! 座標の初期化 > do k = DimZMin, DimZMax > xz_Z(:,k) = s_Z(k) > end do 119a149 > 122,148c152,276 < do k = RegZMin+1, DimZMax-1 < z_DTempDZ(k) = (z_TempBasicZ(k) - z_TempBasicZ(k-1)) / DelZ < end do < < ! 対流圏界面より上の扱い < ! 圏界面より上は等温大気とする. 等温位大気から等温大気への遷移は < ! tanh を用いてなめらかにつなぐ < do k = RegZMin+2, DimZMax < < !重みつけの関数を用意. tanh を用いる < Weight = ( tanh( (s_Z(k) - tropopause ) / Dhight ) + 1.0d0 ) * 5.0d-1 < < !仮値として温度を計算する. 圏界面より上では TempStrat の等温大気に近づける < z_TempBasicZ(k) = z_TempBasicZ(k) * ( 1.0d0 - Weight ) + TempStrat * Weight < < !温度減率が断熱温度減率より小さくならないように < DTempDZ = & < & max( z_DTempDZ(k), (z_TempBasicZ(k) - z_TempBasicZ(k-1)) / DelZ ) < < !基本場の温度を決める < z_TempBasicZ(k) = z_TempBasicZ(k-1) + DTempDZ * DelZ < < !圧力を静水圧平衡から計算 < z_PressBasicZ(k) = & < & z_PressBasicZ(k-1) * ( ( z_TempBasicZ(k-1) / z_TempBasicZ(k) ) & < & ** (Grav * z_MolWtMean(k) / ( DTempDZ * GasRUniv ) ) ) < end do --- > ! do k = RegZMin+1, DimZMax-1 > ! z_DTempDZ(k) = (z_TempBasicZ(k) - z_TempBasicZ(k-1)) / DelZ > ! end do > ! > ! ! 対流圏界面より上の扱い > ! ! 圏界面より上は等温大気とする. 等温位大気から等温大気への遷移は > ! ! tanh を用いてなめらかにつなぐ > ! do k = RegZMin+1, DimZMax > ! > ! !重みつけの関数を用意. tanh を用いる > ! Weight = ( tanh( (s_Z(k) - tropopause ) / Dhight ) + 1.0d0 ) * 5.0d-1 > ! > ! !仮値として温度を計算する. 圏界面より上では TempStrat の等温大気に近づける > ! z_TempBasicZ(k) = z_TempBasicZ(k) * ( 1.0d0 - Weight ) + TempStrat * Weight > ! > ! !温度減率が断熱温度減率より小さくならないように > ! DTempDZ = & > ! & max( z_DTempDZ(k), (z_TempBasicZ(k) - z_TempBasicZ(k-1)) / DelZ ) > ! > ! !基本場の温度を決める > ! !z_TempBasicZ(k) = z_TempBasicZ(k-1) + DTempDZ * DelZ > ! !z_TempBasicZ(k) = z_TempBasicZ(k-1) - (Grav / CpDry) * DelZ > ! !z_TempBasicZ(k) = 300.0d0 > ! !z_TempBasicZ(k) = 280.0d0 + 0.8d0 * tanh((s_Z(k) - 250.0d0 )/ 25.0d0) > ! > ! !圧力を静水圧平衡から計算 > ! z_PressBasicZ(k) = & > ! & z_PressBasicZ(k-1) * ( ( z_TempBasicZ(k-1) / z_TempBasicZ(k) ) & > ! & ** (Grav * z_MolWtMean(k) / ( DTempDZ * GasRUniv ) ) ) > ! z_PressBasicZ(k) = & > ! & PressBasis * exp(- Grav * s_Z(k) / (GasRDry * z_TempBasicZ(k) ) ) > ! ! > ! ! z_PressBasicZ(k) = & > ! ! & PressBasis * exp(- Grav * s_Z(k) / & > ! ! ((CpDry - CvDry) * z_TempBasicZ(k) ) ) > ! end do > > > > > > ! 北守修論計算の基本場設定(極冠周縁での典型的温度プロファイル) > > xz_TempAdia = TempSfc - Grav * xz_Z / CpDry > xz_TempIso = 135.0d0 > > Work = Grav / CpDry > write(*,*) Work, CpDry > > !--- 乾燥断熱線, 湿潤断熱線, 等温線が交わる高度を計算し, > !--- 各領域で成り立つ式を用いて温度, 圧力を計算 > > !--- 乾燥断熱線と湿潤断熱線が交わる高度(LCL)を反復法で計算 > Press_0 = PressSfc > Temp_0 = TempSfc > do > Temp_1 = ChemData_SVapPress_AntoineB(12) / & > & (ChemData_SVapPress_AntoineA(12) - dlog(Press_0/SatRtWetAdia)) > Press_1 = PressSfc*(Temp_1/TempSfc)**(CpDry / GasRDry) > if (abs(Temp_1 - Temp_0) < epsilon(0.0d0)) then > LCL = TempSfc * CpDry / Grav & > & * (1.0d0 - (Press_1/PressSfc)**( GasRDry/CpDry )) > exit > else > Temp_0 = Temp_1 > Press_0 = Press_1 > end if > end do > > !--- 湿潤断熱線と等温線が交わる高度(LTP)を計算 > LTP = LCL + GasRDry * ChemData_SVapPress_AntoineB(12) & > & / Grav * dlog(Temp_1/xz_TempIso(1,1)) > > !--- LCL, LTP の値を表示. > write(*,*) 'LCL', LCL > write(*,*) 'LTP', LTP > > !--- 温度, (圧力), 無次元圧力分布を計算する > ! do k = DimZMin, DimZMax > do k = RegZMin, RegZMax > if (s_Z(k) < LCL) then ! 乾燥断熱線 > xz_TempBasicZ(:,k) = TempSfc - Grav/CpDry * xz_Z (:,k) > xz_PressBasicZ(:,k) = & > & PressSfc*(xz_TempBasicZ(:,k)/TempSfc)**(CpDry /GasRDry) > xz_ExnerBasicZ(:,k) = & > & xz_TempBasicZ(:,k)/TempSfc > else if (s_Z(k) > LTP) then ! 等温線 > xz_TempBasicZ(:,k) = xz_TempIso(:,k) > xz_PressBasicZ(:,k) = & > & exp(ChemData_SVapPress_AntoineA(12) & > & - ChemData_SVapPress_AntoineB(12)/xz_TempIso(:,k)) & > & * exp(-Grav*(xz_Z(:,k) - LTP)/(GasRDry*xz_TempIso(:,k))) > xz_ExnerBasicZ(:,k) = & > & exp(GasRDry/CpDry & > & *(ChemData_SVapPress_AntoineA(12) - & > & ChemData_SVapPress_AntoineB(12)/xz_TempIso(:,k))) & > & * exp(-Grav*(xz_Z(:,k) - LTP) & > & /(CpDry*xz_TempIso(:,k))) & > & / PressSfc**(GasRDry/CpDry) > else ! 湿潤断熱線 > xz_TempBasicZ(:,k) = & > & Temp_1 * exp(-Grav * (xz_Z(:,k) - LCL) & > & /(GasRDry*ChemData_SVapPress_AntoineB(12))) > xz_PressBasicZ(:,k) = & > & SatRtWetAdia*exp(ChemData_SVapPress_AntoineA(12) & > & - ChemData_SVapPress_AntoineB(12)/xz_TempBasicZ(:,k)) > xz_ExnerBasicZ(:,k) = & > & (SatRtWetAdia/PressSfc)**(GasRDry/CpDry ) & > & * exp(GasRDry/CpDry & > & *(ChemData_SVapPress_AntoineA(12) & > & - ChemData_SVapPress_AntoineB(12)/xz_TempBasicZ(:,k))) > end if > end do > > > !! 上から下まで乾燥断熱線 > ! > ! do k = RegZMin, RegZMax > ! xz_TempBasicZ(:,k) = TempSfc - Grav/CpDry * xz_Z (:,k) > ! xz_PressBasicZ(:,k) = & > ! & PressSfc*(xz_TempBasicZ(:,k)/TempSfc)**(CpDry /GasRDry) > ! xz_ExnerBasicZ(:,k) = & > ! & xz_TempBasicZ(:,k)/TempSfc > ! end do > 153c281 < write(*,*) "temp", k, s_Z(k), z_TempBasicZ(k), z_PressBasicZ(k) --- > write(*,*) "temp", k, s_Z(k), xz_TempBasicZ(1,k), xz_PressBasicZ(1,k) 157,160c285,288 < do i = DimXMin, DimXMax < xz_TempBasicZ(i,:) = z_TempBasicZ < xz_PressBasicZ(i,:) = z_PressBasicZ < end do --- > ! do i = DimXMin, DimXMax > ! xz_TempBasicZ(i,:) = z_TempBasicZ > ! xz_PressBasicZ(i,:) = z_PressBasicZ > ! end do Index: env/basicenv_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/env/basicenv_3d.f90,v retrieving revision 1.3 diff -r1.3 basicenv_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 106,107c106,107 < xyza_MixRtBasicZ = 0.0d0 < xyz_EffMolWtBasicZ = 0.0d0 --- > ! xyza_MixRtBasicZ = 0.0d0 > ! xyz_EffMolWtBasicZ = 0.0d0 208,213c208,210 < do s = 1, SpcNum < call BoundaryXCyc_xyz( xyza_MixRtBasicZ(:,:,:,s) ) < call BoundaryYCyc_xyz( xyza_MixRtBasicZ(:,:,:,s) ) < call BoundaryZSym_xyz( xyza_MixRtBasicZ(:,:,:,s) ) < end do < --- > ! call BoundaryXCyc_xza( xza_MixRtBasicZ ) > ! call BoundaryZSym_xza( xza_MixRtBasicZ ) > 226,228c223,224 < call BoundaryXCyc_xyz( xyz_EffMolWtBasicZ ) < call BoundaryYCyc_xyz( xyz_EffMolWtBasicZ ) < call BoundaryZSym_xyz( xyz_EffMolWtBasicZ ) --- > ! call BoundaryXCyc_xz( xz_EffMolWtBasicZ ) > ! call BoundaryZSym_xz( xz_EffMolWtBasicZ ) 255,258d250 < ! xyz_DensBasicZ = & < ! & PressBasis * (xyz_ExnerBasicZ ** (CvDry / GasRDry)) & < ! & / (GasRDry * xyz_PotTempBasicZ ) < 261c253,257 < & / (GasRDry * xyz_PotTempBasicZ / xyz_EffMolWtBasicZ) --- > & / (GasRDry * xyz_PotTempBasicZ ) > > ! xyz_DensBasicZ = & > ! & PressBasis * (xyz_ExnerBasicZ ** (CvDry / GasRDry)) & > ! & / (GasRDry * xyz_PotTempBasicZ / xyz_EffMolWtBasicZ) 272,277d267 < ! xyz_VelSoundBasicZ = & < ! & sqrt ( & < ! & CpDry * GasRDry * xyz_ExnerBasicZ * xyz_PotTempBasicZ & < ! & / CvDry & < ! & ) < 281c271 < & / (CvDry * xyz_EffMolWtBasicZ) & --- > & / CvDry & 283a274,279 > ! yxz_VelSoundBasicZ = & > ! & sqrt ( & > ! & CpDry * GasRDry * xyz_ExnerBasicZ * xyz_PotTempBasicZ & > ! & / (CvDry * xyz_EffMolWtBasicZ) & > ! & ) > 292,296d287 < ! call BasicSetArray_Init( & < ! & xyz_PressBasicZ, xyz_ExnerBasicZ, xyz_TempBasicZ, & < ! & xyz_PotTempBasicZ, xyz_DensBasicZ, xyz_VelSoundBasicZ & < ! & ) < 299,300c290,296 < & xyz_PotTempBasicZ, xyz_DensBasicZ, xyz_VelSoundBasicZ, & < & xyza_MixRtBasicZ, xyz_EffMolWtBasicZ ) --- > & xyz_PotTempBasicZ, xyz_DensBasicZ, xyz_VelSoundBasicZ & > & ) > > ! call BasicSetArray_Init( & > ! & xyz_PressBasicZ, xyz_ExnerBasicZ, xyz_TempBasicZ, & > ! & xyz_PotTempBasicZ, xyz_DensBasicZ, xyz_VelSoundBasicZ, & > ! & xyza_MixRtBasicZ, xyz_EffMolWtBasicZ ) Index: env/disturbenv.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/env/disturbenv.f90,v retrieving revision 1.18 diff -r1.18 disturbenv.f90 7,8c7,8 < ! * Version: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! * Tag Name: $Name: arare4-20120511 $ --- > ! * Version: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! * Tag Name: $Name: arare4-20120511 $ 20a21,22 > ! * 火星湿潤対流計算用 > ! 29c31 < & xz_Km, xz_Kh & --- > & xz_Km, xz_Kh, xz_DensCloud, xz_SatRatio & 43a46,47 > & RegZMin, &! 配列の Z 方向の下限 > & RegZMax, &! 配列の Z 方向の上限 55a60 > & xz_PotTempBasicZ, &! 基本場の温位 59c64,71 < & xza_MixRtBasicZ ! 基本場の混合比 --- > & xza_MixRtBasicZ, &! 基本場の混合比 > & TempSfc, &! 地表面温度 > & PressSfc, &! 地表面圧力 > & GasRDry, &! 乾燥成分の気体定数 > & CpDry, &! 乾燥成分の定圧比熱 > & Grav ! 重力加速度 > use ChemData, only: ChemData_SVapPress_AntoineA, &!Antoine の式の係数 > & ChemData_SVapPress_AntoineB !Antoine の式の係数 83a96,99 > real(8), intent(out) :: xz_DensCloud(DimXMin:DimXMax,DimZMin:DimZMax) > !雲密度 > real(8), intent(out) :: xz_SatRatio(DimXMin:DimXMax,DimZMin:DimZMax) > !飽和比 99a116,117 > real(8) :: HalfWidth !温位擾乱の半値幅 > real(8) :: ShearWidth !シアー層の幅 117c135 < & Humidity, Xpos, Zpos --- > & Humidity, Xpos, Zpos, HalfWidth, ShearWidth 124a143,144 > ! pz_VelX = 20.0d0 > ! xr_VelZ = 0.0d0 130a151,152 > xz_DensCloud = 0.0d0 > xz_SatRatio = 0.0d0 132,135c154,161 < Xr = minval( s_X, 1, s_X > (XMax - XMin) * XrRate ) < Xc = minval( s_X, 1, s_X > (XMax - XMin) * XcRate ) < Zr = minval( s_Z, 1, s_Z > (ZMax - ZMin) * ZrRate ) < Zc = minval( s_Z, 1, s_Z > (ZMax - ZMin) * ZcRate ) --- > ! Xr = minval( s_X, 1, s_X > (XMax - XMin) * XrRate ) > Xr = (XMax - XMin) * XrRate > ! Xc = minval( s_X, 1, s_X > (XMax - XMin) * XcRate ) > Xc = (XMax - XMin) * XcRate > ! Zr = minval( s_Z, 1, s_Z > (ZMax - ZMin) * ZrRate ) > Zr = (ZMax - ZMin) * ZrRate > ! Zc = minval( s_Z, 1, s_Z > (ZMax - ZMin) * ZcRate ) > Zc = (ZMax - ZMin) * ZcRate 175a202,242 > > case ("Kitamori-Gauss") > ! 北守(2006) の計算設定. > ! 指定された座標を中心としたガウス分布の温位擾乱を与える. > ! 基本場圧力分布と飽和蒸気圧から飽和比を与える. > > do k = DimZMin, DimZMax > do i = DimXMin, DimXMax > > ! do k = RegZMin, RegZMax > ! do i = RegXMin, RegXMax > > ! xz_PotTemp(i,k) = & > ! & DelMax * dexp( - ( (s_X(i) - Xc) / Xr )**2.0d0 * 5.0d-1 & > ! & - ( (s_Z(k) - Zc) / Zr )**2.0d0 * 5.0d-1 ) & > ! & / xz_ExnerBasicZ(i,k) > > xz_PotTemp(i,k) = & > & DelMax * dexp( - ( (s_X(i) - Xc) / Xr )**2.0d0 * 5.0d-1 & > & - ( (s_Z(k) - Zc) / Zr )**2.0d0 * 5.0d-1 ) > > ! xz_SatRatio(i,k) = & > !! & PressSfc * (TempSfc / xz_TempBasicZ(i,k) )**(Grav / CpDry ) & > ! & xz_PressBasicZ(i,k) & > ! & / exp( ChemData_SVapPress_AntoineA(12) - & > ! & ChemData_SVapPress_AntoineB(12) / ( xz_TempBasicZ(i,k) & > ! & * (1.0d0 + xz_PotTemp(i,k) / TempSfc) ) ) > > xz_SatRatio(i,k) = & > & PressSfc * (xz_ExnerBasicZ(i,k) + xz_Exner(i,k))**(CpDry / GasRDry) & > & * ( exp( & > & - ChemData_SVapPress_AntoineA(12) & > & + ChemData_SVapPress_AntoineB(12) & > & / ( (xz_ExnerBasicZ(i,k) + xz_Exner(i,k)) & > & * (xz_PotTempBasicZ(i,k) + xz_PotTemp(i,k)) ) & > & ) & > & ) > > end do > end do > 213,215c280,282 < where ( xz_Exner < DelMax * 1.0d-4) < xz_Exner = 0.0d0 < end where --- > ! where ( xz_Exner < DelMax * 1.0d-4) > ! xz_Exner = 0.0d0 > ! end where 223a291 > ! write(*,*) RandomNum(i) 232a301,302 > ! write(*,*) "RandomNum2", RandomNum2(i) > 238a309,310 > write(*,*) "xz_PotTemp()", xz_PotTemp(i, - MarginZ -1) > 252,253c324,345 < case ("SK1989") < ! Skamarock and Klemp (1989) の Cold-bubble 実験 --- > ! case ("SK1989") > ! ! Skamarock and Klemp (1989) の Cold-bubble 実験 > ! > ! xz_PotTemp = 0.0d0 > ! > ! do k = DimZMin, DimZMax > ! do i = DimXMin, DimXMax > ! > ! beta(i,k) = & > ! & sqrt( & > ! & ( ( s_X(i) - Xc ) / Xr ) ** 2.0d0 & > ! & + ( ( s_Z(k) - Zc ) / Zr ) ** 2.0d0 & > ! & ) > ! end do > ! end do > ! > ! where ( beta < 1.0d0 ) > ! xz_PotTemp = 0.5d0*DelMax*(cos(pi*beta) + 1.0d0) > ! end where > > case ("SK1994") > ! Skamarock and Klemp (1994) の内部重力波実験 255c347,360 < xz_PotTemp = 0.0d0 --- > do k = DimZMin, DimZMax > do i = DimXMin, DimXMax > xz_PotTemp(i,k) = & > & DelMax * HalfWidth ** 2.0d0 & > & * sin(pi * s_Z(k) / ZMax) & > & / (HalfWidth ** 2.0d0 + & > & (s_X(i) - XcRate * (XMax - XMin)) ** 2.0d0 ) > end do > end do > do k = DimZMin, DimZMax > do i = DimXMin, DimXMax > pz_VelX(i,k) = 20.0d0 > end do > end do 256a362,364 > case ("KH") > ! KH 不安定実験(温位擾乱を与えるタイプ) > 258c366,377 < do i = DimXMin, DimXMax --- > do i = DimXMin, DimXMax > pz_VelX(i,k) = 4.0d0 * & > & (1.0d0 + tanh((s_Z(k) - ZcRate * (ZMax - ZMin)) / ShearWidth)) > end do > end do > do k = DimZMin, DimZMax > do i = DimXMin, DimXMax > xz_PotTemp(i,k) = 1.0d0 * & > ! & (1.0d0 + tanh((s_Z(k) - ZcRate * (ZMax - ZMin)) / ShearWidth)) > & sin(s_X(i)*2.0d0*pi/XMax)*sin(s_Z(k)*2.0d0*pi/ZMax) > end do > end do 260,264c379,387 < beta(i,k) = & < & sqrt( & < & ( ( s_X(i) - Xc ) / Xr ) ** 2.0d0 & < & + ( ( s_Z(k) - Zc ) / Zr ) ** 2.0d0 & < & ) --- > case ("KH-2") > ! KH 不安定実験(温位擾乱を与えないタイプ) > > do k = DimZMin, DimZMax > do i = DimXMin, DimXMax > pz_VelX(i,k) = 3.0d0 * & > & (1.0d0 + tanh((s_Z(k) - ZcRate * (ZMax - ZMin)) / ShearWidth)) & > & + 0.2d0 * (1.0d0 + & > & sin(s_X(i)*2.0d0*pi/XMax)*sin(s_Z(k)*2.0d0*pi/ZMax)) 268,270d390 < where ( beta < 1.0d0 ) < xz_PotTemp = 0.5d0*DelMax*(cos(pi*beta) + 1.0d0) < end where Index: env/disturbenv_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/env/disturbenv_3d.f90,v retrieving revision 1.6 diff -r1.6 disturbenv_3d.f90 7,8c7,8 < ! * Version: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! * Tag Name: $Name: arare4-20120511 $ --- > ! * Version: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! * Tag Name: $Name: arare4-20120511 $ 27c27 < subroutine DisturbEnv_3d( & --- > subroutine DisturbEnv_3d( & 30c30 < & xyza_MixRt, xyz_Km, xyz_Kh & --- > & xyz_Km, xyz_Kh & 88c88 < real(DP), intent(out) :: xyza_MixRt(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) --- > ! real(DP), intent(out) :: xyza_MixRt(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) 144c144 < xyza_MixRt = 0.0d0 --- > ! xyza_MixRt = 0.0d0 411c411 < xyz_PotTemp(i,j,maxloc(z_Z, z_Z <= Zpos) - Zmargin ) = & --- > xyz_PotTemp(i,j,maxloc(z_Z, z_Z <= Zpos) - Zmargin - 1) = & Index: io/basicfileio.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/io/basicfileio.f90,v retrieving revision 1.3 diff -r1.3 basicfileio.f90 4c4 < !netCDF から値を取得するために gtool5 を利用する. --- > !netCDF から値を取得するために gt4f90io を利用する. 8c8 < use gtool_history --- > use gt4_history Index: io/getdisturbvar.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/io/getdisturbvar.f90,v retrieving revision 1.3 diff -r1.3 getdisturbvar.f90 7,8c7,8 < ! * Version: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! * Tag Name: $Name: arare4-20120511 $ --- > ! * Version: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! * Tag Name: $Name: arare4-20120511 $ 38c38 < use gtool_history --- > use gt4_history Index: io/historyfileio_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/io/historyfileio_3d.f90,v retrieving revision 1.8 diff -r1.8 historyfileio_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 29c29 < use gtool_history, only: HistoryCreate, HistoryPut, HistoryAddVariable, & --- > use gt4_history, only: HistoryCreate, HistoryPut, HistoryAddVariable, & 58,59c58,59 < & xyza_MixRtBasicZ, &!基本場の混合比 < & xyz_EffMolWtBasicZ, &!基本場の分子量効果 --- > ! & xyza_MixRtBasicZ, &!基本場の混合比 > ! & xyz_EffMolWtBasicZ, &!基本場の分子量効果 71,76d70 < use StoreMixRt_3d, only: StoreMixRtMeanXY, & < & za_Adv, za_Turb, za_Diff, za_Flux, & < & za_Rain, za_Fill1, za_Fill2, za_Cond < use StoreBuoy_3d, only: StoreBuoyMeanXY, z_BuoyTemp, z_BuoyMolWt, z_BuoyDrag < use StoreStab_3d, only: StoreStabMeanXY, z_StabTemp, z_StabMolWt < 166c160 < & units='m.s-1', & --- > & units='m s|-1"', & 175c169 < & units='m.s-1', & --- > & units='m s|-1"', & 184c178 < & units='m.s-1', & --- > & units='m s|-1"', & 193c187 < & units='m2.s-1', & --- > & units='1', & 202c196 < & units='m2.s-1', & --- > & units='1', & 205,230c199,210 < < call HistoryAddVariable( & < & varname='VorX', & < & dims=(/'x','y','z','t'/), & < & longname='vorticity', & < & units='m.s-1', & < & xtype='double', & < & history=gt_hist(10) ) < < call HistoryAddVariable( & < & varname='VorY', & < & dims=(/'x','y','z','t'/), & < & longname='vorticity', & < & units='m.s-1', & < & xtype='double', & < & history=gt_hist(11) ) < < call HistoryAddVariable( & < & varname='VorZ', & < & dims=(/'x','y','z','t'/), & < & longname='vorticity', & < & units='m.s-1', & < & xtype='double', & < & history=gt_hist(12) ) < < --- > > !混合比 > do s = 1, SpcNum > call HistoryAddVariable( & > & varname=trim(SpcWetSymbol(s)), & > & dims=(/'x','y','z','t'/), & > & longname=trim(SpcWetSymbol(s))//' Mixing Ratio', & > & units='kg kg|-1"', & > & xtype='double', & > & history=gt_hist(9+s)) > end do > 240c220 < & units='kg.kg-1', & --- > & units='kg kg|-1"', & 242c222 < & history=gt_hist(12+s) ) --- > & history=gt_hist(9+s) ) 252c232 < & units='s-2', & --- > & units='s|-2"', & 260c240 < & units='s-2', & --- > & units='s|-2"', & 268c248 < & units='s-2', & --- > & units='s|-2"', & 279c259 < & units='K.s-1', & --- > & units='K day|-1"', & 287c267 < & units='K.s-1', & --- > & units='K day|-1"', & 295c275 < & units='K.s-1', & --- > & units='K day|-1"', & 303c283 < & units='K.s-1', & --- > & units='K day|-1"', & 311c291 < & units='K.s-1', & --- > & units='K day|-1"', & 319c299 < & units='K.s-1', & --- > & units='K day|-1"', & 327c307 < & units='K.s-1', & --- > & units='K day|-1"', & 335c315 < & units='K.s-1', & --- > & units='K day|-1"', & 348c328 < & units='kg.kg-1.s-1', & --- > & units='kg kg|-1" s|-1"', & 357c337 < & units='kg.kg-1.s-1', & --- > & units='kg kg|-1" s|-1"', & 366c346 < & units='kg.kg-1.s-1', & --- > & units='kg kg|-1" s|-1"', & 375c355 < & units='kg.kg-1.s-1', & --- > & units='kg kg|-1" s|-1"', & 384c364 < & units='kg.kg-1.s-1', & --- > & units='kg kg|-1" s|-1"', & 393c373 < & units='kg.kg-1.s-1', & --- > & units='kg kg|-1" s|-1"', & 402c382 < & units='kg.kg-1.s-1', & --- > & units='kg kg|-1" s|-1"', & 411c391 < & units='kg.kg-1.s-1', & --- > & units='kg kg|-1" s|-1"', & 420c400 < & units='kg.kg-1.s-1', & --- > & units='kg kg|-1" s|-1"', & 447,453c427,433 < call HistoryAddVariable( & < & varname='VPotTempBasicZ',& < & dims=(/'x','y','z'/), & < & longname='vertial potential temperature', & < & units='K', & < & xtype='double', & < & history=gt_hist(8) ) --- > ! call HistoryAddVariable( & > ! & varname='VPotTempBasicZ',& > ! & dims=(/'x','y','z'/), & > ! & longname='vertial potential temperature', & > ! & units='K', & > ! & xtype='double', & > ! & history=gt_hist(8) ) 460c440 < & units='Kg.m-3', & --- > & units='Kg/m^3', & 469c449 < & units='m.s-2', & --- > & units='m/s|2', & 492,500c472,480 < do s = 1, SpcNum < call HistoryAddVariable( & < & varname=trim(SpcWetSymbol(s))//'BasicZ',& < & dims=(/'x','y','z'/), & < & longname=trim(SpcWetSymbol(s))//' Mixing Ratio of basic state', & < & units='kg.kg-1', & < & xtype='double', & < & history=gt_hist(8) ) < end do --- > ! do s = 1, SpcNum > ! call HistoryAddVariable( & > ! & varname=trim(SpcWetSymbol(s))//'BasicZ',& > ! & dims=(/'x','y','z'/), & > ! & longname=trim(SpcWetSymbol(s))//' Mixing Ratio of basic state', & > ! & units='kg/kg', & > ! & xtype='double', & > ! & history=gt_hist(8) ) > ! end do 503,509c483,489 < call HistoryAddVariable( & < & varname='EffMolWtBasicZ', & < & dims=(/'x','y','z'/), & < & longname='Effect of Mole Weight', & < & units='1', & < & xtype='double', & < & history=gt_hist(8) ) --- > ! call HistoryAddVariable( & > ! & varname='EffMolWtBasicZ', & > ! & dims=(/'x','y','z'/), & > ! & longname='Effect of Mole Weight', & > ! & units='1', & > ! & xtype='double', & > ! & history=gt_hist(8) ) 534,538c514,518 < call HistoryPut( & < & 'VPotTempBasicZ',& < & xyz_PotTempBasicZ(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax) & < & / xyz_EffMolWtBasicZ(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax),& < & gt_hist(8) ) --- > ! call HistoryPut( & > ! & 'VPotTempBasicZ',& > ! & xyz_PotTempBasicZ(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax) & > ! & / xyz_EffMolWtBasicZ(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax),& > ! & gt_hist(8) ) 555,565c535,545 < do s = 1, SpcNum < call HistoryPut( & < & trim(SpcWetSymbol(s))//'BasicZ', & < & xyza_MixRtBasicZ(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax, s), & < & gt_hist(8) ) < end do < < call HistoryPut( & < & 'EffMolWtBasicZ', & < & xyz_EffMolWtBasicZ(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax), & < & gt_hist(8) ) --- > ! do s = 1, SpcNum > ! call HistoryPut( & > ! & trim(SpcWetSymbol(s))//'BasicZ', & > ! & xyza_MixRtBasicZ(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax, s), & > ! & gt_hist(8) ) > ! end do > > ! call HistoryPut( & > ! & 'EffMolWtBasicZ', & > ! & xyz_EffMolWtBasicZ(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax), & > ! & gt_hist(8) ) 578d557 < & xyza_MixRt, & 587,592c566 < use xyz_module, only: xyz_avr_pyz, xyz_avr_xqz, xyz_avr_xyr, & < & xyz_avr_xqr, xyz_avr_pyr, xyz_avr_pqz < < use xyz_deriv_module, only : xqr_dy_xyr, xqr_dz_xqz, & < & pyr_dz_pyz, pyr_dx_xyr, & < & pqz_dx_xqz, pqz_dy_pyz --- > use xyz_module, only: xyz_avr_pyz, xyz_avr_xqz, xyz_avr_xyr 606c580 < real(DP), intent(in) :: xyza_MixRt(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) --- > ! real(DP), intent(in) :: xyza_MixRt(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) 611,614d584 < < real(DP) :: xyz_VorX(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < real(DP) :: xyz_VorY(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < real(DP) :: xyz_VorZ(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) 624,627d593 < xyz_VorX = xyz_avr_xqr(xqr_dy_xyr( xyr_VelZ ) - xqr_dz_xqz( xqz_VelY )) < xyz_VorY = xyz_avr_pyr(pyr_dz_pyz( pyz_VelX ) - pyr_dx_xyr( xyr_VelZ )) < xyz_VorZ = xyz_avr_pqz(pqz_dx_xqz( xqz_VelY ) - pqz_dy_pyz( pyz_VelX )) < 632c598 < do s = 1, 12 + SpcNum --- > do s = 1, 9 + SpcNum 670,684d635 < < call HistoryPut( & < & 'VorX', & < & xyz_VorX(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax), & < & gt_hist(10) ) < < call HistoryPut( & < & 'VorY', & < & xyz_VorY(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax), & < & gt_hist(11) ) < < call HistoryPut( & < & 'VorZ', & < & xyz_VorZ(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax), & < & gt_hist(12) ) 686,691c637,642 < do s = 1, SpcNum < call HistoryPut( & < & trim(SpcWetSymbol(s)), & < & xyza_MixRt(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax, s), & < & gt_hist(12+s) ) < end do --- > ! do s = 1, SpcNum > ! call HistoryPut( & > ! & trim(SpcWetSymbol(s)), & > ! & xyza_MixRt(FileXMin:FileXMax,FileYMin:FileYMax,FileZMin:FileZMax, s), & > ! & gt_hist(9+s) ) > ! end do 697,709d647 < call StoreMixRtMeanXY() < call StoreBuoyMeanXY() < call StoreStabMeanXY() < < call HistoryPut( & < & 'BuoyTemp', & < & z_BuoyTemp(FileZMin:FileZMax), & < & gt_hist(9) ) < < call HistoryPut( & < & 'BuoyMolWt', & < & z_BuoyMolWt(FileZMin:FileZMax), & < & gt_hist(9) ) 711,724c649,654 < call HistoryPut( & < & 'BuoyDrag', & < & z_BuoyDrag(FileZMin:FileZMax), & < & gt_hist(9) ) < < call HistoryPut( & < & 'StabTemp', & < & z_StabTemp(FileZMin:FileZMax), & < & gt_hist(9) ) < < call HistoryPut( & < & 'StabMolWt', & < & z_StabMolWt(FileZMin:FileZMax), & < & gt_hist(9) ) --- > ! do s = 1, SpcNum > ! call HistoryPut( & > ! & trim(SpcWetSymbol(s))//'_Mean', & > ! & za_MixRt(FileZMin:FileZMax, s), & > ! & gt_hist(9+s) ) > ! end do 766,769c696,709 < call HistoryPut( & < & 'StabTemp', & < & z_StabTemp(FileZMin:FileZMax), & < & gt_hist(9) ) --- > ! call HistoryPut( & > ! & 'Stab', & > ! & z_Stab(FileZMin:FileZMax), & > ! & gt_hist(9) ) > > ! call HistoryPut( & > ! & 'StabTemp', & > ! & z_StabTemp(FileZMin:FileZMax), & > ! & gt_hist(9) ) > > ! call HistoryPut( & > ! & 'StabMolWt', & > ! & z_StabMolWt(FileZMin:FileZMax), & > ! & gt_hist(9) ) 771,774c711,715 < call HistoryPut( & < & 'StabMolWt', & < & z_StabMolWt(FileZMin:FileZMax), & < & gt_hist(9) ) --- > ! do s = 1, SpcNum > ! call HistoryPut( & > ! & trim(SpcWetSymbol(s))//'_Adv', & > ! & za_Adv(FileZMin:FileZMax, s), & > ! & gt_hist(9) ) 776,815c717,750 < do s = 1, SpcNum < call HistoryPut( & < & trim(SpcWetSymbol(s))//'_Adv', & < & za_Adv(FileZMin:FileZMax, s), & < & gt_hist(9) ) < < call HistoryPut( & < & trim(SpcWetSymbol(s))//'_Turb', & < & za_Turb(FileZMin:FileZMax, s), & < & gt_hist(9) ) < < call HistoryPut( & < & trim(SpcWetSymbol(s))//'_Diff', & < & za_Diff(FileZMin:FileZMax, s), & < & gt_hist(9) ) < < call HistoryPut( & < & trim(SpcWetSymbol(s))//'_Flux', & < & za_Flux(FileZMin:FileZMax, s), & < & gt_hist(9) ) < < call HistoryPut( & < & trim(SpcWetSymbol(s))//'_Rain', & < & za_Rain(FileZMin:FileZMax, s), & < & gt_hist(9) ) < < call HistoryPut( & < & trim(SpcWetSymbol(s))//'_Fill1', & < & za_Fill1(FileZMin:FileZMax, s), & < & gt_hist(9) ) < < call HistoryPut( & < & trim(SpcWetSymbol(s))//'_Fill2', & < & za_Fill2(FileZMin:FileZMax, s), & < & gt_hist(9) ) < < call HistoryPut( & < & trim(SpcWetSymbol(s))//'_Cond', & < & za_cond(FileZMin:FileZMax, s), & < & gt_hist(9) ) --- > ! call HistoryPut( & > ! & trim(SpcWetSymbol(s))//'_Turb', & > ! & za_Turb(FileZMin:FileZMax, s), & > ! & gt_hist(9) ) > > ! call HistoryPut( & > ! & trim(SpcWetSymbol(s))//'_Diff', & > ! & za_Diff(FileZMin:FileZMax, s), & > ! & gt_hist(9) ) > > ! call HistoryPut( & > ! & trim(SpcWetSymbol(s))//'_Flux', & > ! & za_Flux(FileZMin:FileZMax, s), & > ! & gt_hist(9) ) > > ! call HistoryPut( & > ! & trim(SpcWetSymbol(s))//'_Rain', & > ! & za_Rain(FileZMin:FileZMax, s), & > ! & gt_hist(9) ) > > ! call HistoryPut( & > ! & trim(SpcWetSymbol(s))//'_Fill1', & > ! & za_Fill1(FileZMin:FileZMax, s), & > ! & gt_hist(9) ) > > ! call HistoryPut( & > ! & trim(SpcWetSymbol(s))//'_Fill2', & > ! & za_Fill2(FileZMin:FileZMax, s), & > ! & gt_hist(9) ) > > ! call HistoryPut( & > ! & trim(SpcWetSymbol(s))//'_Cond', & > ! & za_cond(FileZMin:FileZMax, s), & > ! & gt_hist(9) ) 822c757 < end do --- > ! end do Index: io/restartfileio.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/io/restartfileio.f90,v retrieving revision 1.17 diff -r1.17 restartfileio.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 30c30 < use gtool_history, only: HistoryCreate, HistoryPut, HistoryGet, & --- > use gt4_history, only: HistoryCreate, HistoryPut, HistoryGet, & 150c150 < & units='Kg.m-3', xtype='double', history=rstat ) --- > & units='Kg/m^3', xtype='double', history=rstat ) 156c156 < & units='m.s-2', xtype='double', history=rstat ) --- > & units='m/s|2', xtype='double', history=rstat ) 174c174 < & units='kg.kg-1', xtype='double', history=rstat ) --- > & units='kg/kg', xtype='double', history=rstat ) 191c191,192 < & varname='PotTemp', dims=(/'x','z','t'/), & --- > ! & varname='PotTemp', dims=(/'x','z','t'/), & > & varname='PotTempDist', dims=(/'x','z','t'/), & 200c201 < & units='m.s-1', & --- > & units='m/s', & 207c208 < & units='m.s-1', & --- > & units='m/s', & 214c215 < & units='m2.s-1', & --- > & units='1', & 221c222,236 < & units='m2.s-1', & --- > & units='1', & > & xtype='double', history=rstat ) > > !雲密度 > call HistoryAddVariable( & > & varname='DensCloud', dims=(/'x','z','t'/), & > & longname='DensCloud', & > & units='kg/m^3', & > & xtype='double', history=rstat ) > > !飽和比 > call HistoryAddVariable( & > & varname='SatRatio', dims=(/'x','z','t'/), & > & longname='SatRatio', & > & units='1', & 228c243 < & units='kg.kg-1"', & --- > & units='kg kg|-1"', & 247,248c262,266 < & Time, xz_PotTemp, xz_Exner, pz_VelX, xr_VelZ, & < & xza_MixRt, xz_Km , xz_Kh & --- > & Time, xz_PotTemp, & > ! & xz_PotTempSum, & > & xz_Exner, pz_VelX, xr_VelZ, & > & xza_MixRt, xz_Km , xz_Kh, & > & xz_DensCloud, xz_SatRatio & 262a281 > ! real(8), intent(in) :: xz_PotTempSum(DimXMin:DimXMax, DimZMin:DimZMax) 264a284,285 > real(8), intent(in) :: xz_DensCloud(DimXMin:DimXMax, DimZMin:DimZMax) > real(8), intent(in) :: xz_SatRatio(DimXMin:DimXMax, DimZMin:DimZMax) 271c292 < call HistoryPut( 't', Time , rstat) --- > ! call HistoryPut( 't', Time , rstat) 275c296,297 < call HistoryPut( 'PotTemp', xz_PotTemp , rstat) --- > call HistoryPut( 'PotTempDist', xz_PotTemp , rstat) > ! call HistoryPut( 'PotTemp', xz_PotTempSum , rstat) 277a300,301 > call HistoryPut( 'DensCloud', xz_DensCloud , rstat) > call HistoryPut( 'SatRatio', xz_SatRatio , rstat) 289c313 < use gtool_history --- > use gt4_history 303c327,329 < & xz_PotTempN, xz_ExnerN, pz_VelXN, xr_VelZN, xza_MixRtN, xz_KmN, xz_KhN ) --- > & xz_DensCloudB, xz_SatRatioB, & > & xz_PotTempN, xz_ExnerN, pz_VelXN, xr_VelZN, xza_MixRtN, xz_KmN, xz_KhN, & > & xz_DensCloudN, xz_SatRatioN ) 318a345,346 > real(8), intent(out) :: xz_DensCloudN(DimXMin:DimXMax, DimZMin:DimZMax) > real(8), intent(out) :: xz_SatRatioN(DimXMin:DimXMax, DimZMin:DimZMax) 325a354,355 > real(8), intent(out) :: xz_DensCloudB(DimXMin:DimXMax, DimZMin:DimZMax) > real(8), intent(out) :: xz_SatRatioB(DimXMin:DimXMax, DimZMin:DimZMax) 387c417 < name = "PotTemp" --- > name = "PotTempDist" 405a436,449 > > do t = 1, 2 > name = "DensCloud" > call HistoryGet( InitFile, name, Var3D(:,:,t), step(t) ) > end do > xz_DensCloudB = Var3D(:,:,1) > xz_DensCloudN = Var3D(:,:,2) > > do t = 1, 2 > name = "SatRatio" > call HistoryGet( InitFile, name, Var3D(:,:,t), step(t) ) > end do > xz_SatRatioB = Var3D(:,:,1) > xz_SatRatioN = Var3D(:,:,2) Index: io/restartfileio_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/io/restartfileio_3d.f90,v retrieving revision 1.8 diff -r1.8 restartfileio_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 30c30 < use gtool_history --- > use gt4_history 91,93c91,93 < & xyz_TempBasicZ, &!基本場の温度 < & xyza_MixRtBasicZ, &!基本場の混合比 < & xyz_EffMolWtBasicZ !基本場の分子量効果 --- > & xyz_TempBasicZ !基本場の温度 > ! & xyza_MixRtBasicZ, &!基本場の混合比 > ! & xyz_EffMolWtBasicZ !基本場の分子量効果 157c157 < & units='Kg.m-3', xtype='double', history=rstat ) --- > & units='Kg/m^3', xtype='double', history=rstat ) 163c163 < & units='m.s-2', xtype='double', history=rstat ) --- > & units='m/s|2', xtype='double', history=rstat ) 181c181 < & units='kg.kg-1', xtype='double', history=rstat ) --- > & units='kg/kg', xtype='double', history=rstat ) 207c207 < & units='m.s-1', & --- > & units='m/s', & 214c214 < & units='m.s-1', & --- > & units='m/s', & 221c221 < & units='m.s-1', & --- > & units='m/s', & 226c226 < & varname='Km', dims=(/'x','y','z','t'/), & --- > & varname='Km', dims=(/'x','y','z','t'/), & 228c228 < & units='m2.s-1', & --- > & units='1', & 233c233 < & varname='Kh', dims=(/'x','y','z','t'/), & --- > & varname='Kh', dims=(/'x','y','z','t'/), & 235c235 < & units='m2.s-1', & --- > & units='1', & 242c242 < & units='kg.kg-1"', & --- > & units='kg kg|-1"', & 254,255c254,255 < call HistoryPut( 'MixRtBasicZ', xyza_MixRtBasicZ , rstat) < call HistoryPut( 'EffMolWtBasicZ', xyz_EffMolWtBasicZ, rstat) --- > ! call HistoryPut( 'MixRtBasicZ', xyza_MixRtBasicZ , rstat) > ! call HistoryPut( 'EffMolWtBasicZ', xyz_EffMolWtBasicZ, rstat) 262c262 < & xyza_MixRt, xyz_Km , xyz_Kh & --- > & xyz_Km , xyz_Kh & 287,288c287,288 < real(DP), intent(in) :: xyza_MixRt & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) --- > ! real(DP), intent(in) :: xyza_MixRt & > ! & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) 302c302 < call HistoryPut( 'MixRt', xyza_MixRt , rstat) --- > ! call HistoryPut( 'MixRt', xyza_MixRt , rstat) 313c313 < use gtool_history --- > use gt4_history 327c327 < & xyza_MixRtB, xyz_KmB, xyz_KhB, & --- > & xyz_KmB, xyz_KhB, & 329c329 < & xyza_MixRtN, xyz_KmN, xyz_KhN ) --- > & xyz_KmN, xyz_KhN ) 353,354c353,354 < real(DP), intent(out) :: xyza_MixRtN & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) --- > ! real(DP), intent(out) :: xyza_MixRtN & > ! & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) 369,370c369,370 < real(DP), intent(out) :: xyza_MixRtB & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) --- > ! real(DP), intent(out) :: xyza_MixRtB & > ! & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) 399,400c399,400 < real(DP) :: xyza_MixRtBasicZ & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) --- > ! real(DP) :: xyza_MixRtBasicZ & > ! & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) 402,403c402,403 < real(DP) :: xyz_EffMolWtBasicZ & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) --- > ! real(DP) :: xyz_EffMolWtBasicZ & > ! & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) 407a408,412 > logical :: ResetSW > > ! ResetSW = .true. > ResetSW = .false. > 413c418 < step(t) = 't=^' // adjustl(toChar(t)) --- > step(t) = '^' // adjustl(toChar(t)) 470,475c475,480 < do t = 1, 2 < name = "MixRt" < call HistoryGet( InitFile, name, Var4Ds(:,:,:,:,t), step(t) ) < end do < xyza_MixRtB = Var4Ds(:,:,:,:,1) < xyza_MixRtN = Var4Ds(:,:,:,:,2) --- > ! do t = 1, 2 > ! name = "MixRt" > ! call HistoryGet( InitFile, name, Var4Ds(:,:,:,:,t), step(t) ) > ! end do > ! xyza_MixRtB = Var4Ds(:,:,:,:,1) > ! xyza_MixRtN = Var4Ds(:,:,:,:,2) 476a482 > 504,510c510,516 < name = "MixRtBasicZ" < call HistoryGet( InitFile, name, Var4D ) < xyza_MixRtBasicZ = Var4D < < name = "EffMolWtBasicZ" < call HistoryGet( InitFile, name, Var3D ) < xyz_EffMolWtBasicZ = Var3D --- > ! name = "MixRtBasicZ" > ! call HistoryGet( InitFile, name, Var4D ) > ! xyza_MixRtBasicZ = Var4D > > ! name = "EffMolWtBasicZ" > ! call HistoryGet( InitFile, name, Var3D ) > ! xyz_EffMolWtBasicZ = Var3D 533,536c539,541 < call BasicSetArray_Init( & < & xyz_PressBasicZ, xyz_ExnerBasicZ, xyz_TempBasicZ, & < & xyz_PotTempBasicZ, xyz_DensBasicZ, xyz_VelSoundBasicZ, & < & xyza_MixRtBasicZ, xyz_EffMolWtBasicZ & --- > call BasicSetArray_Init( & > & xyz_PressBasicZ, xyz_ExnerBasicZ, xyz_TempBasicZ, & > & xyz_PotTempBasicZ, xyz_DensBasicZ, xyz_VelSoundBasicZ & Index: main/arare.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/main/arare.f90,v retrieving revision 1.54 diff -r1.54 arare.f90 1,3c1 < != deepconv/arare 湿潤大気対流計算用主プログラム < ! < != deepconv/arare main program for moist atmospheric convection --- > != Program Arare 6,7c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 10a9,24 > !== Overview > ! > ! 非静力学モデル deepconv/arare. > ! 火星湿潤対流用. > ! > !== Error Handling > ! > !== Known Bugs > ! > !== Note > ! > ! * 方程式系は準圧縮系. > ! > !== Future Plans > ! > ! 14c28 < ! 非静力学モデル deepconv/arare 湿潤大気対流計算用主プログラム. --- > !非静力学モデル deepconv/arare. 17,18c31 < ! モジュール引用 ; use statement < ! --- > !----- モジュール読み込み ------ 20,25c33,82 < ! gtool5 関連 < ! gtool5 modules < ! < use dc_types, only: STRING < use dc_string, only: StoA < use dc_message, only: MessageNotify --- > !----- 型宣言, 文字列処理 ---- > use dc_types, only : STRING > use dc_string, only : StoA > > !----- メッセージ出力 ----- > use dc_message, only: MessageNotify > > ! コマンドライン引数解釈 > use argset, only : argset_init > > !----- 管理モジュール ----- > ! 化学量計算モジュール > use ChemCalc, only: ChemCalc_init > use chemdata, only: chemdata_init > > ! 入出力ファイル名管理モジュール > use fileset, only : fileset_init, & > & InitFile > > ! デバッグ出力管理モジュール > use debugset, only : debugset_init > > ! 時間管理モジュール > use timeset, only : timeset_init, & > & NstepLong, NstepShort, DelTimeLong, DelTimeShort, & > & NstepDisp > > ! ! 格子点管理モジュール > ! use gridset, only : gridset_init, & > ! & DimXMin, DimXMax, DimZMin, DimZMax, SpcNum > > ! 格子点管理モジュール > use gridset, only : gridset_init, & > & DimXMin, DimXMax, DimZMin, DimZMax, SpcNum, & > & RegXMin, RegXMax, RegZMin, RegZMax, & > & DelX, DelZ, Xmin, Xmax > > ! ! 基本場設定モジュール > ! use basicset, only : basicset_init, & > ! & xz_DensBasicZ, xza_MixRtBasicZ, xz_PotTempBasicZ, & > ! & xz_VelSoundBasicZ, xz_ExnerBasicZ > > ! 基本場設定モジュール > use basicset, only : basicset_init, & > & xz_DensBasicZ, xza_MixRtBasicZ, xz_PotTempBasicZ, & > & xz_VelSoundBasicZ, xz_ExnerBasicZ, & > & CpDry, GasRDry, Grav, PressSfc > > ! 平均操作モジュール(スカラー格子点, フラックス格子点間の変換) > use average, only : xz_avr_pz, xz_avr_xr 27,38c84,90 < ! 初期設定モジュール < ! Initialize module < ! < use argset, only: argset_init < use fileset, only: fileset_init, InitFile < use debugset, only: debugset_init < use timeset, only: timeset_init, DelTimeLong, DelTimeShort, & < & NstepDisp, NstepLong, NstepShort < use gridset, only: gridset_init, DimXMin, DimXMax, DimZMin, DimZMax, & < & SpcNum < use basicset, only: basicset_init, xza_MixRtBasicZ, xz_DensBasicZ, & < & xz_PotTempBasicZ, xz_VelSoundBasicZ --- > ! 積算値管理モジュール > use StorePotTemp, only : StorePotTemp_init, StorePotTempClean, & > & StorePotTempCond > use StoreMixRt, only : StoreMixRt_init, StoreMixRtClean, & > & StoreMixRtCond, StoreMixRtFill1, StoreMixRtFill2 > use StoreBuoy, only : StoreBuoy_init, StoreBuoyClean > use StoreStab, only : StoreStab_init, StoreStabClean 40,44c92,93 < ! 化学量計算モジュール < ! Chemical calculation modules < ! < use ChemCalc, only: ChemCalc_init < use chemdata, only: chemdata_init --- > ! 湿潤ルーチン設定モジュール > use moistset, only: moistset_init 46,51c95,129 < ! 力学過程計算用関数モジュール < ! Dynamical processes module < ! < use DynFunc, only: xz_AdvScalar, xz_AdvKm, xza_AdvScalar, & < & pz_AdvVelX, xr_Buoy, xr_AdvVelZ, pz_GradPi < use DynImpFunc, only: xz_Exner_init, xz_Exner, xr_GradPi --- > !----- 下請けモジュール ----- > ! 数値摩擦計算モジュール > use damping, only : damping_init, & > & DampSponge_xz, DampSponge_pz, DampSponge_xr > > ! 時間積分フィルターモジュール > use timefilter, only : AsselinFilter_xz, AsselinFilter_xr, & > & AsselinFilter_pz, AsselinFilter_xza > > ! 境界条件適用モジュール > use boundary, only : BoundaryXCyc_xz, BoundaryZSym_xz, & > & BoundaryXCyc_xza, BoundaryZSym_xza, & > & BoundaryXCyc_pz, BoundaryZSym_pz, & > & BoundaryXCyc_xr, BoundaryZAntiSym_xr > > ! CFL 条件確認モジュール > use cflcheck, only : CFLCheckTimeShort, & > & CFLCheckTimeLongVelX, CFLCheckTimeLongVelZ > > ! 負の湿潤量の補填計算モジュール > use fillnegative, only : FillNegative_init, xza_FillNegative_xza > > !----- 入出力モジュール ----- > ! リスタートファイル入出力モジュール > use RestartFileIO, only : ReStartFile_Open, ReStartFile_OutPut, & > & ReStartFile_Close, ReStartFile_Get > > ! ヒストリファイル入出力モジュール > use HistoryFileIO, only : HistoryFile_Open, HistoryFile_OutPut, & > & HistoryFile_Close > > !----- 力学過程 ----- > ! 力学過程計算用関数モジュール > use DynFunc, only : xz_AdvScalar, xz_AdvKm, xza_AdvScalar, pz_AdvVelX, & > & xr_Buoy, xr_AdvVelZ, pz_GradPi 53,57c131,145 < ! 乱流拡散計算用モジュール < ! Turbulent diffusion module < ! < use Turbulence, only: Turbulence_Init, xz_TurbScalar, xza_TurbScalar, & < & pz_TurbVelX, xr_TurbVelZ, xz_ShearKm, xz_DispKm, & --- > ! 力学過程陰解法計算用関数モジュール > !use DynImpFunc, only : xz_Exner_init, xz_Exner, xr_GradPi > ! 微量成分凝結用 > use DynImpFuncMarscond, only : xz_Exner_init, xz_Exner, xr_GradPi > ! 主成分凝結用 > > !----- 物理過程 ----- > ! 数値拡散計算用モジュール > use NumDiffusion, only : NumDiffusion_Init, xz_NumDiffScalar, xz_NumDiffKm, & > & xza_NumDiffScalar, pz_NumDiffVelX, xr_NumDiffVelZ > > ! 乱流拡散計算用モジュール > use Turbulence, only : Turbulence_Init, & > & xz_TurbScalar, xza_TurbScalar, pz_TurbVelX, & > & xr_TurbVelZ , xz_ShearKm , xz_DispKm, & 60,65c148,167 < ! 境界からのフラックス計算用モジュール < ! Surface flux module < ! < use HeatFlux, only: & < ! & xz_HeatFluxBulk, xz_MixRtFluxBulk, & < & xz_HeatFluxDiff, xza_MixRtFluxDiff --- > ! 放射強制計算用モジュール > use Radiation, only : Radiation_init, & > & xz_RadHeatConst > > ! 地表フラックス計算用モジュール > ! use HeatFlux, only : xz_HeatFluxBulk, xz_MixRtFluxBulk > ! use HeatFlux, only : xz_HeatFluxDiff, xza_MixRtFluxDiff > use HeatFlux_N1994, only : xz_HeatFluxBulk, xz_MixRtFluxBulk > > ! 湿潤飽和調節法計算用モジュール > use MoistAdjust, only : MoistAdjustSvapPress, MoistAdjustNH4SH > > ! 雲物理パラメタリゼーション > use WarmRainPrm, only : WarmRainPrm_Init, xz_Rain2GasHeat, xza_Rain2Gas, & > & xza_Rain2GasNH4SH, xz_Rain2GasHeatNH4SH, & > & xza_Cloud2Rain, xza_FallRain > > ! (2008/06/27 山下達也追加) > ! 雲物理パラメータの初期化サブルーチン > use cloudset, only : cloudset_init 67,70d168 < ! 放射強制計算用モジュール < ! Radiative forceing module < ! < use Radiation, only: Radiation_init, xz_RadHeatConst 72,79c170,171 < ! 湿潤過程計算用モジュール < ! Moist processes modules < ! < use moistset, only: moistset_init < use MoistAdjust, only: MoistAdjustSvapPress < use WarmRainPrm, only: WarmRainPrm_Init, xz_Rain2GasHeat, & < & xza_Rain2Gas, xza_Cloud2Rain, xza_FallRain < use MoistBuoyancy, only: MoistBuoy_Init, xz_BuoyMoistKm, xr_BuoyMolWt, & --- > ! 湿潤気塊の浮力計算用モジュール > use MoistBuoyancy,only : MoistBuoy_Init, xz_BuoyMoistKm, xr_BuoyMolWt, & 81,86d172 < use fillnegative, only: FillNegative_init, xza_FillNegative_xza < < ! 安定度の計算 < ! Static stability calculation module < ! < use ECCM, only: ECCM_Stab 88,124c174,175 < ! 数値拡散/摩擦計算用モジュール < ! Numerical diffussion /dumping module < ! < use NumDiffusion, only: NumDiffusion_Init, xz_NumDiffScalar, & < & xz_NumDiffKm, xza_NumDiffScalar, & < & pz_NumDiffVelX, xr_NumDiffVelZ < use damping, only: damping_init, DampSponge_xz, DampSponge_pz, & < & DampSponge_xr < < ! 積算値管理モジュール < ! Monitor variables setup modules < ! < use StorePotTemp, only: StorePotTemp_init, StorePotTempClean, & < & StorePotTempCond < use StoreMixRt, only: StoreMixRt_init, StoreMixRtClean, StoreMixRtCond, & < & StoreMixRtFill1, StoreMixRtFill2 < use StoreBuoy, only: StoreBuoy_init, StoreBuoyClean < use StoreStab, only: StoreStab_init, StoreStabClean < < ! ファイル入出力モジュール < ! File I/O module < ! < use RestartFileIO, only: ReStartFile_Open, ReStartFile_OutPut, & < & ReStartFile_Close, ReStartFile_Get < use HistoryFileIO, only: HistoryFile_Open, HistoryFile_OutPut, & < & HistoryFile_Close < < ! 下請けモジュール < ! Utility modules < ! < use cflcheck, only: CFLCheckTimeShort, CFLCheckTimeLongVelX, & < & CFLCheckTimeLongVelZ < use timefilter, only: AsselinFilter_xz, AsselinFilter_xr, & < & AsselinFilter_pz, AsselinFilter_xza < use boundary, only: BoundaryXCyc_xz, BoundaryZSym_xz, & < & BoundaryXCyc_xza, BoundaryZSym_xza, BoundaryXCyc_pz, & < & BoundaryZSym_pz, BoundaryXCyc_xr, BoundaryZAntiSym_xr --- > ! 安定度の計算 > use ECCM, only: ECCM_Stab 126,127d176 < ! 変数宣言 ; Variables definition < ! 128a178 > !暗黙の型宣言禁止 131,154c181,192 < ! 内部変数 < ! Internal variables < ! < character(80) :: cfgfile ! NAMELIST ファイル名 NAMELIST file name < real(8), allocatable :: pz_VelXBl(:,:) < ! $ u(t-\Delta t) $ 水平風 Horizontal wind < real(8), allocatable :: pz_VelXNl(:,:) < ! $ u(t) $ 水平風 Horizontal wind < real(8), allocatable :: pz_VelXAl(:,:) < ! $ u (t+\Delta t)a $ 水平風 Horizontal wind < real(8), allocatable :: pz_VelXNs(:,:) < ! $ u (\tau) $ 水平風 Horizontal wind < real(8), allocatable :: pz_VelXAs(:,:) < ! $ u (\tau +\Delta \tau) 水平風 Horizontal wind < real(8), allocatable :: xr_VelZBl(:,:) < ! $ w (t-\Delta t) 鉛直風 Vertical wind < real(8), allocatable :: xr_VelZNl(:,:) < ! $ w (t) 鉛直風 Vertical wind < real(8), allocatable :: xr_VelZAl(:,:) < ! $ w (t+\Delta t) 鉛直風 Vertical wind < real(8), allocatable :: xr_VelZNs(:,:) < ! $ w (\tau) 鉛直風 Vertical wind < real(8), allocatable :: xr_VelZAs(:,:) < ! $ w (\tau +\Delta \tau) $ 鉛直風 Vertical wind --- > !内部変数 > character(80) :: cfgfile > real(8), allocatable :: pz_VelXBl(:,:) > real(8), allocatable :: pz_VelXNl(:,:) > real(8), allocatable :: pz_VelXAl(:,:) > real(8), allocatable :: pz_VelXNs(:,:) > real(8), allocatable :: pz_VelXAs(:,:) > real(8), allocatable :: xr_VelZBl(:,:) > real(8), allocatable :: xr_VelZNl(:,:) > real(8), allocatable :: xr_VelZAl(:,:) > real(8), allocatable :: xr_VelZNs(:,:) > real(8), allocatable :: xr_VelZAs(:,:) 156d193 < ! $ \pi (t-\Delta t) $ 圧力関数 Exner function 158d194 < ! $ \pi (t) $ 圧力関数 Exner function 160d195 < ! $ \pi (t+\Delta t) $ 圧力関数 Exner function 162d196 < ! $ \pi (\tau) $ 圧力関数 Exner function 164,170c198 < ! $ \pi (\tau +\Delta \tau) $ 圧力関数 Exner function < real(8), allocatable :: xz_PotTempBl(:,:) < ! $ \theta (t-\Delta t) $ 温位 Potential temp. < real(8), allocatable :: xz_PotTempNl(:,:) < ! $ \theta (t) $ 温位 Potential temp. < real(8), allocatable :: xz_PotTempAl(:,:) < ! $ \theta (t+\Delta t) $ 温位 Potential temp. --- > real(8), allocatable :: xz_ExnerSum(:,:) 172c200,206 < ! 温位の作業配列 Work array for potential temp. --- > real(8), allocatable :: xz_PotTempBl(:,:) > real(8), allocatable :: xz_PotTempNl(:,:) > real(8), allocatable :: xz_PotTempAl(:,:) > real(8), allocatable :: xz_PotTempNs(:,:) > real(8), allocatable :: xz_PotTempAs(:,:) > real(8), allocatable :: xz_PotTempSum(:,:) > real(8), allocatable :: xz_TempSum(:,:) 174,178c208 < ! $ Km (t-\Delta t) $ 乱流拡散係数 < ! Turbulent diffusion coeff. < real(8), allocatable :: xz_KmNl(:,:) < ! $ K_m (t) 乱流拡散係数 < ! Turbulent diffusion coeff. --- > real(8), allocatable :: xz_KmNl(:,:) 180,181d209 < ! $ K_m (t+\Delta t) $ 乱流拡散係数 < ! Turbulent diffusion coeff. 183,184d210 < ! $ K_h (t-\Delta t) $ 乱流拡散係数 < ! Turbulent diffusion coeff. 186,187d211 < ! $ K_h (t) $ 乱流拡散係数 < ! Turbulent diffusion coeff. 189,190c213 < ! $ K_h (t+\Delta t) $ 乱流拡散係数 < ! Turbulent diffusion coeff. --- > real(8), allocatable :: xza_MixRtWork(:,:,:) 192,196c215 < ! $ q (t-\Delta t) $ 湿潤量の混合比 < ! Mixing ratio of moist variables. < real(8), allocatable :: xza_MixRtNl(:,:,:) < ! $ q (t) $ 湿潤量の混合比 < ! Mixing ratio of moist variables. --- > real(8), allocatable :: xza_MixRtNl(:,:,:) 198,230d216 < ! $ q (t+\Delta t) $ 湿潤量の混合比 < ! Mixing ratio of moist variables. < real(8), allocatable :: xza_MixRtWork(:,:,:) < ! 湿潤量の作業配列 < ! Work array for mixing ratio. < real(8), allocatable :: pz_AccelVelXNl(:,:) < ! 気圧傾度力を除いた $u$ の変化率 < ! Tendency of $u$ except for pressure gradient term < real(8), allocatable :: xr_AccelVelZNl(:,:) < ! 気圧傾度力を除いた $w$ の変化率 < ! Tendency of $w$ except for pressure gradient term < real(8), allocatable :: xza_DelMixRt(:,:,:) < ! 湿潤量の混合比 $ q $ の増分 < ! Mixing ratio variation. < real(8) :: Time ! 時刻 Time < real(8) :: ReStartTime(2) ! リスタートファイル出力時刻用配列 < ! Output time array for restart file < real(8), allocatable :: DelTimeLFrog(:) < ! リープフロッグスキーム用時間格子間隔 < ! Time interval for Leap-frog scheme < real(8) :: DelTimeEular ! オイラースキーム用時間格子 < ! Time interval for Eular scheme < integer :: NStepLFrog ! リープフロッグスキーム用時間ステップ数 < ! The number of time step for Leap-frog scheme < integer, allocatable :: NStepEular(:) < ! オイラースキーム用時間ステップ数 < ! The number of time step for Eular scheme < < integer :: & < & t, & < & tau, & ! do ループ変数 ; do loop variable < & t1, & ! do ループ変数 ; do loop variable < & t2 ! do ループ変数 ; do loop variable 231a218,225 > real(8), allocatable :: pz_AccelVelXNl(:,:) > real(8), allocatable :: xr_AccelVelZNl(:,:) > real(8), allocatable :: xza_DelMixRt(:,:,:) > > ! 長い時間ステップで評価すべき温位の項を格納する配列 > ! 2008/06/20 山下達也 追加 > real(8), allocatable :: xz_TendPotTempNl(:,:) > 233,241c227,232 < ! 初期化手続き Initialize procedure < ! < < ! NAMELIST ファイル名の読み込み < ! Loading NAMELIST file. < ! < call argset_init( & < & cfgfile & ! (out) < & ) --- > real(8) :: Time > real(8) :: ReStartTime(2) > real(8), allocatable :: DelTimeLFrog(:) > real(8) :: DelTimeEular > integer, allocatable :: NStepEular(:) > integer :: NStepLFrog 243,248c234 < ! デバッグ設定の初期化 < ! Initialization of debug output control. < ! < call debugset_init( & < & cfgfile & ! (in) < & ) --- > integer :: t, tau, t1, t2, k 250,253c236 < ! 化学定数の初期化 < ! Initialization of chemical constatns. < ! < call chemdata_init( ) --- > ! 以下の変数は山下が追加(2008/05/07) 255,267c238,287 < ! 時間積分の初期化 < ! Initialization of time integration. < ! < call timeset_init( & < & cfgfile & ! (in) < & ) < < ! 格子点情報の初期化 < ! Initialization of grid arrangement. < ! < call gridset_init( & < & cfgfile & ! (in) < & ) --- > ! 単位質量あたりの潜熱 > real(8), allocatable :: xz_LatHeatPerMassNl(:,:) > ! 過飽和度 > real(8), allocatable :: xz_SatRatioBl(:,:) > real(8), allocatable :: xz_SatRatioNl(:,:) > real(8), allocatable :: xz_SatRatioAl(:,:) > real(8), allocatable :: xz_SatRatioNs(:,:) > real(8), allocatable :: xz_SatRatioAs(:,:) > ! 雲密度 > real(8), allocatable :: xz_DensCloudBl(:,:) > real(8), allocatable :: xz_DensCloudNl(:,:) > real(8), allocatable :: xz_DensCloudAl(:,:) > real(8), allocatable :: xz_DensCloudNs(:,:) > real(8), allocatable :: xz_DensCloudAs(:,:) > > ! 凝結量 > real(8), allocatable :: xz_MassCondNs(:,:) > real(8), allocatable :: xz_MassCondNl(:,:) > ! 凝結熱による温位変化率 > real(8), allocatable :: xz_QCond(:,:) > ! 作業変数 > real(8), allocatable :: worknum(:,:) > ! 各格子点の質量密度(擾乱成分の寄与) > real(8), allocatable :: xz_MassDens(:,:) > ! 領域全体の気相の質量 > real(8) :: MassTotal > ! 領域全体の運動エネルギー > real(8) :: KineticEnergyTotal > ! 各格子点の運動エネルギー > real(8), allocatable :: xz_KineticEnergy(:,:) > ! 領域全体の雲の質量 > real(8) :: CloudMassTotal > > !コマンドライン引数の解釈 > ! NAMELIST ファイル名の読み込み > call argset_init(cfgfile) > > !デバッグ設定 > call debugset_init(cfgfile) > > !物質特性の初期化 > call chemdata_init() > > !時刻に関する設定の初期化 > ! NAMELIST から必要な情報を読み取り, 時間関連の変数の設定を行う. > call timeset_init(cfgfile) > > !格子点情報の初期化 > ! NAMELIST から情報を得て, 格子点を計算する > call gridset_init(cfgfile) 269,271c289 < ! 化学計算ルーチンの初期化 < ! Initialization of chemical routines. < ! --- > !化学計算ルーチンの初期化 274,279c292,294 < ! 基本場変数の初期化 < ! Initialization of basic state variables. < ! < call basicset_init( & < & cfgfile & ! (in) < & ) --- > !基本場の情報の初期化 > ! NAMELIST から情報を得て, 基本場を設定する. > call basicset_init(cfgfile) 281,286c296,299 < ! I/O ファイル名の初期化 < ! Initialization of output file name. < ! < call fileset_init( & < & cfgfile & ! (in) < & ) --- > !I/O ファイル名の初期化 > ! NAMELIST ファイル名を指定し, deepconv/arare の > ! 出力ファイル名を NAMELIST から得る > call fileset_init(cfgfile) 288,295c301,310 < ! 湿潤過程共有変数の初期化 < ! Initialization of common variables for moist process. < ! < call moistset_init( ) < < ! 積算値保管変数の初期化 < ! Initialization of monitor variables. < ! --- > !雲物理パラメータの初期化サブルーチン > call cloudset_init(cfgfile) > > !湿潤ルーチンの共有変数の初期化 > call moistset_init() > > !write(*,*) "OK" > > !積算値を保管するためのモジュールの初期化 > ! NAMELIST から情報を得て, 基本場を設定する. 301,303c316,318 < ! 内部変数の初期化 < ! Initialization of internal variables. < ! --- > write(*,*) "OK" > > !内部変数の初期化. とりあえずゼロを入れて値を確定させておく. 306,341c321,325 < ! 初期値の代入 < ! * ReStartFile が設定されている場合にはファイルを読み込む. < ! 設定されていない場合にはデフォルトの基本場と擾乱場を作る. < ! < ! Initial value set up. < ! * Read restartfile if it is specified. If not, make default basic < ! state and disturbance. < ! < call MessageNotify( "M", "main", "Initial value setup." ) < < if (trim(InitFile) /= '') then < < call MessageNotify( & < & "M", "main", "Restart file is %c", c1=trim(Initfile) ) < < call ReStartFile_Get( & < & ReStartTime, & ! (out) < & xz_PotTempBl, & ! (out) < & xz_ExnerBl, & ! (out) < & pz_VelXBl, & ! (out) < & xr_VelZBl, & ! (out) < & xza_MixRtBl, & ! (out) < & xz_KmBl, & ! (out) < & xz_KhBl, & ! (out) < & xz_PotTempNl, & ! (out) < & xz_ExnerNl, & ! (out) < & pz_VelXNl, & ! (out) < & xr_VelZNl, & ! (out) < & xza_MixRtNl, & ! (out) < & xz_KmNl, & ! (out) < & xz_KhNl & ! (out) < & ) < else < < call MessageNotify( & < & "W", "main", "Restart file is not specified." ) --- > write(*,*) "OK" > > !予報変数の初期化 > ! ReStartFile が設定されている場合にはファイルを読み込み, > ! 設定されていない場合には, デフォルトの基本場と擾乱場を作る. 343,356c327 < call BasicEnv( ) < call DisturbEnv( & < & cfgfile, & ! (out) < & xz_PotTempBl, & ! (out) < & xz_ExnerBl, & ! (out) < & pz_VelXBl, & ! (out) < & xr_VelZBl, & ! (out) < & xza_MixRtBl, & ! (out) < & xz_KmBl, & ! (out) < & xz_KhBl & ! (out) < & ) < < call BoundaryXCyc_pz( pz_VelXBl ) ! (inout) < call BoundaryZSym_pz( pz_VelXBl ) ! (inout) --- > write(*,*) InitFile 358,359c329 < call BoundaryXCyc_xr( xr_VelZBl ) ! (inout) < call BoundaryZAntiSym_xr( xr_VelZBl ) ! (inout) --- > if (trim(InitFile) /= '') then 361,362c331,339 < call BoundaryXCyc_xz( xz_PotTempBl ) ! (inout) < call BoundaryZSym_xz( xz_PotTempBl ) ! (inout) --- > !基本場, 擾乱場の初期値を netCDF ファイルから取得する. > call ReStartFile_Get( & > & ReStartTime, & > & xz_PotTempBl, xz_ExnerBl, pz_VelXBl, xr_VelZBl, & > & xza_MixRtBl, xz_KmBl, xz_KhBl, & > & xz_DensCloudBl, xz_SatRatioBl, & > & xz_PotTempNl, xz_ExnerNl, pz_VelXNl, xr_VelZNl, & > & xza_MixRtNl, xz_KmNl, xz_KhNl, & > & xz_DensCloudNl, xz_SatRatioNl ) 364,365c341 < call BoundaryXCyc_xza( xza_MixRtBl ) ! (inout) < call BoundaryZSym_xza( xza_MixRtBl ) ! (inout) --- > write(*,*) "OK" 366a343,349 > else > !デフォルト設定の基本場, 擾乱場を作成する. > call BasicEnv() > call DisturbEnv(cfgfile, & > & xz_PotTempBl, xz_ExnerBl, pz_VelXBl, xr_VelZBl, & > & xza_MixRtBl, xz_KmBl, xz_KhBl, & > & xz_DensCloudBl, xz_SatRatioBl ) 368,374c351,353 < ! 時刻 $ t $ の変数値の初期値の設定 < ! * 1 ループ目だけは $ t $ の値を $ t-\Delta t$ の値と同じにする. < ! 1 ステップ目はオイラー法で解く必要があるが, 1 ステップ目と < ! それ以外のステップを別々にコーディングしたくない為 < ! < ! Set up initial value of time = "t" variables. < ! --- > ! 1 ループ目だけは, bl と nl の値を同じにしておく. > ! 1 ステップ目はオイラー法で解く必要があるが, > ! 1 ステップ目とそれ以外のステップを別々にコーディングしたくない為 381a361,375 > xz_DensCloudNl = xz_DensCloudBl > xz_SatRatioNl = xz_SatRatioBl > xz_PotTempSum = xz_PotTempBl + xz_PotTempBasicZ > xz_ExnerSum = xz_ExnerBl + xz_ExnerBasicZ > xz_TempSum = xz_PotTempSum * xz_ExnerSum > xz_MassDens = & > & (xz_ExnerBasicZ + xz_ExnerNl)**( (CpDry - GasRDry)/GasRDry ) & > & / (xz_PotTempBasicZ + xz_PotTempNl) & > & - (xz_ExnerBasicZ )**( (CpDry - GasRDry)/GasRDry ) & > & / xz_PotTempBasicZ > MassTotal = (Xmax - Xmin) * PressSfc /Grav & > & * ( xz_ExnerBasicZ(RegXMin,RegZMin)**(CpDry/GasRDry) & > & - xz_ExnerBasicZ(RegXMin,RegZMax)**(CpDry/GasRDry) ) & > & + PressSfc * DelX * DelZ / GasRDry & > & * sum( xz_MassDens(RegXMin:RegXMax,RegZMin:RegZMax)) 382a377 > write(*,*) "OK" 385,390c380 < ! 数値摩擦係数の初期化 < ! Initialization of numerical friction coefficient. < ! < call Damping_Init( & < & cfgfile & ! (in) < & ) --- > write(*,*) "OK" 392,432c382,394 < ! 数値拡散項の初期化 < ! Initialization of numerical diffusion term. < ! < call NumDiffusion_Init( ) < < ! 乱流拡散項の初期化 < ! Initialization of turbulent diffusion term. < ! < call Turbulence_Init( ) < < ! 暖かい雨のパラメタリゼーションの初期化 < ! Initialization of warmrain parameterization. < ! < call WarmRainPrm_Init( & < & cfgfile & ! (in) < & ) < < ! 負の湿潤量の補填計算の初期化 < ! Initialization of negative moist value correction. < ! < call FillNegative_Init( & < & xza_MixRtBasicZ, & ! (in) < & xz_DensBasicZ & ! (in) < & ) < < ! 放射強制の初期化 < ! Initialization of radiative forcing. < ! < call Radiation_Init( & < & cfgfile & ! (in) < & ) < < ! 湿潤気塊の浮力計算の初期化 < ! Initialization of moist buoyancy calculation. < ! < call MoistBuoy_Init( ) < < ! 圧力計算用係数行列の初期化 < ! Initialization of coefficient matrix for exner function calculation. < ! < call xz_Exner_Init( ) --- > !---------------------------------------------------------------------- > ! パッケージ型モジュールの初期化 > ! デフォルトの値から変更する必要のあるルーチンのみ初期化 > !---------------------------------------------------------------------- > call Damping_Init( cfgfile ) !波の減衰係数の初期化 > call NumDiffusion_Init() !数値拡散項の初期化 > call Turbulence_Init() !乱流計算の初期化 > call WarmRainPrm_Init( cfgfile ) !暖かい雨のパラメタリゼーションの初期化 > call FillNegative_Init( xza_MixRtBasicZ, xz_DensBasicZ) > !移流による負の量の処理 > call Radiation_Init( cfgfile ) !放射強制の初期化 > call MoistBuoy_Init() !分子量に対する浮力計算ルーチンの初期化 > call xz_Exner_Init() !陰解法の初期化 434,436c396,399 < ! 時刻とループ回数の初期化 < ! Initialization of time integration. < ! --- > > !---------------------------------------------------------------------- > ! 時刻とループ回数の初期化 > !---------------------------------------------------------------------- 441,453d403 < < ! 計算開始時刻と時間格子間隔の初期化 < ! * ReStartFile が設定されている場合, ファイルから読み込んだ値を指定. < ! * ReStartFile が設定されてない場合 < ! * 開始時刻は 0.0 < ! * 1 ステップ目の時間格子間隔を陽に指定 < ! < ! Setup restart time and time interval. < ! * Read restartfile if it is specified. < ! * If not, < ! * "t" is set to be 0. < ! * Time intervals for 1st step are specified explicitly. < ! 455c405 < Time = ReStartTime(2) --- > Time = ReStartTime(2) !リスタート開始時刻 457,459c407,409 < Time = 0.0d0 < NstepEular(1) = NstepShort /2 < DelTimeLFrog(1) = DelTimeLong --- > Time = 0.0d0 !計算開始時刻 > NstepEular(1) = NstepShort /2 ! 1 ループ目だけ > DelTimeLFrog(1) = DelTimeLong ! 1 ループ目だけ 462,464c412,416 < ! ヒストリーファイルへの出力 < ! Out put to history file. < ! --- > > !---------------------------------------------------------------- > ! ファイル入出力 > !---------------------------------------------------------------- > !ファイルオープン 468,477c420,435 < call HistoryFile_Output( & < & ReStartTime(2), & ! (in) < & xz_PotTempNl, & ! (in) < & xz_ExnerNl, & ! (in) < & pz_VelXNl, & ! (in) < & xr_VelZNl, & ! (in) < & xza_MixRtNl, & ! (in) < & xz_KmNl, & ! (in) < & xz_KhNl & ! (in) < & ) --- > call HistoryFile_Output( & > & ReStartTime(2), & > & xz_PotTempNl, & > & xz_PotTempSum, & > & xz_TempSum, & > & xz_ExnerNl, & > & pz_VelXNl, & > & xr_VelZNl, & > & xza_MixRtNl, & > & xz_KmNl, & > & xz_KhNl, & > & xz_DensCloudNl, & > & xz_SatRatioNl, & > & MassTotal, & > & KineticEnergyTotal, & > & CloudMassTotal ) 479a438 > !時刻 0 の場合には出力 481,490c440,455 < call HistoryFile_Output( & ! (in) < & Time, & ! (in) < & xz_PotTempNl, & ! (in) < & xz_ExnerNl, & ! (in) < & pz_VelXNl, & ! (in) < & xr_VelZNl, & ! (in) < & xza_MixRtNl, & ! (in) < & xz_KmNl, & ! (in) < & xz_KhNl & ! (in) < & ) --- > call HistoryFile_Output( & > & Time, & > & xz_PotTempNl, & > & xz_PotTempSum, & > & xz_TempSum, & > & xz_ExnerNl, & > & pz_VelXNl, & > & xr_VelZNl, & > & xza_MixRtNl, & > & xz_KmNl, & > & xz_KhNl, & > & xz_DensCloudNl, & > & xz_SatRatioNl, & > & MassTotal, & > & KineticEnergyTotal, & > & CloudMassTotal ) 493,502c458,470 < ! 音波に対する CFL 条件のチェック < ! CFL condtion check for sound wave. < ! < call CFLCheckTimeShort( & < & xz_VelSoundBasicZ & ! (in) < & ) < < < ! 時間積分 time integration < ! --- > !---------------------------------------------------------------------- > ! 設定のチェック > !---------------------------------------------------------------------- > !CFL 条件のチェック > call CFLCheckTimeShort( xz_VelSoundBasicZ ) > > ! write(*,*) "OK" > > !---------------------------------------------------------------------- > ! 数値積分 > !---------------------------------------------------------------------- > call MessageNotify( "M", "main", "Time integration" ) > 506,509d473 < ! 時刻の設定 < ! Time setting. < ! < Time = Time + DelTimeLong 510a475,477 > > !時刻の設定 > Time = Time + DelTimeLong 512,514c479,483 < ! 渦拡散係数の移流拡散 < ! Advection and diffusion of turbulent diffusion coefficient. < ! --- > ! write(*,*) "OK" > > !---------------------------------------------------------------- > ! 渦粘性係数, 渦拡散係数を求める. > !---------------------------------------------------------------- 524a494,495 > > ! write(*,*) "OK" 526,531c497,499 < ! 値の上限下限の設定 < ! * 値は正になることを保証する < ! * 値の上限は 800 とする. 中島健介(1994, 学位論文)参照 < ! < ! Upper and lower bound value are specified. < ! --- > !値の上限下限の設定 > ! * 値は正になることを保証する > ! * 値の上限は 800 とする. 中島健介(1994, 学位論文)参照 532a501,505 > ! xz_KmAl = max( 0.0d0, min( xz_KmAl, 300.0d0 ) ) > > !境界条件 > call BoundaryXCyc_xz( xz_KmAl ) > call BoundaryZSym_xz( xz_KmAl ) 533a507,508 > !渦拡散定数を決める > xz_KhAl = 3.0d0 * xz_KmAl 535,538d509 < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xz( xz_KmAl ) ! (inout) < call BoundaryZSym_xz( xz_KmAl ) ! (inout) 540,543c511 < ! スカラーに対する渦拡散係数の計算 < ! Specify turbulent diffusion coefficient for scalar variables. < ! < xz_KhAl = 3.0d0 * xz_KmAl --- > ! write(*,*) "OK" 545,551c513,664 < ! 温位の移流拡散の計算 < ! Advection and diffusion of potential temperature. < ! < xz_PotTempAl = & < & xz_PotTempBl & < & + DelTimeLFrog(t) & < & * ( & --- > ! !---------------------------------------------------------------- > ! ! 温位の移流計算. > ! !---------------------------------------------------------------- > ! !時間積分 > ! xz_PotTempAl = & > ! & xz_PotTempBl & > ! & + DelTimeLFrog(t) & > ! & * ( & > ! & + xz_AdvScalar( xz_PotTempNl, pz_VelXNl, xr_VelZNl) & > ! & + xz_AdvScalar( xz_PotTempBasicZ, pz_VelXNl, xr_VelZNl) & > ! & + xz_TurbScalar(xz_PotTempBl, xz_KhBl) & > ! & + xz_TurbScalar(xz_PotTempBasicZ, xz_KhBl) & > ! & + xz_NumDiffScalar(xz_PotTempBl) & > ! & + xz_DispHeat( xz_KmBl ) & > ! & + xz_RadHeatConst( xz_ExnerBl ) & > ! & + xz_HeatFluxDiff( xz_PotTempNl ) & > !!! & + xz_HeatFluxBulk( xz_PotTempNl ) & > !!! & + xz_NewtonCool( xz_PotTempBl ) & > ! & ) > ! > ! !境界条件 > ! call BoundaryXCyc_xz( xz_PotTempAl ) > ! call BoundaryZSym_xz( xz_PotTempAl ) > > ! !---------------------------------------------------------------- > ! ! 凝縮成分の混合比の移流計算. > ! !---------------------------------------------------------------- > ! xza_MixRtAl = & > ! & xza_MixRtBl & > ! & + DelTimeLFrog(t) & > ! & * ( & > ! & + xza_AdvScalar(xza_MixRtNl, pz_VelXNl, xr_VelZNl)& > ! & + xza_AdvScalar(xza_MixRtBasicZ, pz_VelXNl, xr_VelZNl)& > ! & + xza_TurbScalar(xza_MixRtBl, xz_KhBl) & > ! & + xza_TurbScalar(xza_MixRtBasicZ,xz_KhBl) & > ! & + xza_NumDiffScalar(xza_MixRtBl) & > ! & + xza_FallRain(xza_MixRtBl) & > ! & + xza_MixRtFluxDiff(xza_MixRtNl) & > !!! & + xza_MixRtFluxBulk(xza_MixRtNl) & > ! & ) > ! > ! !移流によって負になった部分を埋める > ! xza_MixRtWork = xza_MixRtAl > ! xza_MixRtAl = xza_FillNegative_xza( xza_MixRtWork ) > ! > ! !埋めた/削った量を保管 > ! call StoreMixRtFill1( (xza_MixRtAl - xza_MixRtWork) / DelTimeLFrog(t) ) > ! > ! !境界条件 > ! call BoundaryXCyc_xza( xza_MixRtAl ) > ! call BoundaryZSym_xza( xza_MixRtAl ) > ! > ! > ! !------------------------------------------------------------- > ! ! 暖かい雨のパラメタリゼーション. > ! ! 雲<-->雨 の変換を行う > ! !------------------------------------------------------------- > ! !雲から雨への変換分を追加する. > ! ! xza_Cloud2Rain 関数は, 引数として時間刻みを取ることで, > ! ! 時間積分値を出力する. > ! > ! !これまでの値を作業配列に保管 > ! xza_MixRtWork = xza_MixRtAl > ! > ! !雨への変化量を計算 > ! xza_MixRtAl = xza_MixRtWork & > ! & + xza_Cloud2Rain( xza_MixRtAl, DelTimeLFrog(t) ) > ! > ! !雲から雨への変換量を保管 > ! call StoreMixRtCond( (xza_MixRtAl - xza_MixRtWork) / DelTimeLFrog(t) ) > ! > ! !境界条件 > ! call BoundaryXCyc_xza( xza_MixRtAl ) > ! call BoundaryZSym_xza( xza_MixRtAl ) > ! > ! > ! !------------------------------------------------------------- > ! ! 湿潤飽和調節法 > ! ! 水蒸気<-->雲の変換を行う. > ! !------------------------------------------------------------- > ! !これまでの値を作業配列に保管 > ! xz_PotTempWork = xz_PotTempAl > ! xza_MixRtWork = xza_MixRtAl > ! > ! !湿潤調節法を適用 > ! call MoistAdjustSvapPress( xz_ExnerNl, xz_PotTempAl, xza_MixRtAl ) > ! call MoistAdjustNH4SH( xz_ExnerNl, xz_PotTempAl, xza_MixRtAl ) > ! > ! !湿潤調節法による温位と混合比の変化量を保管 > ! call StorePotTempCond( (xz_PotTempAl - xz_PotTempWork) / DelTimeLFrog(t) ) > ! call StoreMixRtCond( (xza_MixRtAl - xza_MixRtWork) / DelTimeLFrog(t) ) > ! > ! !境界条件 > ! call BoundaryXCyc_xza( xza_MixRtAl ) > ! call BoundaryZSym_xza( xza_MixRtAl ) > ! > ! > ! !------------------------------------------------------------- > ! ! 暖かい雨のパラメタリゼーション. > ! ! 蒸気<-->雨 の変換を行う > ! !------------------------------------------------------------- > ! !雨から蒸気への変換に伴う混合比の変化を計算 > ! ! xza_Rain2Gas 関数は, 引数として時間刻みを取ることで, > ! ! 時間積分値を出力する. > ! > ! !これまでの値を作業配列に保管 > ! xz_PotTempWork = xz_PotTempAl > ! xza_MixRtWork = xza_MixRtAl > ! > ! !雨から蒸気への混合比変化を求める > ! ! 温位の計算において, 混合比変化が必要となるため, > ! ! 混合比変化を 1 つの配列として用意する. > ! xza_DelMixRt = 0.0d0 > ! xza_DelMixRt = & > ! & ( & > ! & + xza_Rain2Gas( & > ! & xz_ExnerNl, xz_PotTempAl, xza_MixRtAl, DelTimeLFrog(t) & > ! & ) & > ! & + xza_Rain2GasNH4SH( & > ! & xz_ExnerNl, xz_PotTempAl, xza_MixRtAl, DelTimeLFrog(t) & > ! & ) & > ! & ) > ! > ! !温位の計算. 雨から蒸気への変換に伴う潜熱・反応熱を追加. > ! xz_PotTempAl = & > ! & xz_PotTempWork & > ! & + ( & > ! & + xz_Rain2GasHeat( xz_PotTempAl, xz_ExnerNl, xza_DelMixRt ) & > ! & + xz_Rain2GasHeatNH4SH( xz_ExnerNl, xza_DelMixRt ) & > ! & ) > ! > ! !混合比の計算. 雨から蒸気への変換分を追加 > ! xza_MixRtAl = xza_MixRtWork + xza_DelMixRt > ! > ! !雨から蒸気の値の保管 > ! call StorePotTempCond( (xz_PotTempAl - xz_PotTempWork) / DelTimeLFrog(t) ) > ! call StoreMixRtCond( xza_DelMixRt / DelTimeLFrog(t) ) > ! > ! !境界条件 > ! call BoundaryXCyc_xz( xz_PotTempAl ) > ! call BoundaryZSym_xz( xz_PotTempAl ) > ! call BoundaryXCyc_xza( xza_MixRtAl ) > ! call BoundaryZSym_xza( xza_MixRtAl ) > ! > > !------------------------------------------------------------- > ! 長い時間ステップでの, 速度の移流, 拡散, 数値粘性, 浮力 > ! (2008/06/20, 山下達也 : 温位の移流, 乱流, 拡散, 数値粘性の項 > ! を格納する作業配列を追加) > !------------------------------------------------------------- > > xz_TendPotTempNl = & 556,562c669 < & + xz_NumDiffScalar(xz_PotTempBl) & < & + xz_DispHeat( xz_KmBl ) & < ! & + xz_RadHeatConst( xz_ExnerBl ) & < ! & + xz_HeatFluxDiff( xz_PotTempNl ) & < !! & + xz_HeatFluxBulk( xz_PotTempNl ) & < !! & + xz_NewtonCool( xz_PotTempBl ) & < & ) --- > & + xz_NumDiffScalar(xz_PotTempBl) 564,584d670 < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xz( xz_PotTempAl ) ! (inout) < call BoundaryZSym_xz( xz_PotTempAl ) ! (inout) < < ! 凝縮成分混合比の移流拡散 < ! Advection and diffusion of vapor, cloud and rain mixing ratios. < ! < xza_MixRtAl = & < & xza_MixRtBl & < & + DelTimeLFrog(t) & < & * ( & < & + xza_AdvScalar(xza_MixRtNl, pz_VelXNl, xr_VelZNl)& < & + xza_AdvScalar(xza_MixRtBasicZ, pz_VelXNl, xr_VelZNl)& < & + xza_TurbScalar(xza_MixRtBl, xz_KhBl) & < & + xza_TurbScalar(xza_MixRtBasicZ,xz_KhBl) & < & + xza_NumDiffScalar(xza_MixRtBl) & < & + xza_FallRain(xza_MixRtBl) & < & + xza_MixRtFluxDiff(xza_MixRtNl) & < !! & + xza_MixRtFluxBulk(xza_MixRtNl) & < & ) 586,589c672,674 < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xza( xza_MixRtAl ) ! (inout) < call BoundaryZSym_xza( xza_MixRtAl ) ! (inout) --- > ! do k = DimZMin, DimZMax > ! write(*,*) "TendPotTempNl",xz_TendPotTempNl(1,k) > ! end do 591,607c676,677 < ! 移流によって負になった部分を埋める < ! Negative values due to advection are corrected. < ! < xza_MixRtWork = xza_MixRtAl < xza_MixRtAl = xza_FillNegative_xza( xza_MixRtWork ) < < ! 埋めた/削った量を保管 < ! Correction value is stored. < ! < call StoreMixRtFill1( & < & (xza_MixRtAl - xza_MixRtWork) / DelTimeLFrog(t) & ! (in) < & ) < < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xza( xza_MixRtAl ) ! (inout) < call BoundaryZSym_xza( xza_MixRtAl ) ! (inout) --- > ! write(*,*) "PotTempBl(50,1)",xz_PotTempBl(50,1) > ! write(*,*) "TendPotTempNl(50,1)",xz_TendPotTempNl(50,1) 609,613c679 < ! 暖かい雨のパラメタリゼーション. < ! * 雲<-->雨 の変換を行う. < ! < ! Warm rain parameterization. < ! * Conversion from cloud to rain. --- > ! worknum = xz_NumDiffScalar(xz_PotTempBl) 615,642c681 < ! これまでの値を作業配列に保管 < ! Previous values are stored to work area. < ! < xza_MixRtWork = xza_MixRtAl < < ! 雨への変化量を計算 < ! Conversion values are calculated. < ! < xza_MixRtAl = & < & xza_MixRtWork + xza_Cloud2Rain( xza_MixRtAl, DelTimeLFrog(t) ) < < ! 雲から雨への変換量を保管 < ! Conversion values are sotred. < ! < call StoreMixRtCond( & < & (xza_MixRtAl - xza_MixRtWork) / DelTimeLFrog(t) & ! (in) < & ) < < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xza( xza_MixRtAl ) ! (inout) < call BoundaryZSym_xza( xza_MixRtAl ) ! (inout) < < ! 湿潤飽和調節 < ! * 蒸気<-->雲の変換を行う. < ! < ! Moist adjustment. < ! * Conversion from vapor to cloud. --- > ! write(*,*) "xz_NumDiffScalar(50,1)",worknum(50,1) 644,672c683,684 < ! これまでの値を作業配列に保管 < ! Previous values are stored to work area. < ! < xz_PotTempWork = xz_PotTempAl < xza_MixRtWork = xza_MixRtAl < < ! 湿潤調節法を適用 < ! Moist adjustment is applied. < ! < call MoistAdjustSvapPress( & < & xz_ExnerNl, & ! (in) < & xz_PotTempAl, & ! (inout) < & xza_MixRtAl & ! (inout) < & ) < < ! 湿潤調節法による温位と混合比の変化量を保管 < ! Adjustment values are stored. < ! < call StorePotTempCond( & < & (xz_PotTempAl - xz_PotTempWork) / DelTimeLFrog(t) & ! (in) < & ) < call StoreMixRtCond( & < & (xza_MixRtAl - xza_MixRtWork) / DelTimeLFrog(t) & ! (in) < & ) < < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xza( xza_MixRtAl ) ! (inout) < call BoundaryZSym_xza( xza_MixRtAl ) ! (inout) --- > ! worknum = - xz_AdvScalar( xz_PotTempNl, pz_VelXNl, xr_VelZNl) & > ! & - xz_AdvScalar( xz_PotTempBasicZ, pz_VelXNl, xr_VelZNl) 674,678c686,697 < ! 暖かい雨のパラメタリゼーション. < ! * 蒸気<-->雨 の変換を行う < ! < ! Warm rain parameterization. < ! * Conversion from rain to vapor. --- > ! write(*,*) "xz_AdvScalar(50,1)",worknum(50,1) > > ! worknum = xz_TurbScalar(xz_PotTempBl, xz_KhBl) & > ! & + xz_TurbScalar(xz_PotTempBasicZ, xz_KhBl) > > ! write(*,*) "xz_TurbScalar(50,1)",worknum(50,1) > > ! write(*,*) "PotTempBl(50,2)",xz_PotTempBl(50,2) > ! write(*,*) "xz_NumDiffScalar(50,2)",worknum(50,2) > > ! write(*,*) "PotTempBl(50,3)",xz_PotTempBl(50,3) > ! write(*,*) "xz_NumDiffScalar(50,3)",worknum(50,3) 680,733d698 < ! これまでの値を作業配列に保管 < ! Previous values are stored to work area. < ! < xz_PotTempWork = xz_PotTempAl < xza_MixRtWork = xza_MixRtAl < < ! 雨から蒸気への混合比変化を求める < ! * 温位の計算において, 混合比変化が必要となるため, < ! 混合比変化を 1 つの配列として用意する. < ! < ! Conversion values are calculated. < ! < xza_DelMixRt = 0.0d0 < xza_DelMixRt = & < & ( & < & + xza_Rain2Gas( & < & xz_ExnerNl, xz_PotTempAl, xza_MixRtAl, DelTimeLFrog(t) & < & ) & < & ) < < ! 温位の計算. 雨から蒸気への変換に伴う潜熱・反応熱を追加. < ! < ! < xz_PotTempAl = & < & xz_PotTempWork & < & + ( & < & xz_Rain2GasHeat( xz_PotTempAl, xz_ExnerNl, xza_DelMixRt ) & < & ) < < ! 混合比の計算. 雨から蒸気への変換分を追加 < ! < ! < xza_MixRtAl = xza_MixRtWork + xza_DelMixRt < < ! 雨から蒸気の値の保管 < ! < ! < call StorePotTempCond( & < & (xz_PotTempAl - xz_PotTempWork) / DelTimeLFrog(t) & ! (in) < & ) < call StoreMixRtCond( & < & xza_DelMixRt / DelTimeLFrog(t) & ! (in) < & ) < < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xz( xz_PotTempAl ) ! (inout) < call BoundaryZSym_xz( xz_PotTempAl ) ! (inout) < call BoundaryXCyc_xza( xza_MixRtAl ) ! (inout) < call BoundaryZSym_xza( xza_MixRtAl ) ! (inout) < < ! 速度の移流拡散. < ! Advection and diffusion of velocity components. < ! 739c704,705 < --- > write(*,*) "OK" > 743,744c709,710 < & + xr_BuoyMolWt(xza_MixRtNl) & < & + xr_BuoyDrag(xza_MixRtNl) & --- > ! & + xr_BuoyMolWt(xza_MixRtNl) & > ! & + xr_BuoyDrag(xza_MixRtNl) & 747a714 > ! write(*,*) "OK" 749,751c716,727 < ! 短い時間ステップの初期値作成. < ! Initial values set up for time integration with short time step. < ! --- > ! xz_TendPotTempNl = & > ! & + xz_AdvScalar( xz_PotTempNl, pz_VelXNl, xr_VelZNl) & > ! & + xz_AdvScalar( xz_PotTempBasicZ, pz_VelXNl, xr_VelZNl) & > ! & + xz_TurbScalar(xz_PotTempBl, xz_KhBl) & > ! & + xz_TurbScalar(xz_PotTempBasicZ, xz_KhBl) & > ! & + xz_NumDiffScalar(xz_PotTempBl) > > ! write(*,*) "OK" > > !------------------------------------------------------------- > ! 短い時間ステップの初期値作成 > !------------------------------------------------------------- 755,758c731,738 < < ! 短い時間ステップの時間積分. オイラー法を利用. < ! Time integration with short time step. < ! --- > xz_PotTempNs = xz_PotTempBl > xz_DensCloudNs = xz_DensCloudBl > xz_SatRatioNs = xz_SatRatioBl > > > !------------------------------------------------------------- > ! 短い時間ステップの積分. オイラー法を利用 > !------------------------------------------------------------- 759a740,840 > > !------------------------------------------------------------- > ! 2008/04/14 山下追加 > ! 凝結量の計算, 凝結物濃度の計算, 凝結熱の計算 > !------------------------------------------------------------- > > !=== 単位凝結量あたりの潜熱の計算 > call LatentHeatPerMass( xz_LatHeatPerMassNl ) > !(out) 単位質量あたりの潜熱 > > ! write(*,*) "OK" > > !=== 凝結量の計算 > call MassCondense( & > & xz_LatHeatPerMassNl, & !(in) 単位質量あたりの潜熱 > & xz_SatRatioNs, & !(in) 過飽和度 > & xz_PotTempNs, & !(in) 温位 > & xz_ExnerNs, & !(in) 無次元圧力 > & xz_DensCloudNs, & !(in) 雲密度 > & xz_MassCondNs) !(out)凝結量 > > ! write(*,*) "OK" > > ! !=== 凝結物質濃度の計算(移流を長い時間で計算) > ! call DensityCloud( & > ! & xz_DensCloudNs, & !(in) 現在の時間の雲密度 > ! & DelTimeShort, & !(in) 時間間隔 > ! & pz_VelXNl, xr_VelZNl, xz_DensCloudNl, & !(in) フラックス項の計算で用いる値 > ! & xz_MassCondNs, & !(in) 凝結量 > ! & xz_DensCloudAs) !(out)次の時間の雲密度 > > !=== 凝結物質濃度の計算(移流を短い時間で計算) > call DensityCloud( & > & xz_DensCloudNs, & !(in) 現在の時間の雲密度 > & DelTimeShort, & !(in) 時間間隔 > & pz_VelXNs, xr_VelZNs, xz_DensCloudNs, & !(in) フラックス項の計算で用いる値 > & xz_MassCondNs, & !(in) 凝結量 > & xz_DensCloudAs) !(out)次の時間の雲密度 > > > ! 境界条件 > call BoundaryXCyc_xz( xz_DensCloudAs ) > call BoundaryZSym_xz( xz_DensCloudAs ) > > ! write(*,*) "OK!" > > ! (2005/12/07 北守太一) > ! * 凝結により発生した潜熱を計算 > !=== 凝結熱の計算 > call LatentHeat( & > & xz_MassCondNs, & !(in) 凝結量 > & xz_LatHeatPerMassNl, & !(in) 単位質量あたりの潜熱 > & xz_QCond) !(out)凝結熱による温位変化率 > > ! write(*,*) "OKOK" > > ! ! (2008/06/16 山下達也) > ! !=== 過飽和度の計算 > ! call SaturationRatio( & > ! & xz_ExnerAs, & !(in) > ! & xz_PotTempAs, & !(in) > ! & xz_SatRatioAs) !(out) > ! > ! do k = DimZMin, DimZMax > ! write(*,*) "satratio",xz_SatRatioAs(1,k) > ! end do > > ! > ! 温位の移流計算. > !(2008/06/20, 山下達也 : > ! 主成分凝結を議論するため, 短い時間ステップのループ内 > ! で計算するよう書き換えた. ) > ! > > > xz_PotTempAs = & > & xz_PotTempNs & > & + DelTimeEular & > & * ( & > ! & + xz_AdvScalar( xz_PotTempNl, pz_VelXNl, xr_VelZNl) & > ! & + xz_AdvScalar( xz_PotTempBasicZ, pz_VelXNl, xr_VelZNl) & > ! & + xz_TurbScalar(xz_PotTempBl, xz_KhBl) & > ! & + xz_TurbScalar(xz_PotTempBasicZ, xz_KhBl) & > ! & + xz_NumDiffScalar(xz_PotTempBl) & > & + xz_TendPotTempNl & > & + xz_DispHeat( xz_KmBl ) & > & + xz_RadHeatConst( xz_ExnerBl ) & > ! & + xz_HeatFluxDiff( xz_PotTempNl ) & > & + xz_Qcond & > ! & + xz_HeatFluxBulk( xz_PotTempNl, pz_VelXNl ) & > ! & + xz_HeatFluxBulk( xz_PotTempNl ) & > !! & + xz_NewtonCool( xz_PotTempBl ) & > & ) > > !境界条件 > call BoundaryXCyc_xz( xz_PotTempAs ) > call BoundaryZSym_xz( xz_PotTempAs ) > > > > ! write(*,*) "OK" 761,763c842,844 < ! 速度 u の計算. < ! Time integration horizontal velocity (u). < ! --- > !------------------------------------------------------------- > ! 速度 u の計算 > !------------------------------------------------------------- 772,775c853,855 < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_pz( pz_VelXAs ) ! (inout) < call BoundaryZSym_pz( pz_VelXAs ) ! (inout) --- > !境界条件 > call BoundaryXCyc_pz( pz_VelXAs ) > call BoundaryZSym_pz( pz_VelXAs ) 777,779c857,866 < ! エクスナー関数の計算. < ! Time integration exner function. < ! --- > !------------------------------------------------------------- > ! エクスナー関数の計算 > !------------------------------------------------------------- > ! xz_ExnerAs = xz_Exner( & > ! & xr_AccelVelZNl, & > ! & pz_VelXNs, & > ! & pz_VelXAs, & > ! & xr_VelZNs, & > ! & xz_ExnerNs) > 785c872,876 < & xz_ExnerNs) --- > & xz_ExnerNs, & > ! & xz_ExnerBasicZ, & > ! & xz_MassCondNl, & > & xz_MassCondNs, & > & xz_LatHeatPerMassNl) 787,790c878,885 < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xz( xz_ExnerAs ) ! (inout) < call BoundaryZSym_xz( xz_ExnerAs ) ! (inout) --- > !境界条件 > call BoundaryXCyc_xz( xz_ExnerAs ) > call BoundaryZSym_xz( xz_ExnerAs ) > > ! write(*,*) "pz_VelXAs", pz_VelXAs(50,1) > ! write(*,*) "xz_ExnerAs", xz_ExnerAs(50,1) > > ! write(*,*) "OK" 791a887 > !------------------------------------------------------------- 793,794c889 < ! Time integration vertical velocity. < ! --- > !------------------------------------------------------------- 803,806c898,921 < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xr( xr_VelZAs ) ! (iuout) < call BoundaryZAntiSym_xr( xr_VelZAs ) ! (inout) --- > !境界条件 > call BoundaryXCyc_xr( xr_VelZAs ) > call BoundaryZAntiSym_xr( xr_VelZAs ) > > ! worknum = - xr_GradPi(xz_ExnerAs,xz_ExnerNs,pz_VelXNs,xr_VelZNs) > ! write(*,*) "- xr_GradPi", worknum(50,1) > > ! worknum = xr_AccelVelZNl > ! write(*,*) "xr_AccelVelZNl", worknum(50,1) > > ! write(*,*) "xr_VelZAs", xr_VelZAs(50,1) > > ! write(*,*) "OK" > > ! (2008/06/16 山下達也) > !=== 過飽和度の計算 > call SaturationRatio( & > & xz_ExnerAs, & !(in) > & xz_PotTempAs, & !(in) > & xz_SatRatioAs) !(out) > > ! do k = DimZMin, DimZMax > ! write(*,*) "satratio",xz_SatRatioAs(1,k) > ! end do 807a923 > !------------------------------------------------------------- 809,810c925 < ! Renew prognostic variables for next short time step integration. < ! --- > !------------------------------------------------------------- 811a927 > xz_PotTempNs = xz_PotTempAs 814c930,932 < --- > xz_DensCloudNs = xz_DensCloudAs > xz_SatRatioNs = xz_SatRatioAs > 815a934,935 > > 816a937 > !---------------------------------------------------------------- 818,819c939 < ! Renew prognostic variables for next long time step integration. < ! --- > !---------------------------------------------------------------- 820a941 > xz_PotTempAl = xz_PotTempAs 823,870c944,945 < < ! 時間フィルタ. < ! Time filter. < ! < call AsselinFilter_xz( & < & xz_ExnerAl, & ! (in) < & xz_ExnerNl, & ! (inout) < & xz_ExnerBl & ! (in) < & ) < call AsselinFilter_pz( & < & pz_VelXAl, & ! (in) < & pz_VelXNl, & ! (inout) < & pz_VelXBl & ! (in) < & ) < call AsselinFilter_xr( & < & xr_VelZAl, & ! (in) < & xr_VelZNl, & ! (inout) < & xr_VelZBl & ! (in) < & ) < call AsselinFilter_xz( & < & xz_PotTempAl, & ! (in) < & xz_PotTempNl, & ! (inout) < & xz_PotTempBl & ! (in) < & ) < call AsselinFilter_xz( & < & xz_KmAl, & ! (in) < & xz_KmNl, & ! (inout) < & xz_KmBl & ! (in) < & ) < call AsselinFilter_xza( & < & xza_MixRtAl, & ! (in) < & xza_MixRtNl, & ! (inout) < & xza_MixRtBl & ! (in) < & ) < < ! スポンジ層. < ! Numerical dumping. < ! < call DampSponge_pz( & < & pz_VelXAl, & ! (inout) < & pz_VelXBl, & ! (inout) < & DelTimeLFrog(t) & ! (in) < & ) < call DampSponge_xr( & < & xr_VelZAl, & ! (inout) < & xr_VelZBl, & ! (inout) < & DelTimeLFrog(t) & ! (in) < & ) --- > xz_DensCloudAl = xz_DensCloudAs > xz_SatRatioAl = xz_SatRatioAs 872,879d946 < ! 混合比がゼロ以下にならないための処置. < ! Negative values mixing ratios are corrected. < ! < xza_MixRtWork = xza_MixRtAl < xza_MixRtAl = max( - xza_MixRtBasicZ, xza_MixRtWork ) < call StoreMixRtFill2( & < & (xza_MixRtAl - xza_MixRtWork) / DelTimeLFrog(t) & ! (in) < &) 881,892c948,1014 < ! 安定度の計算. < ! Calculation static stability. < ! < call ECCM_Stab( & < & xz_PotTempAl, & ! (in) < & xz_ExnerAl, & ! (in) < & xza_MixRtAl & ! (in) < & ) < < ! 長い時間ステップのループを回すための処置. < ! Renew prognostic variables for next long time step integration. < ! --- > !------------------------------------------------------------- > ! アッセリンの時間フィルタ. Nl の値をフィルタリング > ! 1 ステップ目は Euler 法で計算するため, フィルタをかけない. > ! (2008/08/25 山下達也) > !------------------------------------------------------------- > > ! if ( t /= 1 ) then > !! call AsselinFilter_xz(xz_ExnerAl, xz_ExnerNl, xz_ExnerBl) > !! call AsselinFilter_pz(pz_VelXAl, pz_VelXNl, pz_VelXBl ) > !! call AsselinFilter_xr(xr_VelZAl, xr_VelZNl, xr_VelZBl ) > !! call AsselinFilter_xz(xz_PotTempAl, xz_PotTempNl, xz_PotTempBl) > ! call AsselinFilter_xz(xz_KmAl, xz_KmNl, xz_KmBl) > !! call AsselinFilter_xza(xza_MixRtAl, xza_MixRtNl, xza_MixRtBl) > !! call AsselinFilter_xz(xz_DensCloudAl, xz_DensCloudNl, xz_DensCloudBl) > ! else > ! write(*,*) "OK" > ! end if > > if ( t /= 1 ) then > call AsselinFilter_xz(xz_ExnerAl, xz_ExnerNl, xz_ExnerBl) > call AsselinFilter_pz(pz_VelXAl, pz_VelXNl, pz_VelXBl ) > call AsselinFilter_xr(xr_VelZAl, xr_VelZNl, xr_VelZBl ) > call AsselinFilter_xz(xz_PotTempAl, xz_PotTempNl, xz_PotTempBl) > call AsselinFilter_xz(xz_KmAl, xz_KmNl, xz_KmBl) > ! call AsselinFilter_xza(xza_MixRtAl, xza_MixRtNl, xza_MixRtBl) > ! call AsselinFilter_xz(xz_DensCloudAl, xz_DensCloudNl, xz_DensCloudBl) > else > write(*,*) "OK" > end if > > ! call AsselinFilter_xz(xz_ExnerAl, xz_ExnerNl, xz_ExnerBl) > ! call AsselinFilter_pz(pz_VelXAl, pz_VelXNl, pz_VelXBl ) > ! call AsselinFilter_xr(xr_VelZAl, xr_VelZNl, xr_VelZBl ) > ! call AsselinFilter_xz(xz_PotTempAl, xz_PotTempNl, xz_PotTempBl) > ! call AsselinFilter_xz(xz_KmAl, xz_KmNl, xz_KmBl) > !! call AsselinFilter_xza(xza_MixRtAl, xza_MixRtNl, xza_MixRtBl) > !! call AsselinFilter_xz(xz_DensCloudAl, xz_DensCloudNl, xz_DensCloudBl) > > !------------------------------------------------------------- > ! スポンジ層 > !------------------------------------------------------------- > call DampSponge_pz( pz_VelXAl, pz_VelXBl, DelTimeLFrog(t) ) > call DampSponge_xr( xr_VelZAl, xr_VelZBl, DelTimeLFrog(t) ) > ! xz_ExnerAl = xz_DampSponge( xz_ExnerAl, xz_ExnerBl, DelTimeLFrog(t) ) > ! pz_VelXAl = pz_DampSponge( pz_VelXAl, pz_VelXBl, DelTimeLFrog(t) ) > ! xr_VelZAl = xr_DampSponge( xr_VelZAl, xr_VelZBl, DelTimeLFrog(t) ) > ! xz_PotTempAl = xz_DampSponge( xz_PotTempAl, xz_PotTempBl, DelTimeLFrog(t) ) > ! xz_KmAl = xz_DampSponge( xz_KmAl, xz_KmBl, DelTimeLFrog(t) ) > > > !-------------------------------------------------------------- > ! 混合比がゼロ以下にならないための処置 > !--------------------------------------------------------------- > ! xza_MixRtWork = xza_MixRtAl > ! xza_MixRtAl = max( - xza_MixRtBasicZ, xza_MixRtWork ) > ! call StoreMixRtFill2( (xza_MixRtAl - xza_MixRtWork) / DelTimeLFrog(t) ) > > > !-------------------------------------------------------------- > ! 解析値 > !--------------------------------------------------------------- > call ECCM_Stab( xz_PotTempAl, xz_ExnerAl, xza_MixRtAl ) > > !---------------------------------------------------------------- > ! 長い時間ステップのループを回すための処置 > !---------------------------------------------------------------- > 899a1022,1024 > xz_DensCloudBl = xz_DensCloudNl > xz_SatRatioBl = xz_SatRatioNl > 908c1033,1072 < --- > xz_DensCloudNl = xz_DensCloudAl > xz_SatRatioNl = xz_SatRatioAl > > xz_PotTempSum = xz_PotTempNl + xz_PotTempBasicZ > xz_ExnerSum = xz_ExnerNl + xz_ExnerBasicZ > xz_TempSum = xz_PotTempSum * xz_ExnerSum > ! 2008/08/16(山下 達也) > ! 基本場と擾乱場の和を出力する為に追加 > > ! 積分量の計算 > > ! 各格子点の質量密度(擾乱成分の寄与) > xz_MassDens = & > & (xz_ExnerBasicZ + xz_ExnerNl)**( (CpDry - GasRDry)/GasRDry ) & > & / (xz_PotTempBasicZ + xz_PotTempNl) & > & - (xz_ExnerBasicZ )**( (CpDry - GasRDry)/GasRDry ) & > & / xz_PotTempBasicZ > > ! 領域全体の気相の質量 > MassTotal = (Xmax - Xmin) * PressSfc /Grav & > & * ( xz_ExnerBasicZ(RegXMin,RegZMin)**(CpDry/GasRDry) & > & - xz_ExnerBasicZ(RegXMin,RegZMax)**(CpDry/GasRDry) ) & > & + PressSfc * DelX * DelZ / GasRDry & > & * sum( xz_MassDens(RegXMin:RegXMax,RegZMin:RegZMax)) > > ! 各格子点の運動エネルギー > xz_KineticEnergy = PressSfc * DelX * DelZ / GasRDry & > & * (xz_ExnerBasicZ + xz_ExnerNl )**((CpDry - GasRDry)/GasRDry) & > & / (xz_PotTempBasicZ + xz_PotTempNl) & > & * ( xz_avr_pz(pz_VelXNl)**2.0d0 + xz_avr_xr(xr_VelZNl)**2.0d0 & > & ) > > ! 領域全体の運動エネルギー > KineticEnergyTotal = & > & sum( xz_KineticEnergy(RegXMin:RegXMax,RegZMin:RegZMax) ) > > ! 領域全体の雲の質量 > CloudMassTotal = DelX * DelZ & > & * sum( xz_DensCloudNl(RegXMin:RegXMax,RegZMin:RegZMax) ) > 910,914d1073 < < ! ヒストリーファイルへの出力. < ! Out put to history file. < ! < call MessageNotify( "M", "main", "Time = %f", d=(/Time/) ) 916,924c1075,1079 < ! 移流に対する CFL 条件のチェック < ! CFL condtion check for advection < ! < call CFLCheckTimeLongVelX( & < & pz_VelXNl & ! (in) < & ) < call CFLCheckTimeLongVelZ( & < & xr_VelZNl & ! (in) < & ) --- > !---------------------------------------------------------------- > ! ファイル出力 > !---------------------------------------------------------------- > ! CFL 条件のチェック > call MessageNotify( "M", "main", "Time = %f", d=(/Time/) ) 926,937c1081,1100 < ! ヒストリファイル出力. < ! Out put to history file. < ! < call HistoryFile_Output( & < & Time, & ! (in) < & xz_PotTempNl, & ! (in) < & xz_ExnerNl, & ! (in) < & pz_VelXNl, & ! (in) < & xr_VelZNl, & ! (in) < & xza_MixRtNl, & ! (in) < & xz_KmNl, & ! (in) < & xz_KhNl & ! (in) --- > call CFLCheckTimeLongVelX( pz_VelXNl ) > call CFLCheckTimeLongVelZ( xr_VelZNl ) > > !ヒストリファイル出力 > call HistoryFile_Output( & > & Time, & > & xz_PotTempNl, & > & xz_PotTempSum, & > & xz_TempSum, & > & xz_ExnerNl, & > & pz_VelXNl, & > & xr_VelZNl, & > & xza_MixRtNl, & > & xz_KmNl, & > & xz_KhNl, & > & xz_DensCloudNl, & > & xz_SatRatioNl, & > & MassTotal, & > & KineticEnergyTotal, & > & CloudMassTotal & 940,942c1103 < ! 積算値のクリア. < ! Clear monitor variables. < ! --- > !積算値のクリア 948a1110,1111 > > write(*,*) "OK" 949a1113 > !---------------------------------------------------------------- 951,952c1115 < ! Close out put files. < ! --- > !---------------------------------------------------------------- 954a1118,1119 > > !---------------------------------------------------------------- 956,957c1121 < ! Make restartfile. < ! --- > !---------------------------------------------------------------- 959,968c1123,1127 < call ReStartFile_OutPut( & < & Time - DelTimeLong, & ! (in) < & xz_PotTempBl, & ! (in) < & xz_ExnerBl, & ! (in) < & pz_VelXBl, & ! (in) < & xr_VelZBl, & ! (in) < & xza_MixRtBl, & ! (in) < & xz_KmBl, & ! (in) < & xz_KhBl & ! (in) < & ) --- > call ReStartFile_OutPut( & > & Time - DelTimeLong, & > & xz_PotTempBl, xz_ExnerBl, pz_VelXBl, xr_VelZBl, & > & xza_MixRtBl, xz_KmBl, xz_KhBl, & > & xz_DensCloudBl, xz_SatRatioBl ) 971,978c1130,1132 < & xz_PotTempNl, & ! (in) < & xz_ExnerNl, & ! (in) < & pz_VelXNl, & ! (in) < & xr_VelZNl, & ! (in) < & xza_MixRtNl, & ! (in) < & xz_KmNl, & ! (in) < & xz_KhNl & ! (in) < & ) --- > & xz_PotTempNl, xz_ExnerNl, pz_VelXNl, xr_VelZNl, & > & xza_MixRtNl, xz_KmNl, xz_KhNl, & > & xz_DensCloudNl, xz_SatRatioNl ) 982c1136 < !----------------------------------------------------------------------- --- > 992c1146 < allocate( & --- > allocate( & 1007d1160 < & xz_ExnerAl(DimXMin:DimXMax, DimZMin:DimZMax), & 1008a1162 > & xz_ExnerAl(DimXMin:DimXMax, DimZMin:DimZMax), & 1009a1164 > & xz_ExnerSum(DimXMin:DimXMax, DimZMin:DimZMax), & 1011a1167 > & xz_PotTempSum(DimXMin:DimXMax, DimZMin:DimZMax), & 1014a1171,1173 > & xz_PotTempNs(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_PotTempAs(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_TempSum(DimXMin:DimXMax, DimZMin:DimZMax), & 1030a1190 > & xz_TendPotTempNl(DimXMin:DimXMax, DimZMin:DimZMax), & 1034,1035c1194,1213 < & DelTimeLFrog(NstepLong), NStepEular(NStepLong) & < & ) --- > & DelTimeLFrog(NstepLong), NStepEular(NStepLong), & > ! > & xz_LatHeatPerMassNl(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_MassCondNs(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_MassCondNl(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_DensCloudBl(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_DensCloudNl(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_DensCloudAl(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_DensCloudNs(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_DensCloudAs(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_SatRatioBl(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_SatRatioNl(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_SatRatioAl(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_SatRatioNs(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_SatRatioAs(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_QCond(DimXMin:DimXMax, DimZMin:DimZMax), & > & worknum(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_MassDens(DimXMin:DimXMax, DimZMin:DimZMax), & > & xz_KineticEnergy(DimXMin:DimXMax, DimZMin:DimZMax) ) > 1039a1218 > xz_PotTempNs = 0.0d0; xz_PotTempAs = 0.0d0 1053a1233,1242 > xz_LatHeatPerMassNl = 0.0d0 > xz_MassCondNs = 0.0d0; xz_MassCondNl = 0.0d0 > xz_DensCloudBl = 0.0d0; xz_DensCloudNl = 0.0d0 > xz_DensCloudAl = 0.0d0 > xz_DensCloudNs = 0.0d0; xz_DensCloudAs = 0.0d0 > xz_SatRatioBl = 0.0d0; xz_SatRatioNl = 0.0d0 > xz_SatRatioAl = 0.0d0 > xz_SatRatioNs = 0.0d0; xz_SatRatioAs = 0.0d0 > xz_QCond = 0.0d0 > 1055c1244 < DelTimeLFrog = 0.0d0; --- > DelTimeLFrog = 0.0d0 1058a1248,1251 > worknum = 0.0d0 > xz_MassDens = 0.0d0 > xz_KineticEnergy = 0.0d0 > 1060c1253,1254 < !----------------------------------------------------------------------- --- > > Index: main/arare_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/main/arare_3d.f90,v retrieving revision 1.10 diff -r1.10 arare_3d.f90 1,3c1 < != deepconv/arare 湿潤大気対流計算用主プログラム (三次元版) < ! < != deepconv/arare main program for moist atmospheric convection (3D) --- > != Program Arare 6,7c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 10a9,24 > !== Overview > ! > ! 非静力学モデル deepconv/arare. > ! > !== Error Handling > ! > !== Known Bugs > ! > !== Note > ! > ! * 方程式系は準圧縮系. > ! * 音波のテスト計算用. > ! > !== Future Plans > ! > ! 14c28 < ! 非静力学モデル deepconv/arare 湿潤大気対流計算用主プログラム (三次元版) --- > !非静力学モデル deepconv/arare. 17,18c31 < ! モジュール引用 use statement < ! --- > !----- モジュール読み込み ------ 20,24c33,34 < ! gtool5 関連 < ! gtool5 modules < ! < use dc_types, only: STRING, DP < use dc_message, only: MessageNotify --- > !----- 型宣言, 文字列処理 ---- > use dc_types, only : STRING, DP 26,36c36,37 < ! 初期設定モジュール < ! Initialize module < ! < use argset, only: argset_init < use fileset_3d, only: fileset_init, InitFile < use timeset, only: timeset_init, DelTimeLong, DelTimeShort, & < & NstepLong, NstepShort, NstepDisp < use gridset_3d, only: gridset_init, DimXMin, DimXMax, DimYMin, DimYMax,& < & DimZMin, DimZMax, SpcNum < use basicset_3d, only: basicset_init, xyz_DensBasicZ, xyza_MixRtBasicZ, & < & xyz_PotTempBasicZ, xyz_VelSoundBasicZ --- > !----- メッセージ出力 ------ > use dc_message, only: MessageNotify 38,42c39,43 < ! 化学量計算モジュール < ! Chemical calculation modules < ! < use ChemCalc_3d, only: ChemCalc_init < use chemdata, only: chemdata_init --- > !----- 管理モジュール ----- > ! 化学量計算モジュール > ! 化学量計算モジュール > use ChemCalc, only: ChemCalc_init > use chemdata, only: chemdata_init 44,50c45,47 < ! 力学過程計算用関数モジュール < ! Dynamical processes module < ! < use DynFunc_3d, only: xyz_AdvScalar, xyza_AdvScalar, xyz_AdvKm, & < & pyz_AdvVelX, xqz_AdvVelY, & < & xyr_Buoy, xyr_AdvVelZ, pyz_GradPi, xqz_GradPi < use DynImpFunc_3d, only: xyz_Exner_init, xyz_Exner, xyr_GradPi --- > ! 入出力ファイル名管理モジュール > use fileset_3d, only : fileset_init, & > & InitFile 52,58c49,50 < ! 乱流拡散計算用モジュール < ! Turbulent diffusion module < ! < use Turbulence_3d, only: Turbulence_Init, xyz_BuoyKm, & < & xyz_TurbScalar, xyza_TurbScalar, pyz_TurbVelX, & < & xyr_TurbVelZ , xyz_ShearKm , xyz_DispKm, & < & xyz_DispHeat , xqz_TurbVelY , EddyViscosity --- > ! コマンドライン引数解釈 > use argset, only : argset_init 60,63c52,55 < ! 境界からのフラックス計算用モジュール < ! Surface flux module < ! < use HeatFlux_3d, only: xyz_HeatFluxBulk, pyz_MomFluxBulk, xqz_MomFluxBulk --- > ! 時間管理モジュール > use timeset, only : timeset_init, & > & NstepLong, NstepShort, DelTimeLong, DelTimeShort, & > & NstepDisp 65,68c57,62 < ! 放射強制計算用モジュール < ! Radiative forceing module < ! < use Radiation_3d, only: Radiation_init, xyz_RadHeatConst, xyz_NewtonCool --- > ! 格子点管理モジュール > use gridset_3d, only : gridset_init, & > & DimXMin, DimXMax, & > & DimYMin, DimYMax, & > & DimZMin, DimZMax, & > & SpcNum 70,79c64,67 < ! 湿潤過程計算用モジュール < ! Moist processes modules < ! < use moistset, only: moistset_init < use MoistAdjust_3d, only: MoistAdjustSvapPress, MoistAdjustNH4SH < use WarmRainPrm_3d, only: WarmRainPrm_Init, xyz_Rain2GasHeat, xyza_Rain2Gas,& < & xyza_Cloud2Rain, xyza_FallRain < use MoistBuoyancy_3d,only: MoistBuoy_Init, xyz_BuoyMoistKm, xyr_BuoyMolWt, & < & xyr_BuoyDrag < use fillnegative_3d,only: FillNegative_init, xyza_FillNegative_xyza --- > ! 基本場設定モジュール > use basicset_3d, only : basicset_init, & > & xyz_DensBasicZ, xyz_PotTempBasicZ, & > & xyz_VelSoundBasicZ 81,84c69,71 < ! 安定度の計算 < ! Static stability calculation module < ! < use ECCM_3D, only: ECCM_Stab --- > ! 積算値管理モジュール > use StorePotTemp_3d, only : StorePotTemp_init, StorePotTempClean, & > & StorePotTempCond 86,93c73,79 < ! 数値拡散/摩擦計算用モジュール < ! Numerical diffussion /dumping module < ! < use NumDiffusion_3d,only: NumDiffusion_Init, xyz_NumDiffScalar, & < & xyz_NumDiffKm, xyza_NumDiffScalar, & < & pyz_NumDiffVelX, xqz_NumDiffVelY, & < & xyr_NumDiffVelZ < use damping_3d, only: damping_init, & --- > ! 湿潤ルーチン設定モジュール > use moistset, only: moistset_init > > > !----- 下請けモジュール ----- > ! 数値摩擦計算モジュール > use damping_3d, only : damping_init, & 97,105c83,84 < ! 積算値管理モジュール < ! Monitor variables setup modules < ! < use StorePotTemp_3d,only : StorePotTemp_init, StorePotTempClean, & < & StorePotTempCond < use StoreMixRt_3d, only : StoreMixRt_init, StoreMixRtClean, & < & StoreMixRtCond, StoreMixRtFill1, StoreMixRtFill2 < use StoreBuoy_3d, only : StoreBuoy_init, StoreBuoyClean < use StoreStab_3d, only : StoreStab_init, StoreStabClean --- > ! 時間積分フィルターモジュール > use timefilter_3d, only : AsselinFilter 107,109c86,108 < ! ファイル入出力モジュール < ! File I/O module < ! --- > ! 境界条件適用モジュール > use xyz_bc_module, only : BoundaryXCyc_xyz, BoundaryYCyc_xyz, & > & BoundaryZSym_xyz, BoundaryZCyc_xyz, & > & BoundaryXCyc_pyz, BoundaryYCyc_pyz, & > & BoundaryZSym_pyz, BoundaryZCyc_pyz, & > & BoundaryXCyc_xqz, BoundaryYCyc_xqz, & > & BoundaryZSym_xqz, BoundaryZCyc_xqz, & > & BoundaryXCyc_xyr, BoundaryYCyc_xyr, & > & BoundaryZSym_xyr, BoundaryZCyc_xyr, & > & BoundaryZAsym_xyr > > ! CFL 条件確認モジュール > use cflcheck_3d, only : CFLCheckTimeShort, & > & CFLCheckTimeLongVelX, & > & CFLCheckTimeLongVelY, & > & CFLCheckTimeLongVelZ > > ! 負の湿潤量の補填計算モジュール > !use fillnegative, only : FillNegative_init, xza_FillNegative_xza > > > !----- 入出力モジュール ----- > ! リスタートファイル入出力モジュール 111c110,112 < & ReStartFile_Close, ReStartFile_Get --- > & ReStartFile_Close, ReStartFile_Get > > ! ヒストリファイル入出力モジュール 113c114 < & HistoryFile_Close --- > & HistoryFile_Close 115,131c116,157 < ! 下請けモジュール < ! Utility modules < ! < use cflcheck_3d, only : CFLCheckTimeShort, & < & CFLCheckTimeLongVelX, & < & CFLCheckTimeLongVelY, & < & CFLCheckTimeLongVelZ < use timefilter_3d, only : AsselinFilter < use xyz_bc_module, only : BoundaryXCyc_xyz, BoundaryYCyc_xyz, & < & BoundaryZSym_xyz, BoundaryZCyc_xyz, & < & BoundaryXCyc_pyz, BoundaryYCyc_pyz, & < & BoundaryZSym_pyz, BoundaryZCyc_pyz, & < & BoundaryXCyc_xqz, BoundaryYCyc_xqz, & < & BoundaryZSym_xqz, BoundaryZCyc_xqz, & < & BoundaryXCyc_xyr, BoundaryYCyc_xyr, & < & BoundaryZSym_xyr, BoundaryZCyc_xyr, & < & BoundaryZAsym_xyr --- > !----- 力学過程 ----- > ! 力学過程計算用関数モジュール > use DynFunc_3d, only : xyz_AdvScalar, xyz_AdvKm, & > & pyz_AdvVelX, xqz_AdvVelY, & > & xyr_Buoy, xyr_AdvVelZ, pyz_GradPi, xqz_GradPi > > ! 力学過程陰解法計算用関数モジュール > use DynImpFunc_3d, only : xyz_Exner_init, xyz_Exner, xyr_GradPi > > !----- 物理過程 ----- > ! 数値拡散計算用モジュール > use NumDiffusion_3d, only : NumDiffusion_Init, xyz_NumDiffScalar, & > & pyz_NumDiffVelX, xqz_NumDiffVelY, xyr_NumDiffVelZ > > ! 乱流拡散計算用モジュール > use Turbulence_3d, only : Turbulence_Init, & > & xyz_TurbScalar, xyza_TurbScalar, pyz_TurbVelX, & > & xyr_TurbVelZ , xyz_ShearKm , xyz_DispKm, & > & xyz_DispHeat , xqz_TurbVelY , EddyViscosity > > ! 放射強制計算用モジュール > use Radiation_3d, only : Radiation_init, & > & xyz_RadHeatConst, xyz_NewtonCool > > ! 地表フラックス計算用モジュール > use HeatFlux_3d, only : xyz_HeatFluxBulk, & > & pyz_MomFluxBulk, xqz_MomFluxBulk > > ! 湿潤飽和調節法計算用モジュール > !use MoistAdjust, only : MoistAdjustSvapPress, MoistAdjustNH4SH > > ! 雲物理パラメタリゼーション > !use WarmRainPrm, only : WarmRainPrm_Init, xz_Rain2GasHeat, xza_Rain2Gas, & > ! & xza_Rain2GasNH4SH, xz_Rain2GasHeatNH4SH, & > ! & xza_Cloud2Rain, xza_FallRain > > ! 湿潤気塊の浮力計算用モジュール > !use MoistBuoyancy,only : MoistBuoy_Init, xz_BuoyMoistKm, xr_BuoyMolWt, & > ! & xr_BuoyDrag > > ! 断熱上昇気塊の温度減率計算用モジュール > ! use ECCM_3D, only : eccm_init 132a159,160 > > !暗黙の型宣言禁止 135,137c163 < ! 内部変数 < ! Internal variables < ! --- > !内部変数 139,157c165,173 < ! NAMELIST ファイル名 ; NAMELIST fine name < real(DP), allocatable :: pyz_VelXBl(:,:,:) < ! $ u (t-\Delta t) $ 東西風 ; zonal wind < real(DP), allocatable :: pyz_VelXNl(:,:,:) < ! $ u (t) $ 東西風 ; zonal wind < real(DP), allocatable :: pyz_VelXAl(:,:,:) < ! $ u (t+\Delta t) $ 東西風 ; zonal wind < real(DP), allocatable :: pyz_VelXNs(:,:,:) < ! $ u (\tau) $ 東西風 ; zonal wind < real(DP), allocatable :: pyz_VelXAs(:,:,:) < ! $ u (\tau +\Delta \tau) $ 東西風 ; zonal wind < real(DP), allocatable :: xqz_VelYBl(:,:,:) < ! $ v (t-\Delta t) $ 南北風 ; meridonal wind < real(DP), allocatable :: xqz_VelYNl(:,:,:) < ! $ v (t) $ 南北風 ; meridonal wind < real(DP), allocatable :: xqz_VelYAl(:,:,:) < ! $ v (t+\Delta t) $ 南北風 ; meridonal wind < real(DP), allocatable :: xqz_VelYNs(:,:,:) < ! $ v (\tau -\tau) $ 南北風 ; meridonal wind --- > Real(DP), allocatable :: pyz_VelXBl(:,:,:) > real(DP), allocatable :: pyz_VelXNl(:,:,:) > real(DP), allocatable :: pyz_VelXAl(:,:,:) > real(DP), allocatable :: pyz_VelXNs(:,:,:) > real(DP), allocatable :: pyz_VelXAs(:,:,:) > Real(DP), allocatable :: xqz_VelYBl(:,:,:) > real(DP), allocatable :: xqz_VelYNl(:,:,:) > real(DP), allocatable :: xqz_VelYAl(:,:,:) > real(DP), allocatable :: xqz_VelYNs(:,:,:) 159,173c175,181 < ! $ v (\tau) $ 南北風 ; meridonal wind < real(DP), allocatable :: xyr_VelZBl(:,:,:) < ! $ w (t-\Delta t) $ 鉛直風 ; vertical wind < real(DP), allocatable :: xyr_VelZNl(:,:,:) < ! $ w (t) $ 鉛直風 ; vertical wind < real(DP), allocatable :: xyr_VelZAl(:,:,:) < ! $ w (t+\Delta t) $ 鉛直風 ; vertical wind < real(DP), allocatable :: xyr_VelZNs(:,:,:) < ! $ w (\tau) $ 鉛直風 ; vertical wind < real(DP), allocatable :: xyr_VelZAs(:,:,:) < ! $ w (\tau +\Delta \tau) 鉛直風 ; vertical wind < real(DP), allocatable :: xyz_ExnerBl(:,:,:) < ! $ \pi (t-\Delta t) $ 圧力関数 ; Exner function < real(DP), allocatable :: xyz_ExnerNl(:,:,:) < ! $ \pi (t) $ 圧力関数 ; Exner function --- > real(DP), allocatable :: xyr_VelZBl(:,:,:) > real(DP), allocatable :: xyr_VelZNl(:,:,:) > real(DP), allocatable :: xyr_VelZAl(:,:,:) > real(DP), allocatable :: xyr_VelZNs(:,:,:) > real(DP), allocatable :: xyr_VelZAs(:,:,:) > real(DP), allocatable :: xyz_ExnerBl(:,:,:) > real(DP), allocatable :: xyz_ExnerNl(:,:,:) 175,187c183,188 < ! $ \pi (t+\Delta t) $ 圧力関数 ; Exner function < real(DP), allocatable :: xyz_ExnerNs(:,:,:) < ! $ \pi (\tau -\Delta \tau) $ 圧力関数 ; Exner function < real(DP), allocatable :: xyz_ExnerAs(:,:,:) < ! $ \pi (\tau) $ 圧力関数 ; Exner function < real(DP), allocatable :: xyz_PotTempBl(:,:,:) < ! $ \theta (t-\Delta t) $ 温位 ; Potential temp. < real(DP), allocatable :: xyz_PotTempNl(:,:,:) < ! $ \theta (t) $ 温位 ; Potential temp. < real(DP), allocatable :: xyz_PotTempAl(:,:,:) < ! $ \theta (t+\Delta t) $ 温位 ; Potential temp. < real(DP), allocatable :: xyz_PotTempWork(:,:,:) < ! 温位 $ \theta $ の作業配列 ; Work array --- > real(DP), allocatable :: xyz_ExnerNs(:,:,:) > real(DP), allocatable :: xyz_ExnerAs(:,:,:) > real(DP), allocatable :: xyz_PotTempWork(:,:,:) > real(DP), allocatable :: xyz_PotTempBl(:,:,:) > real(DP), allocatable :: xyz_PotTempNl(:,:,:) > real(DP), allocatable :: xyz_PotTempAl(:,:,:) 189,190d189 < ! $ Km (t-\Delta t) $ 乱流拡散係数 < ! Turbulent diffusion coeff. 192,193d190 < ! $ K_m (t) $ 乱流拡散係数 < ! Turbulent diffusion coeff. 195,199c192 < ! $ K_m (t+\Delta t) $ 乱流拡散係数 < ! Turbulent diffusion coeff. < real(DP), allocatable :: xyz_KhBl(:,:,:) < ! $ K_h (t-\Delta t) $ 乱流拡散係数 < ! Turbulent diffusion coeff. --- > real(DP), allocatable :: xyz_KhBl(:,:,:) 201,202d193 < ! $ K_h (t) $ 乱流拡散係数 < ! Turbulent diffusion coeff. 204,249d194 < ! $ K_h (t+\Delta t) $ 乱流拡散係数 < ! Turbulent diffusion coeff. < real(DP), allocatable :: xyza_MixRtBl(:,:,:,:) < ! $ q (t-\Delta t) $ 湿潤量の混合比 < ! Mixing ratio of moist variables. < real(DP), allocatable :: xyza_MixRtNl(:,:,:,:) < ! $ q (t) $ 湿潤量の混合比 < ! Mixing ratio of moist variables < real(DP), allocatable :: xyza_MixRtAl(:,:,:,:) ! < ! $ q (t+\Delta t) $ 湿潤量の混合比 < !Mixing ratio of moist variables < real(DP), allocatable :: xyza_MixRtWork(:,:,:,:) < ! 湿潤量の作業配列 < ! Work array for mixing ratio. < real(DP), allocatable :: pyz_AccelVelXNl(:,:,:) < ! 気圧傾度力を除いた $u$ の変化率 < ! Tendency of $u$ except for pressure gradient term < real(DP), allocatable :: xqz_AccelVelYNl(:,:,:) < ! 気圧傾度力を除いた $v$ の変化率 < ! Tendency of $v$ except for pressure gradient term < real(DP), allocatable :: xyr_AccelVelZNl(:,:,:) < ! 気圧傾度力を除いた $w$ の変化率 < ! Tendency of $w$ except for pressure gradient term < real(DP), allocatable :: xyza_DelMixRt(:,:,:,:) < ! 湿潤量の混合比 $ q $ の増分 < ! Mixing ratio variation. < < real(DP) :: Time ! 時刻 ; Time < real(DP) :: ReStartTime(2) ! リスタートファイル出力時刻用配列 < ! Output time array for restart file < real(DP), allocatable :: DelTimeLFrog(:) < ! リープフロッグスキーム用時間格子間隔 < ! Time interval for Leap-frog scheme < real(DP) :: DelTimeEuler ! オイラースキーム用時間格子 < ! Time interval for Eular scheme < integer :: NStepLFrog ! リープフロッグスキーム用時間ステップ数 < ! The number of time step for Leap-frog scheme < integer, allocatable :: NStepEuler(:) < ! オイラースキーム用時間ステップ数 < ! The number of time step for Eular scheme < integer :: & < & t, & < & tau, & ! do ループ変数 ; do loop variable < & t1, & ! do ループ変数 ; do loop variable < & t2, & ! do ループ変数 ; do loop variable < & s ! do ループ変数 ; do loop variable 251,252c196,198 < ! 初期化手続き ; Initialize procedure < ! --- > real(DP), allocatable :: pyz_AccelVelXNl(:,:,:) > real(DP), allocatable :: xqz_AccelVelYNl(:,:,:) > real(DP), allocatable :: xyr_AccelVelZNl(:,:,:) 254,259c200,205 < ! NAMELIST ファイル名の読み込み < ! Loading NAMELIST file. < ! < call argset_init( & < & cfgfile & ! (out) < & ) --- > real(DP) :: Time > real(DP) :: ReStartTime(2) > real(DP), allocatable :: DelTimeLFrog(:) > real(DP) :: DelTimeEuler > integer, allocatable :: NStepEuler(:) > integer :: NStepLFrog 261,264c207 < ! 化学定数の初期化 < ! Initialization of chemical constatns. < ! < call chemdata_init( ) --- > integer :: t, tau, t1, t2 266,271d208 < ! 時間積分の初期化 < ! Initialization of time integration. < ! < call timeset_init( & < & cfgfile & ! (in) < & ) 273,278c210,212 < ! 格子点情報の初期化 < ! Initialization of grid arrangement. < ! < call gridset_init( & < & cfgfile & ! (in) < & ) --- > !---------------------------------------------------------------------- > ! 変数参照型モジュールの初期化 > !---------------------------------------------------------------------- 280,283c214,230 < ! 化学計算ルーチンの初期化 < ! Initialization of chemical routines. < ! < call chemcalc_init( ) --- > !コマンドライン引数の解釈 > ! NAMELIST ファイル名の読み込み > call argset_init(cfgfile) > > !物質特性の初期化 > call chemdata_init() > > !時刻に関する設定の初期化 > ! NAMELIST から必要な情報を読み取り, 時間関連の変数の設定を行う. > call timeset_init(cfgfile) > > !格子点情報の初期化 > ! NAMELIST から情報を得て, 格子点を計算する > call gridset_init(cfgfile) > > !化学計算ルーチンの初期化 > call chemcalc_init() 285,290c232,234 < ! 基本場の情報の初期化 < ! Initialization of basic state variables. < ! < call basicset_init( & < & cfgfile & ! (in) < & ) --- > !基本場の情報の初期化 > ! NAMELIST から情報を得て, 基本場を設定する. > call basicset_init(cfgfile) 292,297c236,239 < ! I/O ファイル名の初期化 < ! Initialization of output file name. < ! < call fileset_init( & < & cfgfile & ! (in) < & ) --- > !I/O ファイル名の初期化 > ! NAMELIST ファイル名を指定し, deepconv/arare の > ! 出力ファイル名を NAMELIST から得る > call fileset_init(cfgfile) 299,302c241,242 < ! 湿潤過程共有変数の初期化 < ! Initialization of common variables for moist process. < ! < call moistset_init( ) --- > !湿潤ルーチンの共有変数の初期化 > call moistset_init() 304,306c244,245 < ! 積算値保管変数の初期化 < ! Initialization of monitor variables. < ! --- > !積算値を保管するためのモジュールの初期化 > ! NAMELIST から情報を得て, 基本場を設定する. 308,315c247,248 < call StoreMixRt_init( ) < call StoreBuoy_init( ) < call StoreStab_init( ) < < < ! 内部変数の初期化 < ! Initialization of internal variables. < ! --- > > !内部変数の初期化. とりあえずゼロを入れて値を確定させておく. 318,327c251,253 < ! 初期値の代入 < ! * ReStartFile が設定されている場合にはファイルを読み込む. < ! 設定されていない場合にはデフォルトの基本場と擾乱場を作る. < ! < ! Initial value set up. < ! * Read restartfile if it is specified. If not, make default basic < ! state and disturbance. < ! < call MessageNotify( "M", "main", "Initial value setup." ) < --- > !予報変数の初期化 > ! ReStartFile が設定されている場合にはファイルを読み込み, > ! 設定されていない場合には, デフォルトの基本場と擾乱場を作る. 331,349c257,262 < call ReStartFile_Get( & < & ReStartTime, & ! (out) < & xyz_PotTempBl, & ! (out) < & xyz_ExnerBl, & ! (out) < & pyz_VelXBl, & ! (out) < & xqz_VelYBl, & ! (out) < & xyr_VelZBl, & ! (out) < & xyza_MixRtBl, & ! (out) < & xyz_KmBl, & ! (out) < & xyz_KhBl, & ! (out) < & xyz_PotTempNl, & ! (out) < & xyz_ExnerNl, & ! (out) < & pyz_VelXNl, & ! (out) < & xqz_VelYBl, & ! (out) < & xyr_VelZNl, & ! (out) < & xyza_MixRtNl, & ! (out) < & xyz_KmNl, & ! (out) < & xyz_KhNl & ! (out) < & ) --- > call ReStartFile_Get( & > & ReStartTime, & > & xyz_PotTempBl, xyz_ExnerBl, pyz_VelXBl, xqz_VelYBl, xyr_VelZBl, & > & xyz_KmBl, xyz_KhBl, & > & xyz_PotTempNl, xyz_ExnerNl, pyz_VelXNl, xqz_VelYBl, xyr_VelZNl, & > & xyz_KmNl, xyz_KhNl ) 351c264 < --- > !デフォルト設定の基本場, 擾乱場を作成する. 353,363c266,284 < call DisturbEnv_3d( & < & cfgfile, & ! (in) < & xyz_PotTempBl, & ! (out) < & xyz_ExnerBl, & ! (out) < & pyz_VelXBl, & ! (out) < & xqz_VelYBl, & ! (out) < & xyr_VelZBl, & ! (out) < & xyza_MixRtBl, & ! (out) < & xyz_KmBl, & ! (out) < & xyz_KhBl & ! (out) < & ) --- > call DisturbEnv_3d(cfgfile, & > & xyz_PotTempBl, xyz_ExnerBl, pyz_VelXBl, xqz_VelYBl, xyr_VelZBl, & > & xyz_KmBl, xyz_KhBl ) > > call BoundaryXCyc_pyz( pyz_VelXBl ) > call BoundaryYCyc_pyz( pyz_VelXBl ) > call BoundaryZSym_pyz( pyz_VelXBl ) > > call BoundaryXCyc_xqz( xqz_VelYBl ) > call BoundaryYCyc_xqz( xqz_VelYBl ) > call BoundaryZSym_xqz( xqz_VelYBl ) > > call BoundaryXCyc_xyr( xyr_VelZBl ) > call BoundaryYCyc_xyr( xyr_VelZBl ) > call BoundaryZAsym_xyr( xyr_VelZBl ) > > call BoundaryXCyc_xyz( xyz_PotTempBl ) > call BoundaryYCyc_xyz( xyz_PotTempBl ) > call BoundaryZSym_xyz( xyz_PotTempBl ) 365,385d285 < call BoundaryXCyc_pyz( pyz_VelXBl ) ! (inout) < call BoundaryYCyc_pyz( pyz_VelXBl ) ! (inout) < call BoundaryZSym_pyz( pyz_VelXBl ) ! (inout) < < call BoundaryXCyc_xqz( xqz_VelYBl ) ! (inout) < call BoundaryYCyc_xqz( xqz_VelYBl ) ! (inout) < call BoundaryZSym_xqz( xqz_VelYBl ) ! (inout) < < call BoundaryXCyc_xyr( xyr_VelZBl ) ! (inout) < call BoundaryYCyc_xyr( xyr_VelZBl ) ! (inout) < call BoundaryZAsym_xyr( xyr_VelZBl ) ! (inout) < < call BoundaryXCyc_xyz( xyz_PotTempBl ) ! (inout) < call BoundaryYCyc_xyz( xyz_PotTempBl ) ! (inout) < call BoundaryZSym_xyz( xyz_PotTempBl ) ! (inout) < < do s = 1, SpcNum < call BoundaryXCyc_xyz( xyza_MixRtBl(:,:,:,s) ) ! (inout) < call BoundaryYCyc_xyz( xyza_MixRtBl(:,:,:,s) ) ! (inout) < call BoundaryZSym_xyz( xyza_MixRtBl(:,:,:,s) ) ! (inout) < end do 387,393c287,289 < ! 時刻 $ t $ の変数値の初期値の設定 < ! * 1 ループ目だけは $ t $ の値を $ t-\Delta t$ の値と同じにする. < ! 1 ステップ目はオイラー法で解く必要があるが, 1 ステップ目と < ! それ以外のステップを別々にコーディングしたくない為 < ! < ! Set up initial value of time = "t" variables. < ! --- > ! 1 ループ目だけは, bl と nl の値を同じにしておく. > ! 1 ステップ目はオイラー法で解く必要があるが, > ! 1 ステップ目とそれ以外のステップを別々にコーディングしたくない為 399d294 < xyza_MixRtNl = xyza_MixRtBl 405,442d299 < ! 数値摩擦係数の初期化 < ! Initialization of numerical friction coefficient. < ! < call Damping_Init( & < & cfgfile & ! (in) < & ) < < ! 数値拡散項の初期化 < ! Initialization of numerical diffusion term. < ! < call NumDiffusion_Init( ) < < ! 乱流拡散項の初期化 < ! Initialization of turbulent diffusion term. < ! < call Turbulence_Init() < < ! 暖かい雨のパラメタリゼーションの初期化 < ! Initialization of warmrain parameterization. < ! < call WarmRainPrm_Init( & < & cfgfile & ! (in) < & ) < < ! 負の湿潤量の補填計算の初期化 < ! Initialization of negative moist value correction. < ! < call FillNegative_Init( & < & xyza_MixRtBasicZ, & ! (in) < & xyz_DensBasicZ & ! (in) < & ) < < ! 放射強制の初期化 < ! Initialization of radiative forcing. < ! < call Radiation_Init( & < & cfgfile & ! (in) < & ) 444,451c301,313 < ! 湿潤気塊の浮力計算の初期化 < ! Initialization of moist buoyancy calculation. < ! < call MoistBuoy_Init( ) < < ! 圧力計算用係数行列の初期化 < ! Initialization of coefficient matrix for exner function calculation. < ! --- > !---------------------------------------------------------------------- > ! パッケージ型モジュールの初期化 > ! デフォルトの値から変更する必要のあるルーチンのみ初期化 > !---------------------------------------------------------------------- > call Damping_Init( cfgfile ) !波の減衰係数の初期化 > call NumDiffusion_Init() !数値拡散項の初期化 > call Turbulence_Init() !乱流計算の初期化 > ! call MoistAdjust_Init() !湿潤飽和調整法の初期化 > ! call WarmRainPrm_Init( cfgfile ) !暖かい雨のパラメタリゼーションの初期化 > ! call FillNegative_Init( xza_MixRtBasicZ, xz_DensBasicZ) > !移流による負の量の処理 > call Radiation_Init( cfgfile ) !放射強制の初期化 > ! call MoistBuoy_Init() !分子量に対する浮力計算ルーチンの初期化 454,456c316,320 < ! 時刻とループ回数の初期化 < ! Initialization of time integration. < ! --- > > > !---------------------------------------------------------------------- > ! 時刻とループ回数の初期化 > !---------------------------------------------------------------------- 461,473d324 < < ! 計算開始時刻と時間格子間隔の初期化 < ! * ReStartFile が設定されている場合, ファイルから読み込んだ値を指定. < ! * ReStartFile が設定されてない場合 < ! * 開始時刻は 0.0 < ! * 1 ステップ目の時間格子間隔を陽に指定 < ! < ! Setup restart time and time interval. < ! * Read restartfile if it is specified. < ! * If not, < ! * "t" is set to be 0. < ! * Time intervals for 1st step are specified explicitly. < ! 475c326 < Time = ReStartTime(2) --- > Time = ReStartTime(2) !リスタート開始時刻 477,479c328,330 < Time = 0.0d0 < NstepEuler(1) = NstepShort /2 < DelTimeLFrog(1) = DelTimeLong --- > Time = 0.0d0 ! 計算開始時刻 > NstepEuler(1) = NstepShort /2 ! 1 ループ目だけ > DelTimeLFrog(1) = DelTimeLong ! 1 ループ目だけ 487,489c338,342 < ! ヒストリーファイルへの出力 < ! Out put to history file. < ! --- > !---------------------------------------------------------------- > ! ファイル入出力 > !---------------------------------------------------------------- > !ファイルオープン > 493,503c346,354 < call HistoryFile_Output( & < & ReStartTime(2), & ! (in) < & xyz_PotTempNl, & ! (in) < & xyz_ExnerNl, & ! (in) < & pyz_VelXNl, & ! (in) < & xqz_VelYNl, & ! (in) < & xyr_VelZNl, & ! (in) < & xyza_MixRtNl, & ! (in) < & xyz_KmNl, & ! (in) < & xyz_KhNl & ! (in) < & ) --- > call HistoryFile_Output( & > & ReStartTime(2), & > & xyz_PotTempNl, & > & xyz_ExnerNl, & > & pyz_VelXNl, & > & xqz_VelYNl, & > & xyr_VelZNl, & > & xyz_KmNl, & > & xyz_KhNl ) 508,518c359,367 < call HistoryFile_Output( & < & Time, & ! (in) < & xyz_PotTempNl, & ! (in) < & xyz_ExnerNl, & ! (in) < & pyz_VelXNl, & ! (in) < & xqz_VelYNl, & ! (in) < & xyr_VelZNl, & ! (in) < & xyza_MixRtNl, & ! (in) < & xyz_KmNl, & ! (in) < & xyz_KhNl & ! (in) < & ) --- > call HistoryFile_Output( & > & Time, & > & xyz_PotTempNl, & > & xyz_ExnerNl, & > & pyz_VelXNl, & > & xqz_VelYNl, & > & xyr_VelZNl, & > & xyz_KmNl, & > & xyz_KhNl ) 521,529c370,378 < ! 音波に対する CFL 条件のチェック < ! CFL condtion check for sound wave. < ! < call CFLCheckTimeShort( & < & xyz_VelSoundBasicZ & ! (in) < & ) < < ! 時間積分 time integration < ! --- > !---------------------------------------------------------------------- > ! 設定のチェック > !---------------------------------------------------------------------- > !CFL 条件のチェック > call CFLCheckTimeShort( xyz_VelSoundBasicZ ) > > !---------------------------------------------------------------------- > ! 数値積分 > !---------------------------------------------------------------------- 535,537d383 < ! 時刻の設定 < ! Time setting. < ! 538a385,387 > > > !時刻の設定 539a389,393 > ! call MessageNotify( "M", "main", "Time = %f", d=(/Time/) ) > > !---------------------------------------------------------------- > ! 渦粘性係数, 渦拡散係数を求める. > !---------------------------------------------------------------- 541,565c395,396 < ! 渦拡散係数の移流拡散 < ! Advection and diffusion of turbulent diffusion coefficient. < ! < < ! 1 次クロージャの場合 < ! < !call EddyViscosity( & < ! & pyz_VelXNl, & ! (in) < ! & xqz_VelYNl, & ! (in) < ! & xyr_VelZNl, & ! (in) < ! & xyz_PotTempNl, & ! (in) < ! & xyz_KmNl, & ! (out) < ! & xyz_KmAl & ! (out) < ! & ) < < xyz_KmAl = & < & xyz_KmBl & < & + DelTimeLFrog(t) & < & * ( & < & + xyz_AdvKm(xyz_KmNl, pyz_VelXNl, xqz_VelYNl, xyr_VelZNl) & < & + xyz_BuoyKm(xyz_PotTempBl) & < & + xyz_ShearKm(xyz_KmBl, pyz_VelXBl, xqz_VelYBl, xyr_VelZBl) & < & + xyz_NumDiffKm(xyz_KmBl) & < & + xyz_DispKm(xyz_KmBl) & < & ) --- > call EddyViscosity(pyz_VelXNl, xqz_VelYNl, xyr_VelZNl, xyz_PotTempNl, & > & xyz_KmNl , xyz_KmAl ) 567c398 < ! 値の上限下限の設定 --- > !値の上限下限の設定 570,583c401,409 < ! < ! Upper and lower bound value are specified. < ! < xyz_KmAl = max( 0.0d0, min( xyz_KmAl, 800.0d0 ) ) < < ! 境界条件 ; Boundary condition < ! < call BoundaryXCyc_xyz( xyz_KmAl ) ! (inout) < call BoundaryYCyc_xyz( xyz_KmAl ) ! (inout) < call BoundaryZSym_xyz( xyz_KmAl ) ! (inout) < < ! スカラーに対する渦拡散係数の計算 < ! Specify turbulent diffusion coefficient for scalar variables. < ! --- > xyz_KmAl = max( 0.0d0, min( xyz_KmAl, 800.0d0 ) ) > !! xyz_KmAl = max( 0.0d0, min( xyz_KmAl, 300.0d0 ) ) > > !境界条件 > call BoundaryXCyc_xyz( xyz_KmAl ) > call BoundaryYCyc_xyz( xyz_KmAl ) > call BoundaryZSym_xyz( xyz_KmAl ) > > !渦拡散定数を決める 587,589c413,419 < ! 温位の移流拡散の計算 < ! Advection and diffusion of potential temperature. < ! --- > !---------------------------------------------------------------- > ! 温位の移流計算. > !---------------------------------------------------------------- > !時間積分 > > ! call MessageNotify( "M", "main", "Time Integration: Temperature" ) > 601,602c431,432 < & + xyz_DispHeat( xyz_KmBl ) & < !! & + xyz_RadHeatConst( xyz_ExnerBl ) & --- > !! & + xyz_DispHeat( xyz_KmBl ) & > & + xyz_RadHeatConst( xyz_ExnerBl ) & 604c434 < !! & + xyz_HeatFluxBulk( xyz_PotTempBl, pyz_VelXBl, xqz_VelYBl ) & --- > & + xyz_HeatFluxBulk( xyz_PotTempBl, pyz_VelXBl, xqz_VelYBl ) & 608,788c438,446 < ! 境界条件 ; Boundary condition < ! < call BoundaryXCyc_xyz( xyz_PotTempAl ) ! (inout) < call BoundaryYCyc_xyz( xyz_PotTempAl ) ! (inout) < call BoundaryZSym_xyz( xyz_PotTempAl ) ! (inout) < < ! 凝縮成分混合比の移流拡散 < ! Advection and diffusion of vapor, cloud and rain mixing ratios. < ! < xyza_MixRtAl = & < & xyza_MixRtBl & < & + DelTimeLFrog(t) & < & * ( & < & + xyza_AdvScalar (xyza_MixRtNl, pyz_VelXNl, xqz_VelYNl, xyr_VelZNl)& < & + xyza_AdvScalar (xyza_MixRtBasicZ, pyz_VelXNl, xqz_VelYNl, xyr_VelZNl)& < & + xyza_TurbScalar(xyza_MixRtBl, xyz_KhBl) & < & + xyza_TurbScalar(xyza_MixRtBasicZ,xyz_KhBl) & < & + xyza_NumDiffScalar(xyza_MixRtBl) & < & + xyza_FallRain(xyza_MixRtBl) & < !! & + xyza_MixRtFluxDiff(xyza_MixRtNl) & < !! & + xyza_MixRtFluxBulk(xyza_MixRtNl) & < & ) < < ! 移流によって負になった部分を埋める < ! Negative values due to advection are corrected. < ! < xyza_MixRtWork = xyza_MixRtAl < xyza_MixRtAl = xyza_FillNegative_xyza( xyza_MixRtWork ) < < ! 埋めた/削った量を保管 < ! Correction value is stored. < ! < call StoreMixRtFill1( & < & (xyza_MixRtAl - xyza_MixRtWork) / DelTimeLFrog(t) & ! (in) < & ) < < ! 境界条件 Boundary condition < ! < do s = 1, SpcNum < call BoundaryXCyc_xyz( xyza_MixRtAl(:,:,:,s) ) ! (inout) < call BoundaryYCyc_xyz( xyza_MixRtAl(:,:,:,s) ) ! (inout) < call BoundaryZSym_xyz( xyza_MixRtAl(:,:,:,s) ) ! (inout) < end do < < ! 暖かい雨のパラメタリゼーション. < ! * 雲<-->雨 の変換を行う. < ! < ! Warm rain parameterization. < ! * Conversion from cloud to rain. < < !これまでの値を作業配列に保管 < ! Previous values are stored to work area. < ! < xyza_MixRtWork = xyza_MixRtAl < < !雨への変化量を計算 < ! Conversion values are calculated. < ! < xyza_MixRtAl = xyza_MixRtWork & < & + xyza_Cloud2Rain( xyza_MixRtAl, DelTimeLFrog(t) ) < < ! 雲から雨への変換量を保管 < ! Conversion values are sotred. < ! < call StoreMixRtCond( & < & (xyza_MixRtAl - xyza_MixRtWork) / DelTimeLFrog(t) & ! (in) < & ) < < ! 境界条件 Boundary condition < ! < do s = 1, SpcNum < call BoundaryXCyc_xyz( xyza_MixRtAl(:,:,:,s) ) ! (inout) < call BoundaryYCyc_xyz( xyza_MixRtAl(:,:,:,s) ) ! (inout) < call BoundaryZSym_xyz( xyza_MixRtAl(:,:,:,s) ) ! (inout) < end do < < < ! 湿潤飽和調節 < ! * 蒸気<-->雲の変換を行う. < ! < ! Moist adjustment. < ! * Conversion from vapor to cloud. < < ! これまでの値を作業配列に保管 < ! Previous values are stored to work area. < ! < xyz_PotTempWork = xyz_PotTempAl < xyza_MixRtWork = xyza_MixRtAl < < ! 湿潤調節法を適用 < ! Moist adjustment is applied. < ! < call MoistAdjustSvapPress( & < & xyz_ExnerNl, & ! (in) < & xyz_PotTempAl, & ! (inout) < & xyza_MixRtAl & < & ) < < ! 湿潤調節法による温位と混合比の変化量を保管 < ! Adjustment values are stored. < ! < call StorePotTempCond( & < & (xyz_PotTempAl - xyz_PotTempWork) / DelTimeLFrog(t) & ! (in) < & ) < call StoreMixRtCond( & < & (xyza_MixRtAl - xyza_MixRtWork) / DelTimeLFrog(t) & ! (in) < & ) < < ! 境界条件 Boundary condition < ! < do s = 1, SpcNum < call BoundaryXCyc_xyz( xyza_MixRtAl(:,:,:,s) ) < call BoundaryYCyc_xyz( xyza_MixRtAl(:,:,:,s) ) < call BoundaryZSym_xyz( xyza_MixRtAl(:,:,:,s) ) < end do < < ! 暖かい雨のパラメタリゼーション. < ! * 蒸気<-->雨 の変換を行う < ! < ! Warm rain parameterization. < ! * Conversion from rain to vapor. < < !これまでの値を作業配列に保管 < ! Previous values are stored to work area. < ! < xyz_PotTempWork = xyz_PotTempAl < xyza_MixRtWork = xyza_MixRtAl < < ! 雨から蒸気への混合比変化を求める < ! * 温位の計算において, 混合比変化が必要となるため, < ! 混合比変化を 1 つの配列として用意する. < ! < ! Conversion values are calculated. < ! < xyza_DelMixRt = 0.0d0 < xyza_DelMixRt = & < & ( & < & + xyza_Rain2Gas( & < & xyz_ExnerNl, xyz_PotTempAl, xyza_MixRtAl, DelTimeLFrog(t)& < & ) & < & ) < < ! 温位の計算. 雨から蒸気への変換に伴う潜熱・反応熱を追加. < ! < ! < xyz_PotTempAl = & < & xyz_PotTempWork & < & + ( & < & + xyz_Rain2GasHeat( xyz_PotTempAl, xyz_ExnerNl, xyza_DelMixRt ) & < & ) < < ! 混合比の計算. 雨から蒸気への変換分を追加 < ! < ! < xyza_MixRtAl = xyza_MixRtWork + xyza_DelMixRt < < !雨から蒸気の値の保管 < ! < ! < call StorePotTempCond( & < & (xyz_PotTempAl - xyz_PotTempWork) / DelTimeLFrog(t) & ! (in) < & ) < call StoreMixRtCond( & < & xyza_DelMixRt / DelTimeLFrog(t) & ! (in) < & ) < < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xyz( xyz_PotTempAl ) ! (inout) < call BoundaryYCyc_xyz( xyz_PotTempAl ) ! (inout) < call BoundaryZSym_xyz( xyz_PotTempAl ) ! (inout) < < do s = 1, SpcNum < call BoundaryXCyc_xyz( xyza_MixRtAl(:,:,:,s) ) < call BoundaryYCyc_xyz( xyza_MixRtAl(:,:,:,s) ) < call BoundaryZSym_xyz( xyza_MixRtAl(:,:,:,s) ) < end do < < ! 速度の移流拡散. < ! Advection and diffusion of velocity components. < ! --- > !境界条件 > call BoundaryXCyc_xyz( xyz_PotTempAl ) > call BoundaryYCyc_xyz( xyz_PotTempAl ) > call BoundaryZSym_xyz( xyz_PotTempAl ) > > !------------------------------------------------------------- > ! 長い時間ステップでの, 速度の移流, 拡散, 数値粘性, 浮力 > !------------------------------------------------------------- > 808,810c466,469 < ! 短い時間ステップの初期値作成. < ! Initial values set up for time integration with short time step. < ! --- > > !------------------------------------------------------------- > ! 短い時間ステップの初期値作成 > !------------------------------------------------------------- 815a475,479 > > !------------------------------------------------------------- > ! 短い時間ステップの積分. オイラー法を利用 > !------------------------------------------------------------- > ! call MessageNotify( "M", "main", "Time Integration: Dynamics" ) 817,819d480 < ! 短い時間ステップの時間積分. オイラー法を利用. < ! Time integration with short time step. < ! 822,837c483,499 < ! 速度 u の計算. < ! Time integration horizontal velocity (u). < ! < pyz_VelXAs = & < & pyz_VelXNs & < & + DelTimeEuler & < & * ( & < & - pyz_GradPi(xyz_ExnerNs, pyz_VelXNs, xqz_VelYNs, xyr_VelZNs) & < & + pyz_AccelVelXNl & < & ) < < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_pyz( pyz_VelXAs ) ! (inout) < call BoundaryYCyc_pyz( pyz_VelXAs ) ! (inout) < call BoundaryZSym_pyz( pyz_VelXAs ) ! (inout) --- > !------------------------------------------------------------- > ! 速度 u の計算 > !------------------------------------------------------------- > ! call MessageNotify( "M", "main", "Time Integration: VelX" ) > > pyz_VelXAs = & > & pyz_VelXNs & > & + DelTimeEuler & > & * ( & > & - pyz_GradPi(xyz_ExnerNs, pyz_VelXNs, xqz_VelYNs, xyr_VelZNs) & > & + pyz_AccelVelXNl & > & ) > > !境界条件 > call BoundaryXCyc_pyz( pyz_VelXAs ) > call BoundaryYCyc_pyz( pyz_VelXAs ) > call BoundaryZSym_pyz( pyz_VelXAs ) 839,867c501,528 < ! 速度 u の計算. < ! Time integration horizontal velocity (v). < ! < xqz_VelYAs = & < & xqz_VelYNs & < & + DelTimeEuler & < & * ( & < & - xqz_GradPi(xyz_ExnerNs, pyz_VelXNs, xqz_VelYNs, xyr_VelZNs)& < & + xqz_AccelVelYNl & < & ) < < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xqz( xqz_VelYAs ) ! (inout) < call BoundaryYCyc_xqz( xqz_VelYAs ) ! (inout) < call BoundaryZSym_xqz( xqz_VelYAs ) ! (inout) < < ! エクスナー関数の計算. < ! Time integration exner function. < ! < xyz_ExnerAs = xyz_Exner( & < & xyr_AccelVelZNl, & < & pyz_VelXNs, & < & pyz_VelXAs, & < & xqz_VelYNs, & < & xqz_VelYAs, & < & xyr_VelZNs, & < & xyz_ExnerNs & < & ) --- > !------------------------------------------------------------- > ! 速度 v の計算 > !------------------------------------------------------------- > ! call MessageNotify( "M", "main", "Time Integration: VelV" ) > > xqz_VelYAs = & > & xqz_VelYNs & > & + DelTimeEuler & > & * ( & > & - xqz_GradPi(xyz_ExnerNs, pyz_VelXNs, xqz_VelYNs, xyr_VelZNs)& > & + xqz_AccelVelYNl & > & ) > > !境界条件 > call BoundaryXCyc_xqz( xqz_VelYAs ) > call BoundaryYCyc_xqz( xqz_VelYAs ) > call BoundaryZSym_xqz( xqz_VelYAs ) > > !------------------------------------------------------------- > ! エクスナー関数の計算 > !------------------------------------------------------------- > ! call MessageNotify( "M", "main", "Time Integration: Exner" ) > > xyz_ExnerAs = xyz_Exner( & > & xyr_AccelVelZNl, & > & pyz_VelXNs, pyz_VelXAs, & > & xqz_VelYNs, xqz_VelYAs, & > & xyr_VelZNs, xyz_ExnerNs) 869,891c530,552 < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xyz( xyz_ExnerAs ) ! (inout) < call BoundaryYCyc_xyz( xyz_ExnerAs ) ! (inout) < call BoundaryZSym_xyz( xyz_ExnerAs ) ! (inout) < < ! 速度 w の計算 < ! Time integration vertical velocity. < ! < xyr_VelZAs = & < & xyr_VelZNs & < & + DelTimeEuler & < & * ( & < & - xyr_GradPi(xyz_ExnerAs,xyz_ExnerNs, & < & pyz_VelXNs,xqz_VelYNs, xyr_VelZNs) & < & + xyr_AccelVelZNl & < & ) < < ! 境界条件 Boundary condition < ! < call BoundaryXCyc_xyr( xyr_VelZAs ) ! (inout) < call BoundaryYCyc_xyr( xyr_VelZAs ) ! (inout) < call BoundaryZAsym_xyr( xyr_VelZAs ) ! (inout) --- > !境界条件 > call BoundaryXCyc_xyz( xyz_ExnerAs ) > call BoundaryYCyc_xyz( xyz_ExnerAs ) > call BoundaryZSym_xyz( xyz_ExnerAs ) > > !------------------------------------------------------------- > ! 速度 w の計算 > !------------------------------------------------------------- > ! call MessageNotify( "M", "main", "Time Integration: VelZ" ) > > xyr_VelZAs = & > & xyr_VelZNs & > & + DelTimeEuler & > & * ( & > & - xyr_GradPi(xyz_ExnerAs,xyz_ExnerNs, & > & pyz_VelXNs,xqz_VelYNs, xyr_VelZNs) & > & + xyr_AccelVelZNl & > & ) > > !境界条件 > call BoundaryXCyc_xyr( xyr_VelZAs ) > call BoundaryYCyc_xyr( xyr_VelZAs ) > call BoundaryZAsym_xyr( xyr_VelZAs ) 893,899c554,560 < ! 短い時間ステップのループを回すための処置 < ! Renew prognostic variables for next short time step integration. < ! < xyz_ExnerNs = xyz_ExnerAs < pyz_VelXNs = pyz_VelXAs < xqz_VelYNs = xqz_VelYAs < xyr_VelZNs = xyr_VelZAs --- > !------------------------------------------------------------- > ! 短い時間ステップのループを回すための処置 > !------------------------------------------------------------- > xyz_ExnerNs = xyz_ExnerAs > pyz_VelXNs = pyz_VelXAs > xqz_VelYNs = xqz_VelYAs > xyr_VelZNs = xyr_VelZAs 902a564 > !---------------------------------------------------------------- 904,905c566 < ! Renew prognostic variables for next long time step integration. < ! --- > !---------------------------------------------------------------- 911,949c572,580 < ! 時間フィルタ. < ! Time filter. < ! < call AsselinFilter( & < & xyz_ExnerAl, & ! (in) < & xyz_ExnerNl, & ! (inout) < & xyz_ExnerBl & ! (in) < & ) < call AsselinFilter( & < & pyz_VelXAl, & ! (in) < & pyz_VelXNl, & ! (inout) < & pyz_VelXBl & ! (in) < & ) < call AsselinFilter( & < & xqz_VelYAl, & ! (in) < & xqz_VelYNl, & ! (inout) < & xqz_VelYBl & ! (in) < & ) < call AsselinFilter( & < & xyr_VelZAl, & ! (in) < & xyr_VelZNl, & ! (inout) < & xyr_VelZBl & ! (in) < & ) < call AsselinFilter( & < & xyz_PotTempAl, & ! (in) < & xyz_PotTempNl, & ! (inout) < & xyz_PotTempBl & ! (in) < & ) < call AsselinFilter( & < & xyz_KmAl, & ! (in) < & xyz_KmNl, & ! (inout) < & xyz_KmBl & ! (in) < & ) < < do s = 1, SpcNum < call AsselinFilter(xyza_MixRtAl(:,:,:,s), & < & xyza_MixRtNl(:,:,:,s), & < & xyza_MixRtBl(:,:,:,s)) < end do --- > !------------------------------------------------------------- > ! アッセリンの時間フィルタ. Nl の値をフィルタリング > !------------------------------------------------------------- > call AsselinFilter(xyz_ExnerAl, xyz_ExnerNl, xyz_ExnerBl) > call AsselinFilter(pyz_VelXAl, pyz_VelXNl, pyz_VelXBl ) > call AsselinFilter(xqz_VelYAl, xqz_VelYNl, xqz_VelYBl ) > call AsselinFilter(xyr_VelZAl, xyr_VelZNl, xyr_VelZBl ) > call AsselinFilter(xyz_PotTempAl, xyz_PotTempNl, xyz_PotTempBl) > call AsselinFilter(xyz_KmAl, xyz_KmNl, xyz_KmBl) 950a582 > !------------------------------------------------------------- 952,953c584 < ! Numerical dumping. < ! --- > !------------------------------------------------------------- 959,979c590,592 < ! 混合比がゼロ以下にならないための処置. < ! Negative values mixing ratios are corrected. < ! < xyza_MixRtWork = xyza_MixRtAl < xyza_MixRtAl = max( - xyza_MixRtBasicZ, xyza_MixRtWork ) < ! call StoreMixRtFill2( & < ! & (xyza_MixRtAl - xyza_MixRtWork) / DelTimeLFrog(t) & ! (in) < ! & ) < < ! 安定度の計算. < ! Calculation static stability. < ! < call ECCM_Stab( & < & xyz_PotTempAl, & ! (in) < & xyz_ExnerAl, & ! (in) < & xyza_MixRtAl & ! (in) < & ) < < ! 長い時間ステップのループを回すための処置. < ! Renew prognostic variables for next long time step integration. < ! --- > !---------------------------------------------------------------- > ! 長い時間ステップのループを回すための処置 > !---------------------------------------------------------------- 981d593 < xyza_MixRtBl = xyza_MixRtNl 990d601 < xyza_MixRtNl = xyza_MixRtAl 1000,1002c611,614 < ! ヒストリーファイルへの出力. < ! Out put to history file. < ! --- > !---------------------------------------------------------------- > ! ファイル出力 > !---------------------------------------------------------------- > 1005,1016c617,620 < ! 移流に対する CFL 条件のチェック < ! CFL condtion check for advection < ! < call CFLCheckTimeLongVelX( & < & pyz_VelXNl & ! (in) < & ) < call CFLCheckTimeLongVelY( & < & xqz_VelYNl & ! (in) < & ) < call CFLCheckTimeLongVelZ( & < & xyr_VelZNl & ! (in) < & ) --- > ! CFL 条件のチェック > call CFLCheckTimeLongVelX( pyz_VelXNl ) > call CFLCheckTimeLongVelY( xqz_VelYNl ) > call CFLCheckTimeLongVelZ( xyr_VelZNl ) 1019,1030c623,632 < ! Out put to history file. < ! < call HistoryFile_Output( & < & Time, & ! (in) < & xyz_PotTempNl, & ! (in) < & xyz_ExnerNl, & ! (in) < & pyz_VelXNl, & ! (in) < & xqz_VelYNl, & ! (in) < & xyr_VelZNl, & ! (in) < & xyza_MixRtNl, & ! (in) < & xyz_KmNl, & ! (in) < & xyz_KhNl & ! (in) --- > > call HistoryFile_Output( & > & Time, & > & xyz_PotTempNl, & > & xyz_ExnerNl, & > & pyz_VelXNl, & > & xqz_VelYNl, & > & xyr_VelZNl, & > & xyz_KmNl, & > & xyz_KhNl & 1033,1035c635 < ! 積算値のクリア. < ! Clear monitor variables. < ! --- > !積算値のクリア 1037,1039d636 < call StoreMixRtClean < call StoreBuoyClean < call StoreStabClean 1042a640 > !---------------------------------------------------------------- 1044,1045c642 < ! Close out put files. < ! --- > !---------------------------------------------------------------- 1048,1050d644 < ! リスタートファイルの作成 < ! Make restartfile. < ! 1052,1061c646,649 < call ReStartFile_OutPut( & < & Time - DelTimeLong, & ! (in) < & xyz_PotTempBl, & ! (in) < & xyz_ExnerBl, & ! (in) < & pyz_VelXBl, & ! (in) < & xqz_VelYBl, & ! (in) < & xyr_VelZBl, & ! (in) < & xyza_MixRtBl, & ! (in) < & xyz_KmBl, & ! (in) < & xyz_KhBl & ! (in) --- > call ReStartFile_OutPut( & > & Time - DelTimeLong, & > & xyz_PotTempBl, xyz_ExnerBl, pyz_VelXBl, xqz_VelYBl, xyr_VelZBl, & > & xyz_KmBl , xyz_KhBl & 1064,1073c652,655 < call ReStartFile_OutPut( & ! (in) < & Time, & ! (in) < & xyz_PotTempNl, & ! (in) < & xyz_ExnerNl, & ! (in) < & pyz_VelXNl, & ! (in) < & xqz_VelYNl, & ! (in) < & xyr_VelZNl, & ! (in) < & xyza_MixRtNl, & ! (in) < & xyz_KmNl, & ! (in) < & xyz_KhNl & ! (in) --- > call ReStartFile_OutPut( & > & Time, & > & xyz_PotTempNl, xyz_ExnerNl, pyz_VelXNl, xqz_VelYNl, xyr_VelZNl, & > & xyz_KmNl , xyz_KhNl & 1077a660 > 1079c662 < !----------------------------------------------------------------------- --- > 1127,1131d709 < & xyza_MixRtWork(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum), & < & xyza_MixRtBl (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum), & < & xyza_MixRtNl (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum), & < & xyza_MixRtAl (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum), & < ! 1135,1137d712 < ! < & xyza_DelMixRt(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum), & < ! 1152,1155d726 < xyza_MixRtBl = 0.0d0; xyza_MixRtNl = 0.0d0; xyza_MixRtAl = 0.0d0 < < xyz_PotTempWork = 0.0d0 < xyza_MixRtWork = 0.0d0 1161c732 < xyza_DelMixRt = 0.0d0 --- > ! xyza_DelMixRt = 0.0d0 1169c740 < !----------------------------------------------------------------------- --- > Index: main/arareanal.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/main/arareanal.f90,v retrieving revision 1.26 diff -r1.26 arareanal.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 143c143 < ! gtool5 ライブラリの dc_args モジュールを利用. --- > ! gt4f90io ライブラリの dc_args モジュールを利用. 374c374 < use gtool_history, only: HistoryClose --- > use gt4_history, only: HistoryClose 387c387 < use gtool_history, only: HistoryCreate, HistoryPut, HistoryAddVariable --- > use gt4_history, only: HistoryCreate, HistoryPut, HistoryAddVariable 599c599 < use gtool_history, only: HistoryPut --- > use gt4_history, only: HistoryPut 716c716 < use gtool_history, only: HistoryCreate, HistoryPut, HistoryAddVariable --- > use gt4_history, only: HistoryCreate, HistoryPut, HistoryAddVariable 770c770 < use gtool_history, only: HistoryPut --- > use gt4_history, only: HistoryPut 798c798 < use gtool_history, only : HistoryGet --- > use gt4_history, only : HistoryGet 873c873 < use gtool_history, only: HistoryGet --- > use gt4_history, only: HistoryGet Index: main/randomset.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/main/randomset.f90,v retrieving revision 1.2 diff -r1.2 randomset.f90 4,5c4,5 < ! Version: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name: $Name: arare4-20120511 $ --- > ! Version: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name: $Name: arare4-20120511 $ Index: main/randomset_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/main/randomset_3d.f90,v retrieving revision 1.1 diff -r1.1 randomset_3d.f90 4,5c4,5 < ! Version: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name: $Name: arare4-20120511 $ --- > ! Version: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name: $Name: arare4-20120511 $ Index: moist/chemcalc.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/moist/chemcalc.f90,v retrieving revision 1.1 diff -r1.1 chemcalc.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: moist/eccm.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/moist/eccm.f90,v retrieving revision 1.25 diff -r1.25 eccm.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 102c102 < za_MolFr(RegZMin+1, 1:SpcNum) = a_MolFrIni(1:SpcNum) --- > za_MolFr(RegZMin, 1:SpcNum) = a_MolFrIni(1:SpcNum) 107c107 < z_MolWtMean(RegZMin+1) = MolWtMeanDry + MolWtMeanWet --- > z_MolWtMean(RegZMin) = MolWtMeanDry + MolWtMeanWet 109c109 < !地表面での温度(RegZMin+1 は, 高度 DelZ / 2 に相当) --- > !地表面での温度(RegZMin は, 高度 DelZ / 2 に相当) 111,112c111,112 < z_Temp(RegZMin+1) = TempSfc - Grav * z_MolWtMean(RegZMin+1) & < & / CpDryMol * ( DelZ * 5.0d-1 ) --- > z_Temp(RegZMin) = TempSfc - Grav * z_MolWtMean(RegZMin) & > & / CpDryMol * ( DelZ * 5.0d-1 ) 116,117c116,117 < z_Press(RegZMin+1) = & < & PressSfc *((TempSfc / z_Temp(RegZMin+1)) ** (- CpDryMol / GasRUniv)) --- > z_Press(RegZMin) = & > & PressSfc *((TempSfc / z_Temp(RegZMin)) ** (- CpDryMol / GasRUniv)) 124c124 < DtDz: do k = RegZMin+1, DimZMax-1 --- > DtDz: do k = RegZMin, DimZMax-1 222c222 < za_MolFr(RegZMin+1, 1:SpcNum) = a_MolFrIni(1:SpcNum) --- > za_MolFr(RegZMin, 1:SpcNum) = a_MolFrIni(1:SpcNum) 227c227 < z_MolWtMean(RegZMin+1) = MolWtMeanDry + MolWtMeanWet --- > z_MolWtMean(RegZMin) = MolWtMeanDry + MolWtMeanWet 231c231 < z_Temp(RegZMin+1) = TempSfc - Grav * z_MolWtMean(RegZMin+1) & --- > z_Temp(RegZMin) = TempSfc - Grav * z_MolWtMean(RegZMin) & 236,237c236,237 < z_Press(RegZMin+1) = & < & PressSfc *((TempSfc / z_Temp(RegZMin+1)) ** (- CpDryMol / GasRUniv)) --- > z_Press(RegZMin) = & > & PressSfc *((TempSfc / z_Temp(RegZMin)) ** (- CpDryMol / GasRUniv)) 242c242 < DtDz: do k = RegZMin+1, DimZMax-1 --- > DtDz: do k = RegZMin, DimZMax-1 Index: moist/eccm_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/moist/eccm_3d.f90,v retrieving revision 1.3 diff -r1.3 eccm_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 44c44 < use chemcalc_3d, only: SvapPress, &! --- > use chemcalc, only: SvapPress, &! 54,55c54 < use MoistFunc_3d,only: DelMolFrNH4SH < use StoreStab_3d,only: StoreStabTemp, StoreStabMolWt --- > use MoistFunc,only: DelMolFrNH4SH 85,89c84,88 < real(DP), intent(in) :: a_MolFrIni(1:SpcNum) !下部境界でのモル比 < real(DP), intent(in) :: Humidity !相対湿度 ( Humidity <= 1.0 ) < real(DP), intent(out):: z_Temp(DimZMin:DimZMax) !温度 < real(DP), intent(out):: z_Press(DimZMin:DimZMax)!圧力 < real(DP), intent(out):: z_MolWtMean(DimZMin:DimZMax) --- > real(8), intent(in) :: a_MolFrIni(1:SpcNum) !下部境界でのモル比 > real(8), intent(in) :: Humidity !相対湿度 ( Humidity <= 1.0 ) > real(8), intent(out):: z_Temp(DimZMin:DimZMax) !温度 > real(8), intent(out):: z_Press(DimZMin:DimZMax)!圧力 > real(8), intent(out):: z_MolWtMean(DimZMin:DimZMax) 91c90 < real(DP), intent(out):: za_MolFr(DimZMin:DimZMax, 1:SpcNum) --- > real(8), intent(out):: za_MolFr(DimZMin:DimZMax, 1:SpcNum) 93,97c92,96 < real(DP) :: MolWtMeanDry !乾燥気塊の分子量の作業変数 < real(DP) :: MolWtMeanWet !湿潤気塊の分子量の作業変数 < real(DP) :: SatPress !飽和蒸気圧 < real(DP) :: VapPress !蒸気圧 < real(DP) :: DelMolFr --- > real(8) :: MolWtMeanDry !乾燥気塊の分子量の作業変数 > real(8) :: MolWtMeanWet !湿潤気塊の分子量の作業変数 > real(8) :: SatPress !飽和蒸気圧 > real(8) :: VapPress !蒸気圧 > real(8) :: DelMolFr 198,202c197,201 < real(DP), intent(in) :: a_MolFrIni(1:SpcNum) !下部境界でのモル比 < real(DP), intent(in) :: Humidity !相対湿度 ( Humidity <= 1.0 ) < real(DP), intent(out):: z_Temp(DimZMin:DimZMax) !温度 < real(DP), intent(out):: z_Press(DimZMin:DimZMax)!圧力 < real(DP), intent(out):: z_MolWtMean(DimZMin:DimZMax) --- > real(8), intent(in) :: a_MolFrIni(1:SpcNum) !下部境界でのモル比 > real(8), intent(in) :: Humidity !相対湿度 ( Humidity <= 1.0 ) > real(8), intent(out):: z_Temp(DimZMin:DimZMax) !温度 > real(8), intent(out):: z_Press(DimZMin:DimZMax)!圧力 > real(8), intent(out):: z_MolWtMean(DimZMin:DimZMax) 204c203 < real(DP), intent(out):: za_MolFr(DimZMin:DimZMax, 1:SpcNum) --- > real(8), intent(out):: za_MolFr(DimZMin:DimZMax, 1:SpcNum) 206,211c205,210 < real(DP) :: MolWtMeanDry !乾燥気塊の分子量の作業変数 < real(DP) :: MolWtMeanWet !湿潤気塊の分子量の作業変数 < real(DP) :: SatPress !飽和蒸気圧 < real(DP) :: VapPress !蒸気圧 < real(DP) :: DelMolFr < real(DP) :: a_MolFr(SpcNum) !モル比の作業配列 --- > real(8) :: MolWtMeanDry !乾燥気塊の分子量の作業変数 > real(8) :: MolWtMeanWet !湿潤気塊の分子量の作業変数 > real(8) :: SatPress !飽和蒸気圧 > real(8) :: VapPress !蒸気圧 > real(8) :: DelMolFr > real(8) :: a_MolFr(SpcNum) !モル比の作業配列 214,218c213,217 < real(DP) :: Temp1, Press1, DTempDZ1 < real(DP) :: Temp2, Press2, DTempDZ2 < real(DP) :: Temp3, Press3, DTempDZ3 < real(DP) :: Temp4, Press4, DTempDZ4 < real(DP) :: DTempDZ --- > real(8) :: Temp1, Press1, DTempDZ1 > real(8) :: Temp2, Press2, DTempDZ2 > real(8) :: Temp3, Press3, DTempDZ3 > real(8) :: Temp4, Press4, DTempDZ4 > real(8) :: DTempDZ 339a339,340 > > 351,355c352,356 < real(DP), intent(in) :: a_MolFrIni(1:SpcNum) < real(DP), intent(in) :: Humidity < real(DP), intent(in) :: z_Temp(DimZMin:DimZMax) < real(DP), intent(in) :: z_Press(DimZMin:DimZMax) < real(DP), intent(out):: za_MolFr(DimZMin:DimZMax, 1:SpcNum) --- > real(8), intent(in) :: a_MolFrIni(1:SpcNum) > real(8), intent(in) :: Humidity > real(8), intent(in) :: z_Temp(DimZMin:DimZMax) > real(8), intent(in) :: z_Press(DimZMin:DimZMax) > real(8), intent(out):: za_MolFr(DimZMin:DimZMax, 1:SpcNum) 357c358 < real(DP) :: DelMolFr --- > real(8) :: DelMolFr 414c415,416 < !!!------------------------------------------------------------------------------!!! --- > > 505,506d506 < !!!------------------------------------------------------------------------------!!! < subroutine ECCM_Stab( xyz_PotTemp, xyz_Exner, xyza_MixRt ) 508c508,512 < use gridset_3d,only: DimXMin, &! 配列の X 方向の下限 --- > > subroutine ECCM_Stab( xz_PotTemp, xz_Exner, xza_MixRt, & > & xz_Stab, xz_StabTemp, xz_StabMolWt ) > > use gridset, only: DimXMin, &! 配列の X 方向の下限 510,511d513 < & DimYMin, &! 配列の Y 方向の下限 < & DimYMax, &! 配列の Y 方向の上限 515c517 < use basicset_3d,only: MolWtDry, &! --- > use basicset,only: MolWtDry, &! 519,525c521,526 < & xyz_ExnerBasicZ, &! < & xyz_PotTempBasicZ, &! < & xyz_EffMolWtBasicZ, &! < & xyza_MixRtBasicZ < < use xyz_base_module, only : xyz_avr_xyr < use xyz_deriv_module,only : xyr_dz_xyz --- > & xz_ExnerBasicZ, &! > & xz_PotTempBasicZ, &! > & xz_EffMolWtBasicZ, &! > & xza_MixRtBasicZ > use average, only: xz_avr_xr > use differentiate_center2, only: xr_dz_xz 529,540c530,540 < real(DP), intent(in) :: xyz_PotTemp(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < real(DP), intent(in) :: xyz_Exner(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < real(DP), intent(in) :: xyza_MixRt(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) < < real(DP) :: xyz_Stab(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < real(DP) :: xyz_StabTemp(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < real(DP) :: xyz_StabMolWt(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < < real(DP) :: xyza_MolFrAll(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) < real(DP) :: xyz_TempAll(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < real(DP) :: xyz_MolWtWet(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < integer :: i, j, k, s --- > real(8), intent(in) :: xz_PotTemp(DimXMin:DimXMax,DimZMin:DimZMax) > real(8), intent(in) :: xz_Exner(DimXMin:DimXMax, DimZMin:DimZMax) > real(8), intent(in) :: xza_MixRt(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) > real(8), intent(out) :: xz_Stab(DimXMin:DimXMax, DimZMin:DimZMax) > real(8), intent(out) :: xz_StabTemp(DimXMin:DimXMax, DimZMin:DimZMax) > real(8), intent(out) :: xz_StabMolWt(DimXMin:DimXMax, DimZMin:DimZMax) > > real(DP) :: xza_MolFrAll(DimXMin:DimXMax,DimZMin:DimZMax,SpcNum) > real(DP) :: xz_TempAll(DimXMin:DimXMax, DimZMin:DimZMax) > real(DP) :: xz_MolWtWet(DimXMin:DimXMax, DimZMin:DimZMax) > integer :: i, k, s 542c542 < xyz_TempAll = (xyz_PotTemp + xyz_PotTempBasicZ) * (xyz_Exner + xyz_ExnerBasicZ) --- > xz_TempAll = (xz_PotTemp + xz_PotTempBasicZ) * (xz_Exner + xz_ExnerBasicZ) 544,545c544,545 < xyza_MolFrAll(:,:,:,s) = & < & (xyza_MixRt(:,:,:,s) + xyza_MixRtBasicZ(:,:,:,s)) & --- > xza_MolFrAll(:,:,s) = & > & (xza_MixRt(:,:,s) + xza_MixRtBasicZ(:,:,s)) & 550,555c550,552 < do j = DimYMin, DimYMax < do i = DimXMin, DimXMax < xyz_MolWtWet(i,j,k) = & < & dot_product( MolWtWet(1:GasNum), xyza_MolFrAll(i,j,k,1:GasNum) ) < end do < end do --- > do i = DimXMin, DimXMax > xz_MolWtWet(i,k) = dot_product( MolWtWet(1:GasNum), xza_MolFrAll(i,k,1:GasNum) ) > end do 558,568c555,567 < xyz_StabTemp = & < & Grav / xyz_TempAll & < & * ( xyz_avr_xyr( xyr_dz_xyz( xyz_TempAll ) ) & < & + Grav * xyz_EffMolWtBasicZ / CpDry ) < xyz_StabMolWt = & < & - Grav * xyz_avr_xyr( xyr_dz_xyz( xyz_MolWtWet ) ) & < & / ( MolWtDry * xyz_EffMolWtBasicZ ) < xyz_Stab = xyz_StabTemp + xyz_StabMolWt < < call StoreStabTemp( xyz_StabTemp ) < call StoreStabMolWt( xyz_StabMolWt ) --- > xz_StabTemp = & > & Grav / xz_TempAll & > & * ( xz_avr_xr( xr_dz_xz( xz_TempAll ) ) & > & + Grav * xz_EffMolWtBasicZ / CpDry ) > xz_StabMolWt = & > & - Grav * xz_avr_xr( xr_dz_xz( xz_MolWtWet ) ) & > & / ( MolWtDry * xz_EffMolWtBasicZ ) > xz_Stab = & > & Grav / xz_TempAll & > & * ( xz_avr_xr( xr_dz_xz( xz_TempAll ) ) & > & + Grav * xz_EffMolWtBasicZ / CpDry ) & > & - Grav * xz_avr_xr( xr_dz_xz( xz_MolWtWet ) ) & > & / ( MolWtDry * xz_EffMolWtBasicZ ) 570,571c569,570 < where (xyz_Stab < 1.0d-7) < xyz_Stab = 1.0d-7 --- > where (xz_Stab < 1.0d-7) > xz_Stab = 1.0d-7 Index: moist/moistadjust.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/moist/moistadjust.f90,v retrieving revision 1.17 diff -r1.17 moistadjust.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: moist/moistbuoyancy.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/moist/moistbuoyancy.f90,v retrieving revision 1.17 diff -r1.17 moistbuoyancy.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: moist/moistfunc.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/moist/moistfunc.f90,v retrieving revision 1.13 diff -r1.13 moistfunc.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: moist/warmrainprm.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/moist/warmrainprm.f90,v retrieving revision 1.23 diff -r1.23 warmrainprm.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: physics/heatflux.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/physics/heatflux.f90,v retrieving revision 1.18 diff -r1.18 heatflux.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 230,231c230,231 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 290c290 < & TempSfc ,& !地表面温度 --- > & TempSfc ,& !地表面温度(実際は最下層の温度) 293c293,294 < & GasRDry !乾燥成分の気体定数 [J/K kg] --- > & GasRDry ,& !乾燥成分の気体定数 [J/K kg] > & TempGnd !地表面温度(地表面フラックス計算用) 306d306 < public pz_MomFluxBulk 317,346d316 < !!------------------------------------------------------------------------!!! < function pz_MomFluxBulk( Vel ) < ! < ! 下部境界からのフラックスによる運動量の変化率を, < ! バルク方法に基づいて計算する. < ! < < !暗黙の型宣言禁止 < implicit none < < !変数定義 < real(8), intent(in) :: Vel(DimXMin:DimXMax,DimZMin:DimZMax) < !水平風速 < real(8) :: pz_MomFluxBulk(DimXMin:DimXMax,DimZMin:DimZMax) < !地表面熱フラックス < integer :: kz !配列添字 < < < !初期化 < ! * 全ての値をゼロに固定 < pz_MomFluxBulk = 0.0d0 < < !地表面運動量フラックスによる変化率を計算 < ! * 単位は m/s^2 < ! * 格子点 xz では, 物理領域の最下端の添え字は RegZMin+1 < < kz = RegZMin+1 < < pz_MomFluxBulk(:,kz) = & < & - Bulk * abs(Vel(:,kz)) * Vel(:,kz) /DelZ 348d317 < end function pz_MomFluxBulk Index: physics/heatflux_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/physics/heatflux_3d.f90,v retrieving revision 1.2 diff -r1.2 heatflux_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: physics/radiation.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/physics/radiation.f90,v retrieving revision 1.11 diff -r1.11 radiation.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 58a59,60 > real(8) :: RadHeatRate2 = 0.0d0 !一様放射加熱率 [K/day] > real(8), allocatable :: xz_RadHeight2(:,:) !放射加熱が存在する領域 61c63,64 < save RadHeatRate, xz_RadHeight --- > ! save RadHeatRate, xz_RadHeight > save RadHeatRate, xz_RadHeight, RadHeatRate2, xz_RadHeight2 77a81,82 > real(8) :: RadHeightUp2 !放射強制を与える鉛直領域の上限 > real(8) :: RadHeightDown2 !放射強制を与える鉛直領域の下限 81c86 < NAMELIST /radiation/ RadHeatRate, RadHeightUp, RadHeightDown --- > NAMELIST /radiation/ RadHeatRate, RadHeightUp, RadHeightDown, RadHeatRate2, RadHeightUp2, RadHeightDown2 87a93 > allocate( xz_RadHeight2(DimXMin:DimXMax, DimZMin:DimZMax) ) 93a100 > xz_RadHeight2 = 1.0d0 102a110,117 > do k = DimZMin, DimZMax > if ( s_Z(k) <= RadHeightDown2 ) then > xz_RadHeight2(:,k) = 0.0d0 > elseif( s_Z(k) >= RadHeightUp2 ) then > xz_RadHeight2(:,k) = 0.0d0 > end if > end do > 128a144,147 > ! xz_RadHeatConst = & > ! & xz_RadHeight * RadHeatRate & > ! & / ( ( xz_ExnerBasicZ + xz_Exner ) * DayTime ) > 130a150,151 > & / ( ( xz_ExnerBasicZ + xz_Exner ) * DayTime ) & > & + xz_RadHeight2 * RadHeatRate2 & Index: physics/radiation_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/physics/radiation_3d.f90,v retrieving revision 1.2 diff -r1.2 radiation_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: physics/turbulence.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/physics/turbulence.f90,v retrieving revision 1.14 diff -r1.14 turbulence.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 56c56,60 < use differentiate_center2, only: xz_dx_pz, xz_dz_xr, & --- > ! use differentiate_center2, only: xz_dx_pz, xz_dz_xr, & > ! & xr_dx_pr, xr_dz_xz, & > ! & pz_dx_xz, pz_dz_pr, & > ! & pr_dx_xr, pr_dz_pz > use differentiate_center4, only: xz_dx_pz, xz_dz_xr, & 281a286,287 > ! & xz_dx_pz(pz_dx_xz(xz_Km)) * 5.0d-1 & > ! & + xz_dz_xr(xr_dz_xz(xz_Km)) * 5.0d-1 & Index: physics/turbulence_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/physics/turbulence_3d.f90,v retrieving revision 1.3 diff -r1.3 turbulence_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 368,373c368,371 < & xyz_dx_pyz( pyz_dx_xyz( xyz_Km ** 2.0d0 ) ) & < & + xyz_dy_xqz( xqz_dy_xyz( xyz_Km ** 2.0d0 ) ) & < & + xyz_dz_xyr( xyr_dz_xyz( xyz_Km ** 2.0d0 ) ) & < & + (xyz_avr_pyz( pyz_dx_xyz( xyz_Km ) ) ) ** 2.0d0 & < & + (xyz_avr_xqz( xqz_dy_xyz( xyz_Km ) ) ) ** 2.0d0 & < & + (xyz_avr_xyr( xyr_dz_xyz( xyz_Km ) ) ) ** 2.0d0 --- > & xyz_TurbScalar( xyz_Km, xyz_Km ) * 5.0d-1 & > & + (xyz_avr_pyz( pyz_dx_xyz( xyz_Km ) ) ) ** 2.0d0 & > & + (xyz_avr_xqz( xqz_dy_xyz( xyz_Km ) ) ) ** 2.0d0 & > & + (xyz_avr_xyr( xyr_dz_xyz( xyz_Km ) ) ) ** 2.0d0 Index: setup/argset.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/argset.f90,v retrieving revision 1.2 diff -r1.2 argset.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 60c60 < ! gtool5 ライブラリの dc_args モジュールを利用. --- > ! gt4f90io ライブラリの dc_args モジュールを利用. Index: setup/basicset.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/basicset.f90,v retrieving revision 1.15 diff -r1.15 basicset.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 51a52,54 > !実際には最下層の温度 > real(8) :: TempGnd !地表面温度 [K] > !地表面フラックス用 62c65 < real(8), allocatable :: xz_PressBasicZ(:,:) !無次元圧力 --- > real(8), allocatable :: xz_PressBasicZ(:,:) !圧力 155c158 < & EnvType, Humidity, TempStrat, Dhight --- > & EnvType, Humidity, TempStrat, Dhight, TempGnd 183a187 > write(*,*) s, SpcDryID(s) 237a242 > Index: setup/basicset_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/basicset_3d.f90,v retrieving revision 1.4 diff -r1.4 basicset_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 72,73c72,73 < real(DP), allocatable :: xyza_MixRtBasicZ(:,:,:,:)!凝縮成分混合比 < real(DP), allocatable :: xyz_EffMolWtBasicZ(:,:,:)!分子量効果 --- > ! real(DP), allocatable :: xyza_MixRtBasicZ(:,:,:,:)!凝縮成分混合比 > ! real(DP), allocatable :: xyz_EffMolWtBasicZ(:,:,:)!分子量効果 87,88c87 < & xyz_Press, xyz_Exner, xyz_Temp, xyz_PotTemp, xyz_Dens, xyz_VelSound, & < & xyza_MixRt, xyz_EffMolWt & --- > & xyz_Press, xyz_Exner, xyz_Temp, xyz_PotTemp, xyz_Dens, xyz_VelSound & 108,110c107,109 < real(DP), intent(in) :: xyza_MixRt & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) < real(DP), intent(in) :: xyz_EffMolWt(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) --- > ! real(DP), intent(in) :: xyza_MixRt & > ! & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) > ! real(DP), intent(in) :: xyz_EffMolWt(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) 117,124c116,123 < & xyz_DensBasicZ (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), & < & xyz_PressBasicZ (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), & < & xyz_ExnerBasicZ (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), & < & xyz_TempBasicZ (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), & < & xyz_PotTempBasicZ (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), & < & xyz_VelSoundBasicZ(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), & < & xyza_MixRtBasicZ (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum), & < & xyz_EffMolWtBasicZ(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) & --- > & xyz_DensBasicZ(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), & > & xyz_PressBasicZ(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax),& > & xyz_ExnerBasicZ(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax),& > & xyz_TempBasicZ(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), & > & xyz_PotTempBasicZ(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax),& > & xyz_VelSoundBasicZ(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) & > ! & xyza_MixRtBasicZ(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum), & > ! & xyz_EffMolWtBasicZ(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) & 134,135c133,134 < xyza_MixRtBasicZ = xyza_MixRt < xyz_EffMolWtBasicZ = xyz_EffMolWt --- > ! xyza_MixRtBasicZ = xyza_MixRt > ! xyz_EffMolWtBasicZ = xyz_EffMolWt Index: setup/dataset.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/dataset.f90,v retrieving revision 1.2 diff -r1.2 dataset.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: setup/debugset.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/debugset.f90,v retrieving revision 1.3 diff -r1.3 debugset.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 63c63 < ! if ( DebugOn ) call SetDebug --- > if ( DebugOn ) call SetDebug Index: setup/fileset.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/fileset.f90,v retrieving revision 1.4 diff -r1.4 fileset.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 30c30 < use gtool_history, only: gt_history --- > use gt4_history, only: gt_history 98c98,99 < ! PotTemp, Exner, VelX, VelZ, MixRt(SpcNum), Km, Kh --- > ! PotTemp, Exner, VelX, VelZ, MixRt(SpcNum), Km, Kh, > ! DensCloud, SatRatio, 100c101 < ! の合計 8 + SpcNum --- > ! の合計 10 + SpcNum 102c103 < FileNum = 8 + SpcNum --- > FileNum = 10 + SpcNum 113a115,116 > HistoryFile(9) = trim(HistoryFilePrefix)//"_DensCloud.nc" > HistoryFile(10) = trim(HistoryFilePrefix)//"_SatRatio.nc" 116c119 < HistoryFile(8+s) = trim(HistoryFilePrefix)//"_"//trim(SpcWetSymbol(s))//".nc" --- > HistoryFile(10+s) = trim(HistoryFilePrefix)//"_"//trim(SpcWetSymbol(s))//".nc" Index: setup/fileset_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/fileset_3d.f90,v retrieving revision 1.4 diff -r1.4 fileset_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 30,33c30 < use dc_iounit, only : FileOpen < use dc_message, only : MessageNotify < use gtool_history, only : gt_history < --- > use gt4_history, only: gt_history 52c49 < character(100), allocatable :: HistoryFile(:) !出力ファイル名 --- > character(len=100), allocatable :: HistoryFile(:) !出力ファイル名 62a60,62 > !モジュール読み込み > use dc_message, only: MessageNotify > 68,70d67 < < !内部変数 < integer :: unit !装置番号 78,80c75,77 < call FileOpen(unit, file=cfgfile, mode='r') < read(unit, NML=fileset) < close(unit) --- > open (10, FILE=cfgfile) > read(10, NML=fileset) > close(10) 102d98 < ! VorX, VorY, VorZ 104c100 < ! の合計 12 + SpcNum --- > ! の合計 9 + SpcNum 106,112c102,103 < FileNum = 12 + SpcNum < write(*,*) FileNum < ! if allocated(HistoryFile) then < ! write(*,*) "already allocated HistoryFile(FileNum)" < ! else < allocate(HistoryFile(FileNum)) < ! end if --- > FileNum = 9 + SpcNum > allocate(HistoryFile(FileNum)) 125,128d115 < HistoryFile(10) = trim(HistoryFilePrefix)//"_VorX.nc" < HistoryFile(11) = trim(HistoryFilePrefix)//"_VorY.nc" < HistoryFile(12) = trim(HistoryFilePrefix)//"_VorZ.nc" < 130c117 < HistoryFile(12+s) = trim(HistoryFilePrefix)//"_"//trim(SpcWetSymbol(s))//".nc" --- > HistoryFile(9+s) = trim(HistoryFilePrefix)//"_"//trim(SpcWetSymbol(s))//".nc" Index: setup/gridset.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/gridset.f90,v retrieving revision 1.5 diff -r1.5 gridset.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: setup/gridset_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/gridset_3d.f90,v retrieving revision 1.2 diff -r1.2 gridset_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 34,36c34,45 < use xyz_base_module, only: DimXmin => imin, DimXMax => imax, & < & DimYmin => jmin, DimYMax => jmax, & < & DimZmin => kmin, DimZMax => kmax, & --- > ! use xyz_base_module, only: DimXmin => imin, DimXMax => imax, & > ! & DimYmin => jmin, DimYMax => jmax, & > ! & DimZmin => kmin, DimZMax => kmax, & > ! & xyz_axis_init, x_X, p_X, y_Y, q_Y, z_Z, r_Z, & > ! & x_dx, p_dx, y_dy, q_dy, z_dz, r_dz, & > ! & xyz_X, xyz_Y, xyz_Z, & > ! & xyz_dX, xyz_dY, xyz_dZ, & > ! & xmargin, ymargin, zmargin > use x_base_module, only: DimXmin => imin, DimXMax => imax > use y_base_module, only: DimYmin => jmin, DimYMax => jmax > use z_base_module, only: DimZmin => kmin, DimZMax => kmax > use xyz_base_module, only: & 41a51 > Index: setup/moistset.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/moistset.f90,v retrieving revision 1.2 diff -r1.2 moistset.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: setup/storebuoy.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/storebuoy.f90,v retrieving revision 1.1 diff -r1.1 storebuoy.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: setup/storemixrt.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/storemixrt.f90,v retrieving revision 1.1 diff -r1.1 storemixrt.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: setup/storepottemp.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/storepottemp.f90,v retrieving revision 1.2 diff -r1.2 storepottemp.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: setup/storepottemp_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/storepottemp_3d.f90,v retrieving revision 1.2 diff -r1.2 storepottemp_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 281a282 > Index: setup/storeset_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/storeset_3d.f90,v retrieving revision 1.2 diff -r1.2 storeset_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: setup/storestab.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/storestab.f90,v retrieving revision 1.1 diff -r1.1 storestab.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: setup/timeset.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/setup/timeset.f90,v retrieving revision 1.5 diff -r1.5 timeset.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: util/average.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/average.f90,v retrieving revision 1.5 diff -r1.5 average.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: util/boundary.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/boundary.f90,v retrieving revision 1.6 diff -r1.6 boundary.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: util/cflcheck.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/cflcheck.f90,v retrieving revision 1.6 diff -r1.6 cflcheck.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 23c23 < !Error Handling を gtool5 を利用するように変更 --- > !Error Handling を gt4f90io を利用するように変更 Index: util/cflcheck_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/cflcheck_3d.f90,v retrieving revision 1.4 diff -r1.4 cflcheck_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 23c23 < !Error Handling を gtool5 を利用するように変更 --- > !Error Handling を gt4f90io を利用するように変更 Index: util/damping.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/damping.f90,v retrieving revision 1.7 diff -r1.7 damping.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: util/damping_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/damping_3d.f90,v retrieving revision 1.1 diff -r1.1 damping_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: util/differentiate_center2.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/differentiate_center2.f90,v retrieving revision 1.4 diff -r1.4 differentiate_center2.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 74c74,75 < xz_dx_pz = 1.0d-16 --- > ! xz_dx_pz = 1.0d-16 > xz_dx_pz = 0.0d0 99c100,101 < xz_dz_xr = 1.0d-16 --- > ! xz_dz_xr = 1.0d-16 > xz_dz_xr = 0.0d0 124c126,127 < pz_dx_xz = 1.0d-16 --- > ! pz_dx_xz = 1.0d-16 > pz_dx_xz = 0.0d0 146c149,150 < pz_dz_pr = 1.0d-16 --- > ! pz_dz_pr = 1.0d-16 > pz_dz_pr = 0.0d0 171c175,176 < xr_dx_pr = 1.0d-16 --- > ! xr_dx_pr = 1.0d-16 > xr_dx_pr = 0.0d0 196c201,202 < xr_dz_xz = 1.0d-16 --- > ! xr_dz_xz = 1.0d-16 > xr_dz_xz = 0.0d0 221c227,228 < pr_dx_xr = 1.0d-16 --- > ! pr_dx_xr = 1.0d-16 > pr_dx_xr = 0.0d0 246c253,254 < pr_dz_pz = 1.0d-16 --- > ! pr_dz_pz = 1.0d-16 > pr_dz_pz = 0.0d0 Index: util/differentiate_center4.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/differentiate_center4.f90,v retrieving revision 1.3 diff -r1.3 differentiate_center4.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 74c74,75 < xz_dx_pz = 1.0d-16 --- > ! xz_dx_pz = 1.0d-16 > xz_dx_pz = 0.0d0 104c105,106 < xz_dz_xr = 1.0d-16 --- > ! xz_dz_xr = 1.0d-16 > xz_dz_xr = 0.0d0 134c136,137 < pz_dx_xz = 1.0d-16 --- > ! pz_dx_xz = 1.0d-16 > pz_dx_xz = 0.0d0 162c165,166 < pz_dz_pr = 1.0d-16 --- > ! pz_dz_pr = 1.0d-16 > pz_dz_pr = 0.0d0 192c196,197 < xr_dx_pr = 1.0d-16 --- > ! xr_dx_pr = 1.0d-16 > xr_dx_pr = 0.0d0 222c227,228 < xr_dz_xz = 1.0d-16 --- > ! xr_dz_xz = 1.0d-16 > xr_dz_xz = 0.0d0 251a258 > ! pr_dx_xr = 1.0d-16 282c289,290 < pr_dz_pz = 1.0d-16 --- > ! pr_dz_pz = 1.0d-16 > pr_dz_pz = 0.0d0 Index: util/fillnegative.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/fillnegative.f90,v retrieving revision 1.7 diff -r1.7 fillnegative.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: util/numdiffusion.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/numdiffusion.f90,v retrieving revision 1.13 diff -r1.13 numdiffusion.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 40c40,44 < use differentiate_center2, only: xz_dx_pz, xz_dz_xr, & --- > ! use differentiate_center2, only: xz_dx_pz, xz_dz_xr, & > ! & xr_dx_pr, xr_dz_xz, & > ! & pz_dx_xz, pz_dz_pr, & > ! & pr_dx_xr, pr_dz_pz > use differentiate_center4, only: xz_dx_pz, xz_dz_xr, & 64,65c68,73 < real(8) :: Alpha = 1.0d-4 < --- > !! real(8) :: Alpha = 1.0d-4 > real(8) :: Alpha = 5.0d-4 ! 北守計算デフォルト値 > ! real(8) :: Alpha = 2.5d-4 > ! real(8) :: Alpha = 1.0d-3 > ! real(8) :: Alpha = 2.0d-3 > 108a117,120 > > ! xz_NumDiffScalar = xr_dz_xz( xz_Scalar ) > ! xz_NumDiffScalar = NuH > Index: util/numdiffusion_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/numdiffusion_3d.f90,v retrieving revision 1.4 diff -r1.4 numdiffusion_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ 51d50 < use StoreMixRt_3d, only: StoreMixRtDiff 63,64c62 < public xyz_NumDiffKm < public xyza_NumDiffScalar --- > ! public xyza_NumDiffScalar 133,165c131,141 < function xyz_NumDiffKm(xyz_Scalar) < ! < ! x, z 方向に半格子ずれた点での数値拡散項を評価 < ! < < !暗黙の型宣言禁止 < implicit none < < !変数定義 < real(8), intent(in) :: xyz_Scalar(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < !スカラー量 < real(8) :: xyz_NumDiffKm(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) < !水平方向の数値拡散 < < xyz_NumDiffKm = & < & NuH * (xyz_dx_pyz(pyz_dx_xyz( xyz_Scalar ))) & < & + NuH * (xyz_dy_xqz(xqz_dy_xyz( xyz_Scalar ))) & < & + NuV * (xyz_dz_xyr(xyr_dz_xyz( xyz_Scalar ))) < < end function xyz_NumDiffKm < < !!!-------------------------------------------------------------------!!! < function xyza_NumDiffScalar(xyza_Scalar) < ! < ! x, z 方向に半格子ずれた点での数値拡散項を評価 < ! < < !暗黙の型宣言禁止 < implicit none! < < !変数定義 < real(DP), intent(in) :: xyza_Scalar & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) --- > ! function xyza_NumDiffScalar(xyza_Scalar) > ! ! > ! ! x, z 方向に半格子ずれた点での数値拡散項を評価 > ! ! > ! > ! !暗黙の型宣言禁止 > ! implicit none! > ! > ! !変数定義 > ! real(DP), intent(in) :: xyza_Scalar & > ! & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) 167,168c143,144 < real(DP) :: xyza_NumDiffScalar & < & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) --- > ! real(DP) :: xyza_NumDiffScalar & > ! & (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax,SpcNum) 170c146 < integer :: s --- > ! integer :: s 173,178c149,154 < do s = 1, SpcNum < xyza_NumDiffScalar(:,:,:,s) = & < & NuH * (xyz_dx_pyz(pyz_dx_xyz( xyza_Scalar(:,:,:,s) ))) & < & + NuH * (xyz_dy_xqz(xqz_dy_xyz( xyza_Scalar(:,:,:,s) ))) & < & + NuV * (xyz_dz_xyr(xyr_dz_xyz( xyza_Scalar(:,:,:,s) ))) < end do --- > ! do s = 1, SpcNum > ! xyza_NumDiffScalar(:,:,:,s) = & > ! & NuH * (xyz_dx_pyz(pyz_dx_xyz( xyza_Scalar(:,:,:,s) ))) & > ! & + NuH * (xyz_dy_xqz(xqz_dy_xyz( xyza_Scalar(:,:,:,s) ))) & > ! & + NuV * (xyz_dz_xyr(xyr_dz_xyz( xyza_Scalar(:,:,:,s) ))) > ! end do 180c156 < call StoreMixRtDiff( xyza_NumDiffScalar ) --- > ! call Store2Diff( xyza_NumDiffScalar ) 182c158 < end function xyza_NumDiffScalar --- > ! end function xyza_NumDiffScalar Index: util/timefilter.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/timefilter.f90,v retrieving revision 1.5 diff -r1.5 timefilter.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: util/timefilter_3d.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/timefilter_3d.f90,v retrieving revision 1.4 diff -r1.4 timefilter_3d.f90 4,5c4,5 < ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ < ! Tag Name:: $Name: arare4-20120511 $ --- > ! Version:: $Id: LOG,v 1.1 2009-03-05 05:39:39 yamasita Exp $ > ! Tag Name:: $Name: arare4-20120511 $ Index: util/xyz_bc_module.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/xyz_bc_module.f90,v retrieving revision 1.2 diff -r1.2 xyz_bc_module.f90 36,37c36,39 < use xyz_base_module, only : imin, imax, jmin, jmax, kmin, kmax, & < & xmargin, ymargin, zmargin, im, jm, km --- > use x_base_module, only: imin, imax > use y_base_module, only: jmin, jmax > use z_base_module, only: kmin, kmax > ! use xyz_base_module, only : imin, imax, jmin, jmax, kmin, kmax 89c91 < module procedure BoundaryXCyc_aaa --- > module procedure BoundaryXCyc_xaa 93c95 < module procedure BoundaryXCyc_aaa --- > module procedure BoundaryXCyc_xaa 97,101c99 < module procedure BoundaryXCyc_aaa < end interface < < interface BoundaryXCyc_pyz < module procedure BoundaryXCyc_aaa --- > module procedure BoundaryXCyc_xaa 129c127 < module procedure BoundaryYCyc_aaa --- > module procedure BoundaryYCyc_aya 133c131 < module procedure BoundaryYCyc_aaa --- > module procedure BoundaryYCyc_aya 137,141c135 < module procedure BoundaryYCyc_aaa < end interface < < interface BoundaryYCyc_xqz < module procedure BoundaryYCyc_aaa --- > module procedure BoundaryYCyc_aya 169c163 < module procedure BoundaryZCyc_aaa --- > module procedure BoundaryZCyc_aaz 173c167 < module procedure BoundaryZCyc_aaa --- > module procedure BoundaryZCyc_aaz 177,181c171 < module procedure BoundaryZCyc_aaa < end interface < < interface BoundaryZCyc_xyr < module procedure BoundaryZCyc_aaa --- > module procedure BoundaryZCyc_aaz 184,185d173 < integer :: ix, jy, kz < 190a179 > integer :: jy, kz 193,201c182,185 < ! do kz = kmin, kmax < ! do jy = jmin, jmax < ! call BoundarySym_x(xaa_Var(:,jy,kz)) < ! end do < ! end do < < do ix = 1, xmargin < xaa_Var(1-ix,:,:) = xaa_Var(ix,:,:) < xaa_Var(im+ix,:,:) = xaa_Var(im+1-ix,:,:) --- > do kz = kmin, kmax > do jy = jmin, jmax > call BoundarySym_x(xaa_Var(:,jy,kz)) > end do 207a192 > integer :: jy, kz 210,217c195,198 < ! do kz = kmin, kmax < ! do jy = jmin, jmax < ! call BoundarySym_p(pyz_Var(:,jy,kz)) < ! end do < ! end do < < do ix = 1, xmargin-1 < pyz_Var(-ix,:,:) = pyz_Var(ix,:,:) --- > do kz = kmin, kmax > do jy = jmin, jmax > call BoundarySym_p(pyz_Var(:,jy,kz)) > end do 220,224d200 < do ix = 1, xmargin < pyz_Var(im+ix,:,:) = pyz_Var(im+1-ix,:,:) < end do < < 228a205 > integer :: jy, kz 231,239c208,211 < ! do kz = kmin, kmax < ! do jy = jmin, jmax < ! call BoundaryAsym_x(xaa_Var(:,jy,kz)) < ! end do < ! end do < < do ix = 1, xmargin < xaa_Var(1-ix,:,:) = - xaa_Var(ix,:,:) < xaa_Var(im+ix,:,:) = - xaa_Var(im+1-ix,:,:) --- > do kz = kmin, kmax > do jy = jmin, jmax > call BoundaryAsym_x(xaa_Var(:,jy,kz)) > end do 245a218 > integer :: jy, kz 248,258c221,224 < ! do kz = kmin, kmax < ! do jy = jmin, jmax < ! call BoundaryAsym_p(pyz_Var(:,jy,kz)) < ! end do < ! end do < < pyz_Var(0,:,:) = 0.0d0 < pyz_Var(im,:,:) = 0.0d0 < < do ix = 1, xmargin-1 < pyz_Var(-ix,:,:) = - pyz_Var(ix,:,:) --- > do kz = kmin, kmax > do jy = jmin, jmax > call BoundaryAsym_p(pyz_Var(:,jy,kz)) > end do 261,262c227,237 < do ix = 1, xmargin < pyz_Var(im+ix,:,:) = - pyz_Var(im-ix,:,:) --- > end subroutine BoundaryXAsym_pyz > !-------------------------------------------------------------------- > subroutine BoundaryXCyc_xaa(xaa_Var) > real(DBKIND),intent(inout) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) > integer :: jy, kz > > ! x 方向に周期境界条件を適用する > do kz = kmin, kmax > do jy = jmin, jmax > call BoundaryCyc_x(xaa_Var(:,jy,kz)) > end do 265c240 < end subroutine BoundaryXAsym_pyz --- > end subroutine BoundaryXCyc_xaa 267,268c242,244 < subroutine BoundaryXCyc_aaa(aaa_Var) < real(DBKIND),intent(inout) :: aaa_Var(imin:imax,jmin:jmax,kmin:kmax) --- > subroutine BoundaryXCyc_pyz(pyz_Var) > real(DBKIND),intent(inout) :: pyz_Var(imin:imax,jmin:jmax,kmin:kmax) > integer :: jy, kz 271,279c247,250 < ! do kz = kmin, kmax < ! do jy = jmin, jmax < ! call BoundaryCyc_x(xaa_Var(:,jy,kz)) < ! end do < ! end do < < do ix = 1, xmargin < aaa_Var(1-ix,:,:) = aaa_Var(im+1-ix,:,:) < aaa_Var(im+ix,:,:) = aaa_Var(ix,:,:) --- > do kz = kmin, kmax > do jy = jmin, jmax > call BoundaryCyc_p(pyz_Var(:,jy,kz)) > end do 281,282c252,253 < < end subroutine BoundaryXCyc_aaa --- > > end subroutine BoundaryXCyc_pyz 285a257 > integer :: ix, kz 288,296c260,263 < ! do kz = kmin, kmax < ! do ix = imin, imax < ! call boundarySym_y(aya_Var(ix,:,kz)) < ! end do < ! end do < < do jy = 1, ymargin < aya_Var(:,1-jy,:) = aya_Var(:,jy,:) < aya_Var(:,jm+jy,:) = aya_Var(:,jm+1-jy,:) --- > do kz = kmin, kmax > do ix = imin, imax > call boundarySym_y(aya_Var(ix,:,kz)) > end do 302a270 > integer :: ix, kz 305,316c273,276 < ! do kz = kmin, kmax < ! do ix = imin, imax < ! call boundarySym_q(xqz_Var(ix,:,kz)) < ! end do < ! end do < < do jy = 1, ymargin-1 < xqz_Var(:,-jy,:) = xqz_Var(:,jy,:) < end do < < do jy = 1, ymargin < xqz_Var(:,jm+jy,:) = xqz_Var(:,jm+1-jy,:) --- > do kz = kmin, kmax > do ix = imin, imax > call boundarySym_q(xqz_Var(ix,:,kz)) > end do 322a283 > integer :: ix, kz 325,333c286,289 < ! do kz = kmin, kmax < ! do ix = imin, imax < ! call boundaryASym_y(aya_Var(ix,:,kz)) < ! end do < ! end do < < do jy = 1, ymargin < aya_Var(:,1-jy,:) = - aya_Var(:,jy,:) < aya_Var(:,jm+jy,:) = - aya_Var(:,jm+1-jy,:) --- > do kz = kmin, kmax > do ix = imin, imax > call boundaryASym_y(aya_Var(ix,:,kz)) > end do 343,353c299,302 < ! do kz = kmin, kmax < ! do ix = imin, imax < ! call boundaryASym_q(xqz_Var(ix,:,kz)) < ! end do < ! end do < < xqz_Var(:,0,:) = 0.0d0 < xqz_Var(:,jm,:) = 0.0d0 < < do jy = 1, ymargin-1 < xqz_Var(:,-jy,:) = - xqz_Var(:,jy,:) --- > do kz = kmin, kmax > do ix = imin, imax > call boundaryASym_q(xqz_Var(ix,:,kz)) > end do 356,357c305,315 < do jy = 1, ymargin < xqz_Var(:,jm+jy,:) = - xqz_Var(:,jm-jy,:) --- > end subroutine BoundaryYAsym_xqz > !-------------------------------------------------------------------- > subroutine BoundaryYCyc_aya(aya_Var) > real(DBKIND),intent(inout) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) > integer :: ix, kz > > ! y 方向に周期境界条件を適用する > do kz = kmin, kmax > do ix = imin, imax > call BoundaryCyc_y(aya_Var(ix,:,kz)) > end do 360c318 < end subroutine BoundaryYAsym_xqz --- > end subroutine BoundaryYCyc_aya 362,363c320,321 < subroutine BoundaryYCyc_aaa(aaa_Var) < real(DBKIND),intent(inout) :: aaa_Var(imin:imax,jmin:jmax,kmin:kmax) --- > subroutine BoundaryYCyc_xqz(xqz_Var) > real(DBKIND),intent(inout) :: xqz_Var(imin:imax,jmin:jmax,kmin:kmax) 367,375c325,328 < ! do kz = kmin, kmax < ! do ix = imin, imax < ! call BoundaryCyc_y(aya_Var(ix,:,kz)) < ! end do < ! end do < < do jy = 1, ymargin < aaa_Var(:,1-jy,:) = aaa_Var(:,jm+1-jy,:) < aaa_Var(:,jm+jy,:) = aaa_Var(:,jy,:) --- > do kz = kmin, kmax > do ix = imin, imax > call BoundaryCyc_q(xqz_Var(ix,:,kz)) > end do 378c331 < end subroutine BoundaryYCyc_aaa --- > end subroutine BoundaryYCyc_xqz 381a335 > integer :: ix, jy 384,392c338,341 < ! do jy = jmin, jmax < ! do ix = imin, imax < ! call boundarySym_z(aaz_Var(ix,jy,:)) < ! end do < ! end do < < do kz = 1, zmargin < aaz_Var(:,:,1-kz) = aaz_Var(:,:,kz) < aaz_Var(:,:,km+kz) = aaz_Var(:,:,km+1-kz) --- > do jy = jmin, jmax > do ix = imin, imax > call boundarySym_z(aaz_Var(ix,jy,:)) > end do 395d343 < 399a348 > integer :: ix, jy 402,413c351,354 < ! do jy = jmin, jmax < ! do ix = imin, imax < ! call boundarySym_r(xyr_Var(ix,jy,:)) < ! end do < ! end do < < do kz = 1, zmargin-1 < xyr_Var(:,:,-kz) = xyr_Var(:,:,kz) < end do < < do kz = 1, zmargin < xyr_Var(:,:,km+kz) = xyr_Var(:,:,km+1-kz) --- > do jy = jmin, jmax > do ix = imin, imax > call boundarySym_r(xyr_Var(ix,jy,:)) > end do 419a361 > integer :: ix, jy 422,430c364,367 < ! do jy = jmin, jmax < ! do ix = imin, imax < ! call boundaryAsym_z(aaz_Var(ix,jy,:)) < ! end do < ! end do < < do kz = 1, zmargin < aaz_Var(:,:,1-kz) = - aaz_Var(:,:,kz) < aaz_Var(:,:,km+kz) = - aaz_Var(:,:,km+1-kz) --- > do jy = jmin, jmax > do ix = imin, imax > call boundaryAsym_z(aaz_Var(ix,jy,:)) > end do 436a374 > integer :: ix, jy 439,449c377,380 < ! do jy = jmin, jmax < ! do ix = imin, imax < ! call boundaryAsym_r(xyr_Var(ix,jy,:)) < ! end do < ! end do < < xyr_Var(:,:,0) = 0.0d0 < xyr_Var(:,:,km) = 0.0d0 < < do kz = 1, zmargin-1 < xyr_Var(:,:,-kz) = - xyr_Var(:,:,kz) --- > do jy = jmin, jmax > do ix = imin, imax > call boundaryAsym_r(xyr_Var(ix,jy,:)) > end do 452,453c383,393 < do kz = 1, zmargin < xyr_Var(:,:,km+kz) = - xyr_Var(:,:,km-kz) --- > end subroutine BoundaryZAsym_xyr > !-------------------------------------------------------------------- > subroutine BoundaryZCyc_aaz(aaz_Var) > real(DBKIND),intent(inout) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) > integer :: ix, jy > > ! z 方向に周期境界条件を適用する > do jy = jmin, jmax > do ix = imin, imax > call boundaryCyc_z(aaz_Var(ix,jy,:)) > end do 456c396 < end subroutine BoundaryZAsym_xyr --- > end subroutine BoundaryZCyc_aaz 458,459c398,400 < subroutine BoundaryZCyc_aaa(aaa_Var) < real(DBKIND),intent(inout) :: aaa_Var(imin:imax,jmin:jmax,kmin:kmax) --- > subroutine BoundaryZCyc_xyr(xyr_Var) > real(DBKIND),intent(inout) :: xyr_Var(imin:imax,jmin:jmax,kmin:kmax) > integer :: ix, jy 462,470c403,406 < ! do jy = jmin, jmax < ! do ix = imin, imax < ! call boundaryCyc_z(aaz_Var(ix,jy,:)) < ! end do < ! end do < < do kz = 1, zmargin < aaa_Var(:,:,1-kz) = aaa_Var(:,:,km+1-kz) < aaa_Var(:,:,km+kz) = aaa_Var(:,:,kz) --- > do jy = jmin, jmax > do ix = imin, imax > call boundaryCyc_z(xyr_Var(ix,jy,:)) > end do 473c409 < end subroutine BoundaryZCyc_aaa --- > end subroutine BoundaryZCyc_xyr Index: util/xyz_deriv_c4_module.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/xyz_deriv_c4_module.f90,v retrieving revision 1.1 diff -r1.1 xyz_deriv_c4_module.f90 48,49c48,53 < use xyz_base_module, only : imin, imax, jmin, jmax, kmin, kmax, & < & x_dx, p_dx, y_dy, q_dy, z_dz, r_dz --- > use x_base_module, only: imin, imax > use y_base_module, only: jmin, jmax > use z_base_module, only: kmin, kmax > ! use xyz_base_module, only : imin, imax, jmin, jmax, kmin, kmax, & > ! & x_dx, p_dx, y_dy, q_dy, z_dz, r_dz > use xyz_base_module, only : x_dx, p_dx, y_dy, q_dy, z_dz, r_dz Index: util/xyz_deriv_module.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/xyz_deriv_module.f90,v retrieving revision 1.4 diff -r1.4 xyz_deriv_module.f90 34,35c34,39 < use xyz_base_module, only : imin, imax, jmin, jmax, kmin, kmax, & < & x_dx, p_dx, y_dy, q_dy, z_dz, r_dz --- > use x_base_module, only: imin, imax > use y_base_module, only: jmin, jmax > use z_base_module, only: kmin, kmax > ! use xyz_base_module, only : imin, imax, jmin, jmax, kmin, kmax, & > ! & x_dx, p_dx, y_dy, q_dy, z_dz, r_dz > use xyz_base_module, only : x_dx, p_dx, y_dy, q_dy, z_dz, r_dz 71,73d74 < xyz_dx_pyz(imin,:,:) = xyz_dx_pyz(imin+1,:,:) < < 94,95d94 < pyz_dx_xyz(imax,:,:) = pyz_dx_xyz(imax-1,:,:) < 115,116d113 < pqz_dx_xqz(imax,:,:) = pqz_dx_xqz(imax-1,:,:) < 136,137d132 < xqz_dx_pqz(imin,:,:) = xqz_dx_pqz(imin+1,:,:) < 157,158d151 < pyr_dx_xyr(imax,:,:) = pyr_dx_xyr(imax-1,:,:) < 178,179d170 < xyr_dx_pyr(imin,:,:) = xyr_dx_pyr(imin+1,:,:) < 200,201d190 < xyz_dy_xqz(:,jmin,:) = xyz_dy_xqz(:,jmin+1,:) < 218,219c207,208 < do jy = jmin, jmax-1 < xqz_dy_xyz(:,jy,:) = (xyz_Var(:,jy+1,:) - xyz_Var(:,jy,:))/q_dy(jy) --- > do jy = jmin, jmax > xqz_dy_xyz(:,jy,:) = (xyz_Var(:,jy+1,:) - xyz_Var(:,jy,:))/q_dy(jy) 222,223d210 < xqz_dy_xyz(:,jmax,:) = xqz_dy_xyz(:,jmax-1,:) < 240c227 < do jy = jmin, jmax-1 --- > do jy = jmin, jmax 244,245d230 < pqz_dy_pyz(:,jmax,:) = pqz_dy_pyz(:,jmax-1,:) < 266,267d250 < pyz_dy_pqz(:,jmin,:) = pyz_dy_pqz(:,jmin+1,:) < 284,285c267,268 < do jy = jmin, jmax-1 < xqr_dy_xyr(:,jy,:) = (xyr_Var(:,jy+1,:) - xyr_Var(:,jy,:))/q_dy(jy) --- > do jy = jmin, jmax > xqr_dy_xyr(:,jy,:) = (xyr_Var(:,jy+1,:) - xyr_Var(:,jy,:))/q_dy(jy) 288,289d270 < xqr_dy_xyr(:,jmax,:) = xqr_dy_xyr(:,jmax-1,:) < 310,311d290 < xyr_dy_xqr(:,jmin,:) = xyr_dy_xqr(:,jmin+1,:) < 332,333d310 < xyz_dz_xyr(:,:,kmin) = xyz_dz_xyr(:,:,kmin+1) < 354,355d330 < xyr_dz_xyz(:,:,kmax) = xyr_dz_xyz(:,:,kmax-1) < 376,377d350 < pyr_dz_pyz(:,:,kmax) = pyr_dz_pyz(:,:,kmax-1) < 398,399d370 < pyz_dz_pyr(:,:,kmin) = pyz_dz_pyr(:,:,kmin+1) < 420,421d390 < xqr_dz_xqz(:,:,kmax) = xqr_dz_xqz(:,:,kmax-1) < 442,443d410 < xqz_dz_xqr(:,:,kmin) = xqz_dz_xqr(:,:,kmin+1) < Index: util/xyz_module.f90 =================================================================== RCS file: /GFD_Dennou_Club/ftp/arch/deepconv/cvsroot/arare4/src/util/xyz_module.f90,v retrieving revision 1.2 diff -r1.2 xyz_module.f90 114a115,118 > use x_base_module, only: imin, imax > use y_base_module, only: jmin, jmax > use z_base_module, only: kmin, kmax > 116,118c120,122 < & imin, imax, x_X, p_X, x_dx, p_dx, & < & jmin, jmax, y_Y, q_Y, y_dy, q_dy, & < & kmin, kmax, z_Z, r_Z, z_dz, r_dz, & --- > & x_X, p_X, x_dx, p_dx, & > & y_Y, q_Y, y_dy, q_dy, & > & z_Z, r_Z, z_dz, r_dz, &