<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 DKRZ CMIP6 data submission form for ESGF publication
Overview
You want to store and publish CMIP6 data at DKRZ via ESGF ? This form will provide some background information and guide you through the process. 
<br> To organize the data ingest we need some specific information with respect to the CMIP6 data collection you want to publish (e.g. concerning data structure, content and quality).  The form has to be filled before the ESGF data ingest and publication process can be started. 
<br> In case you have questions please contact esgf-publication@dkrz.de 
Preconditions for your data submission
You need to be aware of a set of technical requirements which have to be addressed before CMIP6 data submission to DKRZ and ESGF data publication are possible. They are collected at the  official WCRP CMP Phase6 (CMIP6) site in the Guide to CMP6 Participation. In the following a short summary of key prerequisites is given
Step1:  Step 1
Step2:  CMOR compliance
please provide information on the software and tools you used to make sure your data is CMIP6 CMOR3 compliant
Step3:  Documentation availability
please provide information with respect to availability of es-doc model documentation 
in case this form addresses a new version replacing older versions
Step4:  Uniqueness of tracking_id and creation_date
All your file have unique tracking_ids assigned in the structure required by CMIP6 ? 
In case any of your files is replacing a file already published, it must not have the same tracking_id nor the same creation_date as the file it replaces. 
Did you make sure that that this is true ? 
Reply 'yes'; otherwise adapt your files, no ESGF publication is possible !
Step5:  Generic content characterization based on CMIP6 directory structure
Please name the respective directory names characterizing your submission
Step6:  Provide specific additional information for this submission
variables, grid, calendar, ... 
example file name
.. what do we need ..?
Step7:  Exclude variable list
In each CMIP6 file there may be only one variable which shall be published and searchable at the ESGF portal (target variable). In order to facilitate publication, all non-target variables are included in a list used by the publisher to avoid publication. A list of known non-target variables is [time, time_bnds, lon, lat, rlon ,rlat ,x ,y ,z ,height, plev, Lambert_Conformal, rotated_pole]. Please enter other variables into the left field if applicable (e.g. grid description variables), otherwise write 'N/A'.
Step8:  CMIP6 terms of use
please explicitly note, you are ok with the CMIP6 terms of use
Step9:  Step 2
Step10:  Example file name
Please provide an example file name of a file in your data collection, 
this name will be used to derive the other
Step11:  Step 3
Step12:  Step 4
Step13:  Step 5
<ASSISTANT_TASK:>
Python Code:
# Evaluate this cell to identifiy your form 
from dkrz_forms import form_widgets, form_handler, checks
form_infos = form_widgets.show_selection()
# Evaluate this cell to generate your personal form instance
form_info = form_infos[form_widgets.FORMS.value]
sf = form_handler.init_form(form_info)
form = sf.sub.entity_out.report
Explanation: DKRZ CMIP6 data submission form for ESGF publication
Overview
You want to store and publish CMIP6 data at DKRZ via ESGF ? This form will provide some background information and guide you through the process. 
<br> To organize the data ingest we need some specific information with respect to the CMIP6 data collection you want to publish (e.g. concerning data structure, content and quality).  The form has to be filled before the ESGF data ingest and publication process can be started. 
<br> In case you have questions please contact esgf-publication@dkrz.de 
Preconditions for your data submission
You need to be aware of a set of technical requirements which have to be addressed before CMIP6 data submission to DKRZ and ESGF data publication are possible. They are collected at the  official WCRP CMP Phase6 (CMIP6) site in the Guide to CMP6 Participation. In the following a short summary of key prerequisites is given:
Your institution as well as your model has to be registered on the WCRP-CMIP github site
Contact and citation information has to be registered in the citation GUI documentation of GUI
Your data conforms to the CMIP6 specifications for file names, directory structures and CMIP6 Data Reference Syntax (DRS) 
Directory structure:
 
<pre><code>
    &lt;mip_era&gt;/&lt;activity_id&gt;/&lt;institution_id&gt;/&lt;source_id&gt;/
        &lt;experiment_id&gt;/&lt;member_id&gt;/&lt;table_id&gt;/&lt;variable_id&gt;/&lt;grid_label&gt;/<version&gt;
   </code>
   </pre>
File naming convention: 
 
<pre><code>   &lt;variable_id&gt;_&lt;table_id&gt;_&lt;source_id&gt;_&lt;experiment_id&gt;&lt;member_id&gt;
            _&lt;grid_label[_&lt;time_range&gt;].nc
   </code>
   </pre>
Please make sure your data is quality checked before submission to a data center. Two tools for checking are recommended:
CMOR/PREPARE checker (minimal check): 
github: https://github.com/PCMDI/cmor
documentation: https://cmor.llnl.gov/mydoc_cmip6_validator/
DKRZ_QA checker (incluces CMOR/PREPARE checker optionally):
github: https://github.com/IS-ENES-Data/QA-DKRZ
documentation: http://qa-dkrz.readthedocs.io/en/latest/
Start submission procedure
The submission is based on this interactive document consisting of "cells" you can modify and then evaluate.<br>
Evaluation of cells is done by selecting the cell and pressing the keys "Shift" + "Enter".
Please evaluate the following cell to identifiy your form (associate your name and email to this form). 
Attention: the name selected must match the name at the opt of this page !
End of explanation
form.submission_type = "init"  # example: sf.submission_type = "initial_version"
Explanation: Step 1: provide generic data submission related information
Type of submission
please specify the type of this data submission:
- "initial_version" for first submission of data
- "new _version" for a re-submission of previousliy submitted data
- "retract" for the request to retract previously submitted data
End of explanation
form.cmor = '..'   ##  options: 'CMOR', 'CDO-CMOR', etc.
form.cmor_compliance_checks = '..'   ## please name the tool you used to check your files with respect to CMIP6 compliance
                                     ## 'PREPARE' for the CMOR PREPARE checker and "DKRZ" for the DKRZ tool. 
