New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
user/flavoni/libIGCM/iom_put – NEMO
wiki:user/flavoni/libIGCM/iom_put

Version 24 (modified by flavoni, 14 years ago) (diff)

--

Integrating IOM_PUT


Integrating IOM_PUT


Working tests:

  1. test with iom_put (compiled with key_iomput):

work/cont003/flavoni/LIBIGCM_NEMO/LIKE-COUPLED/test_iom_lib14_rev1661_WR/modipsl/config/ORCA2_LIM/IGCM_lim14io

  1. same test but without iom_put (in opa9.card io_xml=n):

work/cont003/flavoni/LIBIGCM_NEMO/LIKE-COUPLED/test_lib14_rev1661_WR/modipsl/config/ORCA2_LIM/IGCM_lim14_io

today 30/10/2009 if you dowload ./model NEMO_IGCM you can't use iom_put.

If you want activate iom_put

If you want to activate iom_put you have to:

  • download model NEMO_IGCM:
    cd modipsl/util 
    ./model NEMO_IGCM 
    
  • comment lines in dommsk:
           ij0 = 115   ;   ij1 = 115 
            ii0 = 145   ;   ii1 = 146   ;   fmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) = 4.0e0 
            ij0 = 116   ;   ij1 = 116 
            ii0 = 145   ;   ii1 = 146   ;   fmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) = 4.0e0 
    
  • put in namelist
     rn_bfri1    =    0.e-4 
    
  • you can copy modified files (opa9.driver, opa9.card, lim2.card) that you find in:
    brodie: /workdir/rech/eee/reee605/LIBIGCM_NEMO/LIKE-COUPLED/test_claire/  
    mercure: /work/cont003/flavoni/LIBIGCM_NEMO/LIKE-COUPLED/test_iom_lib14_rev1661_WR/modipsl/config/ORCA2_LIM/IGCM_lim14_io/COMP  
    
  • Add key in modipsl/config/ORCA2_LIM/scripts/BB_make.ldef
    key_iomput
    
  • Do an ins_make :
    ./modipsl/util/ins_make
    

  • Go in ORCA2_LIM directory :
    cd modipsl/config/ORCA2_LIM
    
  • Compile :
    gmake
    
  • Change in opa9.card:
    io_xml='''y'''  
    

Modifications done till 30/10/2009 to prepare files for using iom_put:

  1. Added in modispl/util/mod.def in NEMO_IGCM:

#-H- NEMO_IGCM NEMO trunk revision 1661
(revision without bottom friction bug) #-H- NEMO_IGCM libIGCM tag libIGCM_v1_4
#-H- NEMO_IGCM NEMO_XMLIO_SERVER svn r37
#-C- NEMO_IGCM XMLF90 HEAD 12 XMLF90 modeles
#-C- NEMO_IGCM XMLIO_SERVER/trunk 37 12 XMLIO_SERVER modeles
#-C- NEMO_IGCM trunk/EXTERNAL/XMLF90 HEAD 7 XMLF90/external modeles
#-C- NEMO_IGCM trunk/EXTERNAL/XMLIO_SERVER HEAD 7 XMLIO_SERVER/external modeles

in lim2.card

  1. changed PREFIX name for output .nc file
    [OutputFiles?]
    List= (${PREFIX_NEMO}_icemod.nc, ${R_OUT_ICE_NWRITE}/${PREFIX}_${WF1}_icemod.nc, Post_1M_icemod)

(in lim2.driver ${PREFIX_NEMO} is:
${PREFIX_NEMO}=${PREFIX}_{WF1} if we use iomput
${PREFIX_NEMO}=${PREFIX_NWRITE}_${DATE_OPA} if not )

  1. removed deptht (for monitoring, no good to do ncrcat in 3 dimensions for ice)
    [Post_1M_icemod]
    GatherWithInternal? = (nav_lon, nav_lat, time_counter)
  1. removed ileadfra for the moment
    TimeSeriesVars? = (iicethic, isnowthi, iicevelu, iicevelv)

