Go to the documentation of this file.
149 integer,
public,
parameter ::
i_z0m = 9
150 integer,
public,
parameter ::
i_z0h = 10
151 integer,
public,
parameter ::
i_z0e = 11
157 private :: land_param_read
163 logical,
private :: land_vars_checkrange = .false.
166 integer,
private,
parameter :: vmax = 16
167 integer,
private,
parameter :: i_temp = 1
168 integer,
private,
parameter :: i_water = 2
169 integer,
private,
parameter :: i_ice = 3
170 integer,
private,
parameter :: i_waterds = 4
171 integer,
private,
parameter :: i_sfc_temp = 5
172 integer,
private,
parameter :: i_sfc_alb_ir_dir = 6
173 integer,
private,
parameter :: i_sfc_alb_ir_dif = 7
174 integer,
private,
parameter :: i_sfc_alb_nir_dir = 8
175 integer,
private,
parameter :: i_sfc_alb_nir_dif = 9
176 integer,
private,
parameter :: i_sfc_alb_vis_dir = 10
177 integer,
private,
parameter :: i_sfc_alb_vis_dif = 11
178 integer,
private,
parameter :: i_snow_sfc_temp = 12
179 integer,
private,
parameter :: i_snow_swe = 13
180 integer,
private,
parameter :: i_snow_depth = 14
181 integer,
private,
parameter :: i_snow_dzero = 15
182 integer,
private,
parameter :: i_snow_nosnowsec = 16
184 character(len=H_SHORT),
private :: var_name(vmax)
185 character(len=H_MID),
private :: var_desc(vmax)
186 character(len=H_MID),
private :: var_stdn(vmax)
187 character(len=H_SHORT),
private :: var_unit(vmax)
188 integer,
private :: var_id(vmax)
189 integer,
private :: restart_fid = -1
191 data var_name /
'LAND_TEMP', &
196 'LAND_SFC_ALB_IR_dir', &
197 'LAND_SFC_ALB_IR_dif', &
198 'LAND_SFC_ALB_NIR_dir', &
199 'LAND_SFC_ALB_NIR_dif', &
200 'LAND_SFC_ALB_VIS_dir', &
201 'LAND_SFC_ALB_VIS_dif', &
202 'LAND_SNOW_SFC_TEMP', &
206 'LAND_SNOW_nosnowsec' /
208 data var_desc /
'temperature at each soil layer', &
209 'moisture at each soil layer', &
210 'ice at each soil layer', &
211 'degree of saturation at each soil layer', &
212 'land surface skin temperature', &
213 'land surface albedo for IR (direct)', &
214 'land surface albedo for IR (diffuse)', &
215 'land surface albedo for NIR (direct)', &
216 'land surface albedo for NIR (diffuse)', &
217 'land surface albedo for VIS (direct)', &
218 'land surface albedo for VIS (diffuse)', &
219 'Snow surface temperature', &
220 'Snow water equivalent', &
222 'Snow depth at melting point', &
223 'Time duration without snow' /
225 data var_stdn /
'soil_temperature', &
226 'volume_fraction_of_condensed_water_in_soil', &
228 'volume_fraction_of_condensed_water_in_soil_at_field_capacity', &
229 'surface_temperature_where_land', &
242 data var_unit /
'K', &
259 logical,
private :: land_restart_in_check_coordinates = .true.
262 integer,
parameter :: im_temp = 1
263 integer,
parameter :: im_water = 2
264 integer,
parameter :: im_ice = 3
265 integer,
parameter :: im_sfc = 4
266 integer,
parameter :: im_roff = 5
267 integer,
parameter :: im_masflx = 6
268 integer,
parameter :: im_engi = 7
269 integer,
parameter :: im_w_engi = 8
270 integer,
parameter :: im_i_engi = 9
271 integer,
parameter :: im_engsfc_gh = 10
272 integer,
parameter :: im_engsfc_ei = 11
273 integer,
parameter :: im_roff_ei = 12
274 integer,
parameter :: im_engflx = 13
275 integer,
parameter :: im_max = 13
276 integer,
private :: monit_id(im_max)
300 namelist / param_land_vars / &
304 land_restart_in_check_coordinates, &
313 real(
rp),
allocatable :: land_property_table(:,:)
317 integer :: i, j, iv, p
321 log_info(
"LAND_vars_setup",*)
'Setup'
324 case (
'NONE',
'OFF' )
479 log_info(
"LAND_vars_setup",*)
'Not found namelist. Default used.'
480 elseif( ierr > 0 )
then
481 log_error(
"LAND_vars_setup",*)
'Not appropriate names in namelist PARAM_LAND_VARS. Check!'
484 log_nml(param_land_vars)
487 log_info(
"LAND_vars_setup",*)
'List of prognostic variables (LAND) '
488 log_info_cont(
'(1x,A,A24,A,A48,A,A12,A)') &
489 ' |',
'VARNAME ',
'|', &
490 'DESCRIPTION ',
'[',
'UNIT ',
']'
492 log_info_cont(
'(1x,A,I3,A,A24,A,A48,A,A12,A)') &
493 'NO.',iv,
'|',var_name(iv),
'|',var_desc(iv),
'[',var_unit(iv),
']'
501 log_info(
"LAND_vars_setup",*)
'Restart input? : NO'
508 log_info(
"LAND_vars_setup",*)
'Restart output? : NO'
514 land_property_table(:,:) = undef
517 land_property_table(:,:) )
533 deallocate( land_property_table )
550 call monitor_reg(
'LND_TEMP',
'land temperature',
'K m3', &
552 dim_type=
'LXY', is_tendency=.false. )
553 call monitor_reg(
'LND_WATER',
'land water',
'kg', &
554 monit_id(im_water), &
555 dim_type=
'LXY', is_tendency=.false. )
558 dim_type=
'LXY', is_tendency=.false. )
559 call monitor_reg(
'LND_MASSFC',
'SFC water flux',
'kg', &
561 dim_type=
'XY', is_tendency=.true. )
562 call monitor_reg(
'LND_ROFF',
'runoff water',
'kg', &
564 dim_type=
'XY', is_tendency=.true. )
565 call monitor_reg(
'LND_MASFLX',
'total mass change',
'kg', &
566 monit_id(im_masflx), &
567 dim_type=
'XY', is_tendency=.true. )
568 call monitor_reg(
'LND_ENGI',
'total internal energy',
'J', &
570 dim_type=
'LXY', is_tendency=.false. )
571 call monitor_reg(
'LND_WTR_ENGI',
'water internal energy',
'J', &
572 monit_id(im_w_engi), &
573 dim_type=
'LXY', is_tendency=.false. )
574 call monitor_reg(
'LND_ICE_ENGI',
'ice internal energy',
'J', &
575 monit_id(im_i_engi), &
576 dim_type=
'LXY', is_tendency=.false. )
577 call monitor_reg(
'LND_ENGSFC_GH',
'SFC ground heat flux',
'J', &
578 monit_id(im_engsfc_gh), &
579 dim_type=
'XY', is_tendency=.true. )
580 call monitor_reg(
'LND_ENGSFC_EI',
'SFC internal energy flux',
'J', &
581 monit_id(im_engsfc_ei), &
582 dim_type=
'XY', is_tendency=.true. )
583 call monitor_reg(
'LND_ROFF_EI',
'internal energy of runoff water',
'J', &
584 monit_id(im_roff_ei), &
585 dim_type=
'XY', is_tendency=.true. )
586 call monitor_reg(
'LND_ENGFLX',
'total internal energy change',
'J', &
587 monit_id(im_engflx), &
588 dim_type=
'XY', is_tendency=.true. )
606 log_info(
"LAND_vars_finalize",*)
'Finalize'
609 case (
'NONE',
'OFF' )
709 file_cartesc_check_coordinates
714 character(len=19) :: timelabel
715 character(len=H_LONG) :: basename
721 log_info(
"LAND_vars_restart_open",*)
'Open restart file (LAND) '
732 log_info(
"LAND_vars_restart_open",*)
'basename: ', trim(basename)
736 if ( land_restart_in_check_coordinates )
then
737 call file_cartesc_check_coordinates( restart_fid, land=.true. )
741 log_info(
"LAND_vars_restart_open",*)
'restart file for land is not specified.'
764 if ( restart_fid /= -1 )
then
766 log_info(
"LAND_vars_restart_read",*)
'Read from restart file (LAND) '
768 call file_cartesc_read( restart_fid, var_name(i_temp),
'LXY', &
770 call file_cartesc_read( restart_fid, var_name(i_water),
'LXY', &
772 call file_cartesc_read( restart_fid, var_name(i_ice),
'LXY', &
774 allow_missing = .true. )
775 call file_cartesc_read( restart_fid, var_name(i_sfc_temp),
'XY', &
777 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_ir_dir),
'XY', &
779 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_ir_dif),
'XY', &
781 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_nir_dir),
'XY', &
783 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_nir_dif),
'XY', &
785 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_vis_dir),
'XY', &
787 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_vis_dif),
'XY', &
791 call file_cartesc_read( restart_fid, var_name(i_snow_sfc_temp),
'XY', &
793 call file_cartesc_read( restart_fid, var_name(i_snow_swe),
'XY', &
795 call file_cartesc_read( restart_fid, var_name(i_snow_depth),
'XY', &
797 call file_cartesc_read( restart_fid, var_name(i_snow_dzero),
'XY', &
799 call file_cartesc_read( restart_fid, var_name(i_snow_nosnowsec),
'XY', &
809 log_error(
"LAND_vars_restart_read",*)
'invalid restart file ID for land.'
834 call file_history_in(
land_temp(:,:,:), var_name(i_temp), var_desc(i_temp), var_unit(i_temp), dim_type=
'LXY', standard_name=var_stdn(i_temp) )
835 call file_history_in(
land_water(:,:,:), var_name(i_water), var_desc(i_water), var_unit(i_water), dim_type=
'LXY', standard_name=var_stdn(i_water) )
836 call file_history_in(
land_ice(:,:,:), var_name(i_ice), var_desc(i_ice), var_unit(i_ice), dim_type=
'LXY', standard_name=var_stdn(i_ice) )
847 call file_history_in( land_waterds(:,:,:), var_name(i_waterds), var_desc(i_waterds), var_unit(i_waterds), dim_type=
'LXY', fill_halo=.true., standard_name=var_stdn(i_waterds) )
850 call file_history_in(
land_sfc_temp(:,:), var_name(i_sfc_temp), &
851 var_desc(i_sfc_temp), var_unit(i_sfc_temp), standard_name=var_stdn(i_sfc_temp) )
853 var_desc(i_sfc_alb_ir_dir), var_unit(i_sfc_alb_ir_dir), standard_name=var_stdn(i_sfc_alb_ir_dir) )
855 var_desc(i_sfc_alb_ir_dif), var_unit(i_sfc_alb_ir_dif), standard_name=var_stdn(i_sfc_alb_ir_dif) )
857 var_desc(i_sfc_alb_nir_dir), var_unit(i_sfc_alb_nir_dir), standard_name=var_stdn(i_sfc_alb_nir_dir) )
859 var_desc(i_sfc_alb_nir_dif), var_unit(i_sfc_alb_nir_dif), standard_name=var_stdn(i_sfc_alb_nir_dif) )
861 var_desc(i_sfc_alb_vis_dir), var_unit(i_sfc_alb_vis_dir), standard_name=var_stdn(i_sfc_alb_vis_dir) )
863 var_desc(i_sfc_alb_vis_dif), var_unit(i_sfc_alb_vis_dif), standard_name=var_stdn(i_sfc_alb_vis_dif) )
866 call file_history_in(
snow_sfc_temp(:,:), var_name(i_snow_sfc_temp), &
867 var_desc(i_snow_sfc_temp), var_unit(i_snow_sfc_temp), standard_name=var_stdn(i_snow_sfc_temp) )
868 call file_history_in(
snow_swe(:,:), var_name(i_snow_swe), &
869 var_desc(i_snow_swe), var_unit(i_snow_swe), standard_name=var_stdn(i_snow_swe) )
870 call file_history_in(
snow_depth(:,:), var_name(i_snow_depth), &
871 var_desc(i_snow_depth), var_unit(i_snow_depth), standard_name=var_stdn(i_snow_depth) )
872 call file_history_in(
snow_dzero(:,:), var_name(i_snow_dzero), &
873 var_desc(i_snow_dzero), var_unit(i_snow_dzero), standard_name=var_stdn(i_snow_dzero) )
874 call file_history_in(
snow_nosnowsec(:,:), var_name(i_snow_nosnowsec), &
875 var_desc(i_snow_nosnowsec), var_unit(i_snow_nosnowsec), standard_name=var_stdn(i_snow_nosnowsec) )
878 call file_history_in(
land_sflx_gh(:,:),
'LAND_SFLX_GH', &
879 'land subsurface heat flux (downward)',
'J/m2/s' )
881 'land surface water mass flux (downward)',
'kg/m2/s' )
883 'land surface internal energy flux (downward)',
'kg/m2/s' )
885 call file_history_in(
land_runoff(:,:),
'LAND_RUNOFF', &
886 'runoff water',
'kg/m2/s' )
888 'internal energy of runoff water',
'J/m2/s' )
890 call file_history_in(
land_sflx_mw(:,:),
'LAND_SFLX_MW', &
891 'land surface w-momentum flux (upward)',
'kg/m2/s' )
892 call file_history_in(
land_sflx_mu(:,:),
'LAND_SFLX_MU', &
893 'land surface u-momentum flux (upward)',
'kg/m2/s' )
894 call file_history_in(
land_sflx_mv(:,:),
'LAND_SFLX_MV', &
895 'land surface v-momentum flux (upward)',
'kg/m2/s' )
896 call file_history_in(
land_sflx_sh(:,:),
'LAND_SFLX_SH', &
897 'land surface sensible heat flux (upward)',
'J/m2/s' )
898 call file_history_in(
land_sflx_lh(:,:),
'LAND_SFLX_LH', &
899 'land surface latent heat flux (upward)',
'J/m2/s' )
902 'land surface water vapor flux (upward)',
'kg/m2/s' )
904 call file_history_in(
land_u10(:,:),
'LAND_U10', &
905 'land 10m x-wind',
'm/s' )
906 call file_history_in(
land_v10(:,:),
'LAND_V10', &
907 'land 10m y-wind',
'm/s' )
908 call file_history_in(
land_t2(:,:),
'LAND_T2', &
909 'land 2m temperature',
'K' )
910 call file_history_in(
land_q2(:,:),
'LAND_Q2', &
911 'land 2m specific humidity',
'kg/kg' )
913 call file_history_in(
land_ustar(:,:),
'LAND_Ustar', &
914 'land friction velocity',
'm/s' )
915 call file_history_in(
land_tstar(:,:),
'LAND_Tstar', &
916 'land temperature scale',
'K' )
917 call file_history_in(
land_qstar(:,:),
'LAND_Qstar', &
918 'land moisture scale',
'kg/kg' )
919 call file_history_in(
land_wstar(:,:),
'LAND_Wstar', &
920 'land convective velocity scale',
'm/s' )
921 call file_history_in(
land_rlmo(:,:),
'LAND_RLmo', &
922 'land inversed Obukhov length',
'1/m' )
925 call file_history_in(
soil_ustar(:,:),
'SOIL_Ustar', &
926 'soil friction velocity',
'm/s' )
927 call file_history_in(
soil_tstar(:,:),
'SOIL_Tstar', &
928 'soil temperature scale',
'K' )
929 call file_history_in(
soil_qstar(:,:),
'SOIL_Qstar', &
930 'soil moisture scale',
'kg/kg' )
931 call file_history_in(
soil_wstar(:,:),
'SOIL_Wstar', &
932 'soil convective velocity scale',
'm/s' )
933 call file_history_in(
soil_rlmo(:,:),
'SOIL_RLmo', &
934 'soil inversed Obukhov length',
'1/m' )
936 call file_history_in(
snow_ustar(:,:),
'SNOW_Ustar', &
937 'snow friction velocity',
'm/s' )
938 call file_history_in(
snow_tstar(:,:),
'SNOW_Tstar', &
939 'snow temperature scale',
'K' )
940 call file_history_in(
snow_qstar(:,:),
'SNOW_Qstar', &
941 'snow moisture scale',
'kg/kg' )
942 call file_history_in(
snow_wstar(:,:),
'SNOW_Wstar', &
943 'snow convective velocity scale',
'm/s' )
944 call file_history_in(
snow_rlmo(:,:),
'SNOW_RLmo', &
945 'snow inversed Obukhov length',
'1/m' )
975 call monitor_put( monit_id(im_temp),
land_temp(:,:,:) )
976 if ( monit_id(im_water) > 0 )
then
987 call monitor_put( monit_id(im_water), work3d(:,:,:) )
989 if ( monit_id(im_ice) > 0 )
then
1000 call monitor_put( monit_id(im_ice), work3d(:,:,:) )
1006 call monitor_put( monit_id(im_roff),
land_runoff(:,:) )
1007 if ( monit_id(im_masflx) > 0 )
then
1016 call monitor_put( monit_id(im_masflx), work2d(:,:) )
1020 if ( monit_id(im_engi) > 0 )
then
1035 call monitor_put( monit_id(im_engi), work3d(:,:,:) )
1037 if ( monit_id(im_w_engi) > 0 )
then
1048 call monitor_put( monit_id(im_w_engi), work3d(:,:,:) )
1050 if ( monit_id(im_i_engi) > 0 )
then
1061 call monitor_put( monit_id(im_i_engi), work3d(:,:,:) )
1065 call monitor_put( monit_id(im_engsfc_gh),
land_sflx_gh(:,:) )
1068 if ( monit_id(im_engflx) > 0 )
then
1078 call monitor_put( monit_id(im_engflx), work2d(:,:) )
1100 logical,
intent(in),
optional :: force
1104 if (
present(force) )
then
1107 check = land_vars_checkrange
1113 var_name(i_temp), __file__, __line__, &
1117 var_name(i_water), __file__, __line__, &
1121 var_name(i_ice), __file__, __line__, &
1125 var_name(i_sfc_temp), __file__, __line__, &
1129 var_name(i_sfc_alb_ir_dir ), __file__, __line__, &
1133 var_name(i_sfc_alb_ir_dif ), __file__, __line__, &
1137 var_name(i_sfc_alb_nir_dir), __file__, __line__, &
1141 var_name(i_sfc_alb_nir_dif), __file__, __line__, &
1145 var_name(i_sfc_alb_vis_dir), __file__, __line__, &
1149 var_name(i_sfc_alb_vis_dif), __file__, __line__, &
1155 var_name(i_snow_sfc_temp), __file__, __line__, &
1158 snow_swe(:,:), 0.0_rp, 1000.0_rp, &
1159 var_name(i_snow_swe), __file__, __line__, &
1163 var_name(i_snow_depth), __file__, __line__, &
1168 var_name(i_snow_dzero), __file__, __line__, &
1174 if (
present(force) )
then
1192 land_ice(:,:,:), var_name(i_ice), &
1232 snow_swe(:,:), var_name(i_snow_swe), &
1256 subroutine land_param_read( &
1259 LAND_PROPERTY_nmax, &
1260 LAND_PROPERTY_table )
1264 integer,
intent(in) :: landuse_pft_nmin
1265 integer,
intent(in) :: landuse_pft_nmax
1267 real(
rp),
intent(out) :: land_property_table(landuse_pft_nmin:landuse_pft_nmax,
land_property_nmax)
1283 namelist / param_land_property / &
1286 namelist / param_land_data / &
1304 character(len=H_LONG) :: fname
1306 integer :: io_fid_land_property
1311 read(
io_fid_conf,nml=param_land_property,iostat=ierr)
1313 log_info(
"LAND_param_read",*)
'Not found namelist. Default used.'
1314 elseif( ierr > 0 )
then
1315 log_error(
"LAND_param_read",*)
'Not appropriate names in namelist PARAM_LAND_PROPERTY. Check!'
1318 log_nml(param_land_property)
1324 open( io_fid_land_property, &
1326 form =
'formatted', &
1330 if ( ierr /= 0 )
then
1331 log_error(
"LAND_param_read",*)
'Failed to open land parameter file! :', trim(fname)
1335 log_info(
"LAND_param_read",*)
'Properties for each plant functional type (PFT)'
1336 log_info_cont(
'(12(1x,A))')
' PFT DESCRIPTION', &
1350 rewind(io_fid_land_property)
1352 do n = landuse_pft_nmin, landuse_pft_nmax
1367 read(io_fid_land_property,nml=param_land_data,iostat=ierr)
1368 if ( ierr < 0 )
then
1370 elseif( ierr > 0 )
then
1371 log_error(
"LAND_param_read",*)
'Not appropriate names in namelist PARAM_LAND_DATA. Check!'
1375 if( z0h < 0.0_rp )
then
1378 if( z0e < 0.0_rp )
then
1388 land_property_table(index,
i_alblw ) = alblw
1389 land_property_table(index,
i_albsw ) = albsw
1390 land_property_table(index,
i_z0m ) = z0m
1391 land_property_table(index,
i_z0h ) = z0h
1392 land_property_table(index,
i_z0e ) = z0e
1394 log_info_cont(
'(1x,A4,I4.3,1x,A32,4(1x,F7.3),2(1x,ES7.1),5(1x,F6.3))') &
1412 close( io_fid_land_property )
1417 end subroutine land_param_read
1424 real(
rp),
intent(in) :: ws(
lia,
lja)
1425 logical,
intent(in) :: critical
1430 integer :: i, j, num
1461 character(len=19) :: timelabel
1462 character(len=H_LONG) :: basename
1470 log_info(
"LAND_vars_restart_create",*)
'Create restart file (LAND) '
1479 log_info(
"LAND_vars_restart_create",*)
'basename: ', trim(basename)
1502 if ( restart_fid /= -1 )
then
1521 if ( restart_fid /= -1 )
then
1523 log_info(
"LAND_vars_restart_close",*)
'Close restart file (LAND) '
1546 if ( restart_fid /= -1 )
then
1548 do i = i_temp, i_ice
1550 var_name(i), var_desc(i), var_unit(i), &
1553 standard_name=var_stdn(i) )
1555 do i = i_sfc_temp, i_sfc_alb_vis_dif
1557 var_name(i), var_desc(i), var_unit(i), &
1560 standard_name=var_stdn(i) )
1564 do i = i_snow_sfc_temp, i_snow_nosnowsec
1566 var_name(i), var_desc(i), var_unit(i), &
1569 standard_name=var_stdn(i) )
1584 file_cartesc_write_var
1590 if ( restart_fid /= -1 )
then
1594 call file_cartesc_write_var( restart_fid, var_id(i_temp), &
1596 var_name(i_temp),
'LXY', fill_halo=.true. )
1597 call file_cartesc_write_var( restart_fid, var_id(i_water), &
1599 var_name(i_water),
'LXY', fill_halo=.true. )
1600 call file_cartesc_write_var( restart_fid, var_id(i_ice), &
1602 var_name(i_ice),
'LXY', fill_halo=.true. )
1603 call file_cartesc_write_var( restart_fid, var_id(i_sfc_temp), &
1605 var_name(i_sfc_temp),
'XY', fill_halo=.true. )
1606 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_ir_dir), &
1608 var_name(i_sfc_alb_ir_dir),
'XY', fill_halo=.true. )
1609 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_ir_dif), &
1611 var_name(i_sfc_alb_ir_dif),
'XY', fill_halo=.true. )
1612 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_nir_dir), &
1614 var_name(i_sfc_alb_nir_dir),
'XY', fill_halo=.true. )
1615 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_nir_dif), &
1617 var_name(i_sfc_alb_nir_dif),
'XY', fill_halo=.true. )
1618 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_vis_dir), &
1620 var_name(i_sfc_alb_vis_dir),
'XY', fill_halo=.true. )
1621 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_vis_dif), &
1623 var_name(i_sfc_alb_vis_dif),
'XY', fill_halo=.true. )
1626 call file_cartesc_write_var( restart_fid, var_id(i_snow_sfc_temp),
snow_sfc_temp(:,:), &
1627 var_name(i_snow_sfc_temp),
'XY', fill_halo=.true. )
1628 call file_cartesc_write_var( restart_fid, var_id(i_snow_swe),
snow_swe(:,:), &
1629 var_name(i_snow_swe),
'XY', fill_halo=.true. )
1630 call file_cartesc_write_var( restart_fid, var_id(i_snow_depth),
snow_depth(:,:), &
1631 var_name(i_snow_depth),
'XY', fill_halo=.true. )
1632 call file_cartesc_write_var( restart_fid, var_id(i_snow_dzero),
snow_dzero(:,:), &
1633 var_name(i_snow_dzero),
'XY', fill_halo=.true. )
1634 call file_cartesc_write_var( restart_fid, var_id(i_snow_nosnowsec),
snow_nosnowsec(:,:), &
1635 var_name(i_snow_nosnowsec),
'XY', fill_halo=.true. )
character(len=h_long), public land_restart_out_basename
Basename of the output file.
integer, parameter, public n_rad_dir
real(rp), dimension(:,:,:), allocatable, public land_temp
temperature of each soil layer [K]
subroutine, public prc_abort
Abort Process.
integer, parameter, public i_r_direct
real(rp), dimension(:,:), allocatable, public atmos_sfc_pres
real(rp), dimension(:,:), allocatable, public atmos_temp
real(rp), dimension(:,:), allocatable, public snow_sfc_temp
snow surface temperature [K]
real(rp), dimension(:,:), allocatable, public atmos_qv
integer, parameter, public i_stomataresist
real(rp), dimension(:,:), allocatable, public land_sflx_mu
land surface u-momentum flux [kg/m2/s]
subroutine, public file_cartesc_enddef(fid)
Exit netCDF file define mode.
real(rp), dimension(:,:), allocatable, target, public land_tstar
temperature scale [K]
subroutine, public file_cartesc_def_var(fid, varname, desc, unit, dim_type, datatype, vid, standard_name, timeintv, nsteps, cell_measures)
Define a variable to file.
real(rp), dimension(:,:,:,:), allocatable, public land_sfc_albedo
land surface albedo (direct/diffuse,IR/near-IR/VIS) (0-1)
integer, parameter, public i_r_diffuse
real(rp), dimension(:,:), allocatable, public land_sflx_engi
land surface internal energy flux [J/m2/s]
subroutine, public land_vars_history
History output set for land variables.
integer, parameter, public i_alblw
integer, parameter, public i_albsw
real(rp), dimension(:,:), allocatable, public atmos_w
real(rp), dimension(:,:), pointer, public soil_ustar
real(rp), dimension(:,:,:), allocatable, public land_water_t
tendency of LAND_WATER
real(rp), dimension(:,:,:), allocatable, public land_water
moisture of each soil layer [m3/m3]
real(rp), dimension(:,:), allocatable, public land_runoff
runoff of the land water [kg/m2/s]
integer, parameter, public i_r_ir
real(rp), dimension(:,:), allocatable, public atmos_u
subroutine, public prof_rapstart(rapname_base, level, disable_barrier)
Start raptime.
subroutine, public land_vars_restart_def_var
Define land variables in restart file.
module atmosphere / hydrometeor
character(len=h_mid), public land_restart_out_title
Title of the output file.
logical, public land_restart_in_aggregate
Switch to use aggregate file.
real(rp), dimension(:,:), allocatable, public land_sflx_mv
land surface v-momentum flux [kg/m2/s]
integer, parameter, public i_waterdiff
real(rp), dimension(:,:), allocatable, public atmos_cossza
real(rp), public land_grid_cartesc_real_totarea
total area
integer, parameter, public i_z0m
real(rp), dimension(:,:,:,:), allocatable, public atmos_sflx_rad_dn
real(rp), dimension(:,:,:), allocatable, public land_ice_t
tendency of LAND_ICE
integer function, public io_get_available_fid()
search & get available file ID
real(rp), dimension(:,:), allocatable, public snow_wstar
logical, dimension(:,:), allocatable, public landuse_exists_land
land calculation flag
real(rp), dimension(:,:), allocatable, public atmos_sflx_water
real(rp), dimension(:,:), pointer, public soil_rlmo
character(len=h_short), public snow_type
real(rp), dimension(:,:), allocatable, target, public land_rlmo
inversed Obukhov length [1/m]
subroutine, public land_vars_monitor
monitor output
real(rp), public land_grid_cartesc_real_totvol
total volume
real(rp), dimension(:,:), allocatable, public snow_tstar
real(rp), dimension(:,:), pointer, public soil_tstar
module land / grid / cartesianC / index
real(rp), dimension(:,:), allocatable, public land_sflx_gh
land surface heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public land_sflx_mw
land surface w-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public atmos_pres
subroutine, public land_vars_restart_write
Write land variables to restart file.
subroutine, public land_vars_restart_close
Close restart file.
integer, parameter, public rp
logical, public land_restart_out_postfix_timelabel
Add timelabel to the basename of output file?
subroutine, public io_get_fname(outstr, instr, rank, ext, len)
generate process specific filename
integer, parameter, public i_r_nir
real(rp), dimension(:,:), pointer, public soil_wstar
real(rp), dimension(:,:), allocatable, public land_sflx_sh
land surface sensible heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, target, public land_wstar
convective velocity scale [m/s]
real(rp), dimension(:,:), allocatable, target, public land_ustar
friction velocity [m/s]
subroutine, public check(current_line, v)
Undefined value checker.
character(len=h_long), public land_property_in_filename
the file of land parameter table
real(rp), dimension(:,:,:), allocatable, public land_property
land surface property
real(rp), dimension(:,:,:), allocatable, public land_temp_t
tendency of LAND_TEMP
real(rp), dimension(:,:), allocatable, public snow_ustar
module land / grid / cartesianC / real
integer, dimension(:,:,:), allocatable, public landuse_index_pft
index of PFT for each mosaic
real(rp), dimension(:,:), allocatable, target, public land_qstar
moisture scale [kg/kg]
subroutine, public file_cartesc_close(fid)
Close a netCDF file.
integer, public landuse_pft_nmax
number of plant functional type(PFT)
real(rp), dimension(:,:), allocatable, public land_sflx_water
land surface water flux [kg/m2/s]
logical, public land_restart_out_aggregate
Switch to use aggregate file.
subroutine, public land_vars_restart_open
Open land restart file for read.
integer, parameter, public land_property_nmax
real(rp), dimension(:,:), allocatable, public snow_nosnowsec
sec while no snow [s]
integer, parameter, public i_thermalcond
subroutine, public monitor_reg(name, desc, unit, itemid, ndims, dim_type, is_tendency)
Search existing item, or matching check between requested and registered item.
logical, public land_restart_output
Output restart file?
subroutine, public land_vars_restart_enddef
Exit netCDF define mode.
real(rp), dimension(:,:), allocatable, public land_runoff_engi
internal energy of the runoff [J/m2/s]
integer, parameter, public i_heatcapacity
character(len=h_long), public land_restart_in_basename
Basename of the input file.
character(len=h_short), public land_restart_out_dtype
REAL4 or REAL8.
real(rp), dimension(:,:), pointer, public soil_qstar
real(rp), dimension(:,:), allocatable, public snow_swe
snow water equivalent [kg/m2]
integer, parameter, public i_waterlimit
integer, parameter, public i_z0h
real(rp), dimension(:,:), allocatable, public land_q2
land surface water vapor at 2m [kg/kg]
integer, parameter, public i_z0e
real(rp) function, dimension(lia, lja), public convert_ws2vwc(WS, critical)
conversion from water saturation [fraction] to volumetric water content [m3/m3]
subroutine, public land_vars_check(force)
Budget monitor for land.
real(rp), dimension(:,:), allocatable, public atmos_dens
real(rp), parameter, public const_dwatr
density of water [kg/m3]
real(rp), dimension(:,:,:), allocatable, public land_grid_cartesc_real_vol
volume of grid cell
real(rp), dimension(:,:), allocatable, public land_sfc_temp
land surface skin temperature [K]
real(rp), dimension(:,:), allocatable, public snow_qstar
subroutine, public land_vars_setup
Setup.
subroutine, public file_cartesc_create(basename, title, datatype, fid, date, subsec, haszcoord, append, aggregate, single)
Create/open a netCDF file.
logical, public statistics_checktotal
calc&report variable totals to logfile?
subroutine, public file_cartesc_flush(fid)
Flush all pending requests to a netCDF file (PnetCDF only)
subroutine, public time_gettimelabel(timelabel)
generate time label
module coupler / surface-atmospehre
real(rp), dimension(:,:), allocatable, public snow_depth
snow depth [m]
real(rp), dimension(:,:), allocatable, public land_u10
land surface velocity u at 10m [m/s]
integer, parameter, public i_r_vis
logical, public snow_flag
real(rp), dimension(:,:), allocatable, public atmos_sfc_dens
real(rp), public lhf
latent heat of fusion for use [J/kg]
logical function, public file_get_aggregate(fid)
real(rp), dimension(:,:), allocatable, public land_sflx_lh
land surface latent heat flux [J/m2/s]
subroutine, public file_cartesc_open(basename, fid, single, aggregate)
open a netCDF file for read
real(rp), dimension(:,:), allocatable, public land_v10
land surface velocity v at 10m [m/s]
subroutine, public prof_rapend(rapname_base, level, disable_barrier)
Save raptime.
subroutine, public land_vars_finalize
Finalize.
character(len=h_mid), public description
subroutine, public land_vars_restart_create
Create land restart file.
real(rp), parameter, public const_dice
density of ice [kg/m3]
integer, parameter, public n_rad_rgn
subroutine, public land_vars_restart_read
Read land restart.
real(rp), dimension(:,:,:), allocatable, public land_ice
ice of each soil layer [m3/m3]
real(rp), dimension(:,:), allocatable, public land_t2
land surface temperature at 2m [K]
real(rp), public const_undef
real(rp), dimension(:,:), allocatable, public atmos_sflx_engi
real(rp), dimension(:,:), allocatable, public snow_rlmo
real(rp), dimension(:,:), allocatable, public atmos_pbl
integer, parameter, public i_watercritical
integer, public io_fid_conf
Config file ID.
real(rp), public cv_water
CV for water [J/kg/K].
real(rp), dimension(:,:), allocatable, public snow_dzero
snow depth at melting point [m]
real(rp), dimension(:,:), allocatable, public atmos_v
logical, public land_restart_in_postfix_timelabel
Add timelabel to the basename of input file?
real(rp), dimension(:,:,:), allocatable, public land_sflx_qtrc
land surface tracer flux [kg/m2/s]
real(rp), public cv_ice
CV for ice [J/kg/K].
real(rp), dimension(:,:), allocatable, public land_grid_cartesc_real_area
area of grid cell
integer, parameter, public landuse_pft_nmin
minimum number of PFT type