source: CONFIG/UNIFORM/v6/IPSLCM6/GENERAL/DRIVER/oasis.driver @ 2267

Last change on this file since 2267 was 2267, checked in by omamce, 10 years ago

O.M.

Add management of coupling frequency. Default is 86400s.
LMDZ is not managed up to now

File size: 2.9 KB
RevLine 
[396]1#!/bin/ksh
2#-----------------------------------
3CPL_Initialize ()
4{
5    IGCM_debug_PushStack "CPL_Initialize"
6 
7    echo INITIALIZE CPL !!!
8
[1785]9# Local function to find parameters in LMDZ .def files
10    lmdzgrep () {
11        grep $1 $2 |grep -v "#" | awk "-F=" '{print $2}'
12    }
13
[2109]14    #RESOL_CPL=$( echo $RESOL | awk "-F-" '{print $1}' )
15    RESOL_CPL=${RESOL_OCE}x${RESOL_ATM}
16    IGCM_debug_Print 1 "RESOL_CPL      : ${RESOL_CPL}"
[673]17
[814]18    CPL_OkDay="n"
19    CPL_OkMonth="n"
[808]20
21    for CPL_Frequency in ${config_CPL_WriteFrequency} ; do
22        case ${CPL_Frequency} in
23            *D|*d) CPL_OkDay="y"   ;;
24            *M)    CPL_OkMonth="y" ;;
25        esac
26    done
27
[396]28    IGCM_debug_PopStack "CPL_Initialize"
[808]29
[396]30}
31
32#-----------------------------------
33CPL_Update ()
34{
35    IGCM_debug_PushStack "CPL_Update"
36
[653]37    ############ Update Time and Counters ##############
38    ##-- Calcul de la duree du job (en secondes)
39    (( D_JOB_SEC = 3600 * 24 * PeriodLengthInDays ))
[396]40
[653]41    ############ Update Other Parameters  ##############
[902]42    ## Read Output_mode option in oasis.card --> Put "y" to have coupling variables in ouptut files
[814]43    CPL_OutputMode="n"
[902]44    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/COMP/oasis.card UserChoices OutputMode
45    eval CPL_OutputMode=\${oasis_UserChoices_OutputMode} > /dev/null 2>&1
[808]46    echo CPL_OutputMode = ${CPL_OutputMode}
47    CPL_OutputVar='EXPORTED'
48    if [ ${CPL_OutputMode} = y ] ; then
49        CPL_OutputVar='EXPOUT'
[653]50    fi
[396]51
[2126]52    FreqCoupling=${oasis_UserChoices_FreqCoupling:-86400}
[2117]53
[1548]54    ## Calculate lag for transfer of fields from atmosphere -> ocean.
[2117]55    ## LagAtm="1day in sec"/day_step * iphysiq/nsplit_phys
[1548]56    ## First get day_step, iphyisq and nsplit_phys from LMDZ parameter files
[2117]57    day_step=$(    lmdzgrep day_step gcm.def )
58    iphysiq=$(     lmdzgrep iphysiq gcm.def )
[1548]59    nsplit_phys=$( lmdzgrep nsplit_phys physiq.def )
60
[2117]61    (( LagAtm = 86400 / day_step * iphysiq / nsplit_phys ))
[1548]62
[2267]63    (( LagOce = 86400 / ORCA_NPDT_JOUR ))
[2117]64
[653]65    ############ Update Parameter Files   ##############
[2198]66    sed -e "s/<total_time>/${D_JOB_SEC}/" \
[808]67        -e "s/<output_mode>/${CPL_OutputVar}/g" \
[2117]68        -e "s/<freq_coupling>/${FreqCoupling}/g" \
69        -e "s/<lag_atm>/${LagAtm}/g" \
70        -e "s/<lag_oce>/${LagOce}/g" \
[396]71        namcouple > namcouple.tmp
[808]72    IGCM_sys_Mv namcouple.tmp namcouple
[2206]73    # For IPSLCM6 and use of OASIS-MCT
74    if [ ${CumulPeriod} -eq 1 ]; then
75        ncrename -v OIceFrac,OIceFrc sstoc.nc > /dev/null 2>&1
76    fi
[396]77
78    IGCM_debug_PopStack "CPL_Update"
79}
80
81#-----------------------------------
82CPL_Finalize ()
83{
84    IGCM_debug_PushStack "CPL_Finalize"
85
[808]86    if [ "${CPL_OutputMode}" = "y" ] ; then
87
88        [[ ${CPL_OkDay}   = "y" ]] && date >TEMPO_1D_cpl_atm.nc
89        [[ ${CPL_OkMonth} = "y" ]] && date >TEMPO_1M_cpl_atm.nc
90        [[ ${CPL_OkDay}   = "y" ]] && date >TEMPO_1D_cpl_oce.nc
91        [[ ${CPL_OkMonth} = "y" ]] && date >TEMPO_1M_cpl_oce.nc
92
93    fi
94
[2267]95    /ccc/scratch/cont003/dsm/p86caub/LUCIA/lucia
96
[396]97    echo FINALIZE CPL !!!
98
99    IGCM_debug_PopStack "CPL_Finalize"
100}
Note: See TracBrowser for help on using the repository browser.