# ICON
#
# ---------------------------------------------------------------
# Copyright (C) 2004-2026, DWD, MPI-M, DKRZ, KIT, ETH, MeteoSwiss
# Contact information: icon-model.org
# See AUTHORS.TXT for a list of authors
# See LICENSES/ for license information
# SPDX-License-Identifier: BSD-3-Clause
# ---------------------------------------------------------------

RM = rm -f
RM_R = $(RM) -r
MV = mv

MKEXP = mkexp
MKEXP_FLAGS = EXP_ID=$${EXP_TYPE} EXP_TYPE=$$EXP_TYPE ENVIRONMENT=$$ENVIRONMENT TOP_SRCDIR= MODEL_ROOT=. DATA_ROOT=. WORK_ROOT=. MODEL_SUBDIR= EXPERIMENTS_SUBDIR=$(CHECK_TARGET)/$$ENVIRONMENT jobs.run_dummy...extends=run jobs.run_dummy.namelists.NAMELIST_lnd.jsb_hydro_nml...remove=snow_depth_max
MKEXP_ENVIRONMENTS = DEFAULT levante
MKEXP_KINDS = esmControl piControl
MKEXP_QUALITIES = R2B3_R2B4 R2B4_R2B6
MKEXP_CONFIG = examples/esm_R2B3_R2B4.config


DIFF = diff -I '^ *\# *Generated by ' -I '^ *\# *\$$Id: '
DIFF_R = $(DIFF) $(DIFF_FLAGS) -r -x .svn -x '*.dump' -x update

ALL_TARGET = reference_experiments
CHECK_TARGET = experiments


all: all.make

clean: all.clean check.clean

diff:
	$(DIFF_R) $(ALL_TARGET) $(CHECK_TARGET)

check: check.make diff
	@echo Info: passed all tests

install doc:


all.make: check.make update

update: $(CHECK_TARGET) all.clean
	$(MV) $(CHECK_TARGET) $(ALL_TARGET)

all.clean:
	$(RM_R) $(ALL_TARGET)


check.make: check.clean
	@ \
	for ENVIRONMENT in $(MKEXP_ENVIRONMENTS); do \
	  for EXP_KIND in $(MKEXP_KINDS); do \
	    for EXP_QUALITY in $(MKEXP_QUALITIES); do \
	      EXP_TYPE="$$EXP_KIND-$$EXP_QUALITY"; \
	      if [ -f standard_experiments/$$EXP_TYPE.config ]; then \
	        echo $(MKEXP) $(MKEXP_CONFIG) \
	          EXP_ID=$$EXP_TYPE ENVIRONMENT=$$ENVIRONMENT; \
	        $(MKEXP) $(MKEXP_CONFIG) $(MKEXP_FLAGS); \
	      fi; \
	    done; \
	  done; \
	done

check.clean:
	$(RM_R) $(CHECK_TARGET)