NOTE: for this moment ileadfra removed because in iomdef.xml there are new variables' names (like IPPC requested) and ileadfra there is no more in output from nemo's code, waiting for that nemo put in output 1-soicecov (=ileadfra)

in opa9.card

  1. changed PREFIX name for output .nc file
    [OutputFiles?]
    List= (${PREFIX_NEMO}'_grid_T.nc, ${R_OUT_OCE_NWRITE}/${PREFIX}_${WF1}_grid_T.nc, Post_1M_grid_T),\
    (${PREFIX_NEMO}_grid_U.nc, ${R_OUT_OCE_NWRITE}/${PREFIX}_${WF1}_grid_U.nc, Post_1M_grid_U),\ [BR]] (${PREFIX_NEMO}_grid_V.nc, ${R_OUT_OCE_NWRITE}/${PREFIX}_${WF1}_grid_V.nc, Post_1M_grid_V),\
    (${PREFIX_NEMO}_grid_W.nc, ${R_OUT_OCE_NWRITE}/${PREFIX}_${WF1}_grid_W.nc, Post_1M_grid_W),\

(in opa9.driver ${PREFIX_NEMO} is:
${PREFIX_NEMO}=${PREFIX}_{WF1} if we use iomput
${PREFIX_NEMO}=${PREFIX_NWRITE}_${DATE_OPA} if not )

in opa9.driver

  1. possibility to use io_server (but not testing now)
    ##--Variables used for XMLIO_SERVER configuration file
    # using_server: .TRUE.(.FALSE.) to use(bypass) the io_server
    PAT_SERVER=$( supergrep using_server ${SUBMIT_DIR}/PARAM/xmlio_server.def )
  1. Added output_frequency in days, if not xml file is not correct
    (( output_frequency_oce = $WriteFrequencyInDays? * 86400 ))
    (( output_frequency_ice = $WriteFrequencyInDays? * 86400 ))
  1. replaced output filenames in xml file
    sed -e "s/<file_name_grid_T>/ \"${PREFIX_NEMO}_grid_T.nc\"/" \
    -e "s/<file_name_grid_U>/ \"${PREFIX_NEMO}_grid_U.nc\"/" \
    -e "s/<file_name_grid_V>/ \"${PREFIX_NEMO}_grid_V.nc\"/" \
    -e "s/<file_name_grid_W>/ \"${PREFIX_NEMO}_grid_W.nc\"/" \
    -e "s/<file_name_icemod>/ \"${PREFIX_NEMO}_icemod.nc\"/" \
    -e "s/<output_frequency_oce>/ \"${output_frequency_oce}\"/g" \
    -e "s/<output_frequency_ice>/ \"${output_frequency_ice}\"/g" \
    iodef.xml > iodef.xml.tmp

IGCM_sys_Mv iodef.xml.tmp iodef.xml

  1. determine number of day(s) in WriteFrequency? :
    case ${config_UserChoices_OCE_WriteFrquency} in

1Y|1y)

(( WriteFrequencyInDays? = $( IGCM_date_DaysInYear $year ) )) ;;

1M|1m)

(( WriteFrequencyInDays? = $( IGCM_date_DaysInMonth $year $month ) )) ;;

5D|5d)

(( WriteFrequencyInDays?=5 )) ;;

1D|1d)

(( WriteFrequencyInDays?=1 )) ;;

*)

IGCM_debug_Exit "IGCM_config_OCE_WriteFrquency " ${config_UserChoices_OCE_WriteFrquency} " invalid write frquency length : choose in 1Y, 1M, 5D, 1D." IGCM_debug_Verif_Exit ;;

esac

At this point: open problems:

  1. Don't have ATLAS for "ice cover": because new variable is named soicecov and in atlas is written ileadfra
  2. to do: calcul for 2 frequencies (waiting for a new iodef.xml)