Explanation: CMOR compliance
please provide information on the software and tools you used to make sure your data is CMIP6 CMOR3 compliant
End of explanation
form.es_doc = " .. "     # 'yes' related esdoc model information is/will be available, 'no' otherwise
form.errata = " .. "     # 'yes' if errata information was provided based on the CMIP6 errata mechanism
# fill the following info only in case this form refers to new versions of already published ESGF data
form.errata_id = ".."         # the errata id provided by the CMIP6 errata mechanism 
form.errata_comment = "..."   # any additional information on the reason of this new version, not yet provided 
Explanation: Documentation availability
please provide information with respect to availability of es-doc model documentation 
in case this form addresses a new version replacing older versions: provide info on the availability of errata information especially refer to errata information provided using the CMIP6 errata web frontend
End of explanation
form.uniqueness_of_tracking_id = "..." # example: form.uniqueness_of_tracking_id = "yes"
Explanation: Uniqueness of tracking_id and creation_date
All your file have unique tracking_ids assigned in the structure required by CMIP6 ? 
In case any of your files is replacing a file already published, it must not have the same tracking_id nor the same creation_date as the file it replaces. 
Did you make sure that that this is true ? 
Reply 'yes'; otherwise adapt your files, no ESGF publication is possible !
End of explanation
form.data_dir_1 = " ... "  
# uncomment for additional entries ... 
# form.data_dir_2 = " ... " 
# form.data_dir_3 = " ... "
# ...
Explanation: Generic content characterization based on CMIP6 directory structure
Please name the respective directory names characterizing your submission:
- all files within the specified directory pattern are subject to ESGF publication 
CMIP6 directory structure:
 
<pre><code>
    &lt;CMIP6&gt;/&lt;activity_id&gt;/&lt;institution_id&gt;/&lt;source_id&gt;/
        &lt;experiment_id&gt;/&lt;member_id&gt;/&lt;table_id&gt;/&lt;variable_id&gt;/
        &lt;grid_label&gt;/&lt;version&gt; </code> </pre>
e.g. 
      form_data_dir_1 = '/CMIP6/CMIP/MPI-M/MPIESM-1-2-HR/
      piControl/r1i2p1f1//3hr//* '
addresses all 3hr data in the specified experiment/member
End of explanation
form.time_period = "..." # example: sf.time_period = "197901-201412" 
                       # ["time_period_a","time_period_b"] in case of multiple values
    
form.grid = ".."    
Explanation: Provide specific additional information for this submission
variables, grid, calendar, ... 
example file name
.. what do we need ..?
End of explanation
form.exclude_variables_list = "..." # example: sf.exclude_variables_list=["bnds", "vertices"]
Explanation: Exclude variable list
In each CMIP6 file there may be only one variable which shall be published and searchable at the ESGF portal (target variable). In order to facilitate publication, all non-target variables are included in a list used by the publisher to avoid publication. A list of known non-target variables is [time, time_bnds, lon, lat, rlon ,rlat ,x ,y ,z ,height, plev, Lambert_Conformal, rotated_pole]. Please enter other variables into the left field if applicable (e.g. grid description variables), otherwise write 'N/A'.
End of explanation
form.terms_of_use = "..." #   has to be "ok"
Explanation: CMIP6 terms of use
please explicitly note, you are ok with the CMIP6 terms of use
End of explanation
form.data_path = "..."        # example: sf.data_path = "mistral.dkrz.de:/mnt/lustre01/work/bm0021/k204016/CORDEX/archive/"
form.data_information = "..." # ...any info where data can be accessed and transfered to the data center ... "
Explanation: Step 2: provide information on the data handover mechanism
the following information (and other information needed for data transport and data publication)
End of explanation
form.example_file_name = "..." # example: sf.example_file_name = "tas_AFR-44_MPI-M-MPI-ESM-LR_rcp26_r1i1p1_MPI-CSC-REMO2009_v1_mon_yyyymm-yyyymm.nc"
Explanation: Example file name
Please provide an example file name of a file in your data collection, 
this name will be used to derive the other
End of explanation
# simple consistency check report for your submission form - not completed
report = checks.check_report(sf,"sub")
checks.display_report(report)
Explanation: Step 3: Check your submission before submission
End of explanation
form_handler.save_form(sf,"any comment you want")  # add a comment 
# evaluate this cell if you want a reference (provided by email)
# (only available if you access this form via the DKRZ hosting service)
form_handler.email_form_info(sf)
Explanation: Step 4: Save and review your form
your form will be stored (the form name consists of your last name plut your keyword)
End of explanation
#form_handler.email_form_info(sf)
form_handler.form_submission(sf)
Explanation: Step 5: officially submit your form
the form will be submitted to the DKRZ team to process
you also receive a confirmation email with a reference to your online form for future modifications
End of explanation
<END_TASK>