- Timestamp:
- 12/22/22 16:17:21 (16 months ago)
- Location:
- CONFIG/UNIFORM/v7/IPSLCM7
- Files:
-
- 5 added
- 2 deleted
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
CONFIG/UNIFORM/v7/IPSLCM7/EXPERIMENTS/IPSLCM/piControl_TEST/COMP/dynamico.card
r5479 r6296 40 40 41 41 [OutputText] 42 List= (run_dynamico.def, earth_const.def, iodef.xml, context_dynamico.xml, context_input_dynamico.xml, field_def_dynamico.xml, file_def_dynamico.xml, out_icosa_lmdz.exe.out *, out_icosa_lmdz.exe.err*, xios_client_*)42 List= (run_dynamico.def, earth_const.def, iodef.xml, context_dynamico.xml, context_input_dynamico.xml, field_def_dynamico.xml, file_def_dynamico.xml, out_icosa_lmdz.exe.out, out_icosa_lmdz.exe.err, xios_client_*) 43 43 44 44 -
CONFIG/UNIFORM/v7/IPSLCM7/EXPERIMENTS/IPSLCM/piControl_TEST/COMP/lmdz.card
r6070 r6296 5 5 # Physics package to use : 6 6 # LMDZ_Physics=AP for standard/old physics(defalut), can be used with LMDZ4_AR5 or LMDZ5/trunk sources 7 LMDZ_Physics=NPv6. 1.37 LMDZ_Physics=NPv6.2 8 8 9 9 # Set ConfType to choose parameters for aerosols, solar and green house gazes. … … 79 79 (${SUBMIT_DIR}/PARAM/guide.def, .), \ 80 80 (${SUBMIT_DIR}/PARAM/run.def, .), \ 81 (${SUBMIT_DIR}/PARAM/trace ur.def, .),\81 (${SUBMIT_DIR}/PARAM/tracer.def, .), \ 82 82 (${SUBMIT_DIR}/PARAM/iodef.xml, . ), \ 83 83 (${SUBMIT_DIR}/PARAM/ping_LMDZ.xml, ping_lmdz.xml ), \ … … 86 86 (${MODIPSL}/modeles/LMDZ/DefLists/field_def_lmdz.xml, . ), \ 87 87 (${MODIPSL}/modeles/LMDZ/DefLists/field_def_cosp1.xml, . ), \ 88 (${ MODIPSL}/modeles/LMDZ/DefLists/file_def_histmth_lmdz.xml, . ),\88 (${SUBMIT_DIR}/PARAM/file_def_histmth_lmdz.xml, . ), \ 89 89 (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histmthCOSP_lmdz.xml, .),\ 90 90 (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histmthNMC_lmdz.xml, . ),\ … … 107 107 108 108 [OutputText] 109 List= (physiq.def, run.def, trace ur.def, guide.def, config.def, vert.def, used_run.def, context_lmdz.xml, field_def_lmdz.xml, file_def_*lmdz.xml, debug.01, lmdz.prt)109 List= (physiq.def, run.def, tracer.def, guide.def, config.def, vert.def, used_run.def, context_lmdz.xml, field_def_lmdz.xml, file_def_*lmdz.xml, debug.01, lmdz.prt) 110 110 111 111 [OutputFiles] -
CONFIG/UNIFORM/v7/IPSLCM7/EXPERIMENTS/IPSLCM/piControl_TEST/COMP/oasis.card
r5479 r6296 6 6 FreqCoupling=5400 7 7 FreqCouplingRoffCalv=86400 8 Lucia= y8 Lucia=n 9 9 10 10 # ByPass_addnoise_sst=y : use addnoise on sst in CPL restart for following CumulPeriod only … … 23 23 [BoundaryFiles] 24 24 List= () 25 ListNonDel= (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/grids_${config_UserChoices_ORCA_version}xICO${RESOL_NBP}_MOSAIX_v 1.nc, grids.nc),\26 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/masks_${config_UserChoices_ORCA_version}xICO${RESOL_NBP}_MOSAIX_v 1.nc, masks.nc),\27 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/areas_${config_UserChoices_ORCA_version}xICO${RESOL_NBP}_MOSAIX_v 1.nc, areas.nc),\28 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v 1.nc, .),\29 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_ueORCA1.2_WindStress_2ndOrder_MOSAIX_v 1.nc, .),\30 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_veORCA1.2_WindStress_2ndOrder_MOSAIX_v 1.nc, .),\31 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v 1.nc, .),\32 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_teORCA1.2_calving_nosouth_MOSAIX_v 1.nc, .),\33 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_teORCA1.2_calving_iceberg_MOSAIX_v 1.nc, .),\34 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_teORCA1.2_calving_iceshelf_MOSAIX_v 1.nc, .),\35 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_teORCA1.2_runoff_Quantity_to_Surfacic_MOSAIX_v 1.nc, .)25 ListNonDel= (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/grids_${config_UserChoices_ORCA_version}xICO${RESOL_NBP}_MOSAIX_v2.nc, grids.nc),\ 26 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/masks_${config_UserChoices_ORCA_version}xICO${RESOL_NBP}_MOSAIX_v2.nc, masks.nc),\ 27 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/areas_${config_UserChoices_ORCA_version}xICO${RESOL_NBP}_MOSAIX_v2.nc, areas.nc),\ 28 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v2.nc, .),\ 29 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_ueORCA1.2_WindStress_2ndOrder_MOSAIX_v2.nc, .),\ 30 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_veORCA1.2_WindStress_2ndOrder_MOSAIX_v2.nc, .),\ 31 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v2.nc, .),\ 32 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_teORCA1.2_calving_nosouth_MOSAIX_v2.nc, .),\ 33 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_teORCA1.2_calving_iceberg_MOSAIX_v2.nc, .),\ 34 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_teORCA1.2_calving_iceshelf_MOSAIX_v2.nc, .),\ 35 (${R_IN}/CPL/IPSLCM7/${config_UserChoices_ORCA_version}xICO${RESOL_NBP}/rmp_tICO40_to_teORCA1.2_runoff_Quantity_to_Surfacic_MOSAIX_v2.nc, .) 36 36 37 37 [SmoothFiles] -
CONFIG/UNIFORM/v7/IPSLCM7/EXPERIMENTS/IPSLCM/piControl_TEST/COMP/orchidee.card
r6135 r6296 11 11 VEGET_UPDATE=0Y 12 12 13 # Choice for routing scheme. Set ROUTING below to have following parameters set in orchidee.def : 14 # ROUTING=standard => in orchidee.def RIVER_ROUTING=y and ROUTING_METHOD=standard 15 # ROUTING=simple => in orchidee.def RIVER_ROUTING=y and ROUTING_METHOD=simple 16 # ROUTING=off => in orchidee.def RIVER_ROUTING=n 17 ROUTING=simple 18 13 19 # Specify output level for output files 14 20 # Only the files sechiba_history.nc, sechiba_out_2.nc and sechiba_history_4dim.nc can be set here. … … 16 22 # output_level_filename=12 : highest level which will output all variables 17 23 # output_level_filename=NONE : deactivate the file 18 output_level_sechiba_history = 224 output_level_sechiba_history = 11 19 25 output_level_sechiba_out_2 = NONE 20 26 output_level_sechiba_history_4dim = NONE … … 36 42 List= () 37 43 ListNonDel= (${R_IN}/SRF/PFTMAPS/CMIP6/ESA-LUH2v2/historical/15PFT.v2/PFTmap_1850.nc, PFTmap.nc),\ 38 (${R_IN}/SRF/WOODHARVEST/LUH2v2/historical4/woodharvest_1850.nc, woodharvest.nc) 44 (${R_IN}/SRF/WOODHARVEST/LUH2v2/historical4/woodharvest_1850.nc, woodharvest.nc),\ 45 (${R_IN}/SRF/ROUTING/routing_simple.nc, .) 39 46 40 47 … … 45 52 List= (${SUBMIT_DIR}/PARAM/orchidee.def, .) ,\ 46 53 (${SUBMIT_DIR}/PARAM/ping_orchidee.xml, . ) ,\ 47 (${ MODIPSL}/modeles/ORCHIDEE/src_xml/file_def_orchidee.xml, .) ,\54 (${SUBMIT_DIR}/PARAM/file_def_orchidee.xml, .) ,\ 48 55 (${MODIPSL}/modeles/ORCHIDEE/src_xml/context_input_orchidee.xml, .) ,\ 49 56 (${MODIPSL}/modeles/ORCHIDEE/src_xml/context_routing_orchidee.xml, .) ,\ … … 52 59 53 60 [RestartFiles] 54 List= (sechiba_rest_out.nc, sechiba_rest.nc, sechiba_rest_in.nc) 61 List= (sechiba_rest_out.nc, sechiba_rest.nc, sechiba_rest_in.nc),\ 62 (routing_restart.nc, routing_restart.nc, routing_start.nc) 55 63 56 64 [OutputText] 57 List= (out_orchidee *, orchidee.def, used_orchidee.def, iodef.xml, context_orchidee.xml, context_routing_orchidee.xml, context_input_orchidee.xml, field_def_orchidee.xml, file_def_orchidee.xml, river_desc.nc)65 List= (out_orchidee, orchidee.def, used_orchidee.def, iodef.xml, context_orchidee.xml, context_routing_orchidee.xml, context_input_orchidee.xml, field_def_orchidee.xml, file_def_orchidee.xml, river_desc.nc) 58 66 59 67 [OutputFiles] -
CONFIG/UNIFORM/v7/IPSLCM7/GENERAL/DRIVER/dynamico.driver
r5479 r6296 21 21 IGCM_debug_Exit "RESOL_ATM_Z must be set in dynamico.card UserSection" 22 22 IGCM_debug_Verif_Exit 23 fi 24 25 if [ ! -f ${SUBMIT_DIR}/../../../modeles/DYNAMICO/xml/file_def_dynamico.xml ]; then 26 module load python3 27 python3 ${SUBMIT_DIR}/../../../modeles/DYNAMICO/xml/file_def_dynamico.xml.py > ${SUBMIT_DIR}/../../../modeles/DYNAMICO/xml/file_def_dynamico.xml 23 28 fi 24 29 -
CONFIG/UNIFORM/v7/IPSLCM7/GENERAL/DRIVER/lmdz.driver
r6014 r6296 31 31 RESOL_ATM_Z=${dynamico_UserChoices_RESOL_ATM_Z} 32 32 RESOL_NBP=${dynamico_UserChoices_RESOL_NBP} 33 RESOL_ATM="nbp${RESOL_NBP}" 33 34 fi 34 35 … … 379 380 fi 380 381 381 if [ X${config_ListOfComponents_CHM} = Xinca ] ; then 382 if [ X${config_UserChoices_ConfigType} = XESMCO2AER ] ; then 383 echo "ESM config, with INCA and CO2i, set type_trac=inco in run.def" 384 IGCM_comp_modifyDefFile blocker run.def type_trac inco 385 IGCM_comp_modifyDefFile blocker run.def iflag_phytrac 1 386 elif [ X${config_ListOfComponents_CHM} = Xinca ] ; then 382 387 echo "Activate coupling to INCA, set type_trac=inca in run.def" 383 388 IGCM_comp_modifyDefFile blocker run.def type_trac inca … … 492 497 fi 493 498 494 if [ X${config_UserChoices_ConfigType} = XESMCO2 ]; then499 if ( [ X${config_UserChoices_ConfigType} = XESMCO2 ] || [ X${config_UserChoices_ConfigType} = XESMCO2AER ] ) ; then 495 500 # Set carbon cycle parameters according to parmeters in lmdz.card 496 501 IGCM_comp_modifyDefFile blocker config.def level_coupling_esm 2 … … 498 503 IGCM_comp_modifyDefFile blocker config.def carbon_cycle_tr ${lmdz_UserChoices_carbon_cycle_tr} 499 504 IGCM_comp_modifyDefFile blocker config.def carbon_cycle_rad ${lmdz_UserChoices_carbon_cycle_rad} 505 IGCM_comp_modifyDefFile nonblocker config.def co2_ppm0 ${lmdz_UserChoices_co2_ppm0} 500 506 else 501 507 # Take default value set in config.def … … 504 510 IGCM_comp_modifyDefFile nonblocker config.def carbon_cycle_tr DEFAULT 505 511 IGCM_comp_modifyDefFile nonblocker config.def carbon_cycle_rad DEFAULT 512 IGCM_comp_modifyDefFile nonblocker config.def co2_ppm0 DEFAULT 513 fi 514 515 if ( [ X${config_UserChoices_ConfigType} = XESMCO2 ] ) ; then 516 # Set carbon cycle parameters according to parmeters in lmdz.card 517 IGCM_comp_modifyDefFile nonblocker config.def read_fco2_ocean_cor ${lmdz_UserChoices_read_fco2_ocean_cor} 518 IGCM_comp_modifyDefFile nonblocker config.def var_fco2_ocean_cor ${lmdz_UserChoices_var_fco2_ocean_cor} 519 IGCM_comp_modifyDefFile nonblocker config.def read_fco2_land_cor ${lmdz_UserChoices_read_fco2_land_cor} 520 IGCM_comp_modifyDefFile nonblocker config.def var_fco2_land_cor ${lmdz_UserChoices_var_fco2_land_cor} 521 else 522 IGCM_comp_modifyDefFile nonblocker config.def read_fco2_ocean_cor DEFAULT 523 IGCM_comp_modifyDefFile nonblocker config.def var_fco2_ocean_cor DEFAULT 524 IGCM_comp_modifyDefFile nonblocker config.def read_fco2_land_cor DEFAULT 525 IGCM_comp_modifyDefFile nonblocker config.def var_fco2_land_cor DEFAULT 506 526 fi 507 527 … … 572 592 fi 573 593 # Include xml files for output configuration if running with workflow CMIP6 574 if [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ]; then594 if ( [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ] || [ X${config_Post_dr2xmlIPSL} = XTRUE ] ) ; then 575 595 echo '<context id="LMDZ" src="./ping_lmdz.xml"/>' >> add.tmp 576 596 echo '<context id="LMDZ" src="./dr2xml_lmdz.xml"/>' >> add.tmp … … 615 635 valuei=720 616 636 valuej=360 637 elif [ ${RESOL_NBP} == 320 ] ; then 638 valuei=1440 639 valuej=720 617 640 else 618 641 IGCM_debug_Exit "RESOL_NBP=${RESOL_NBP} is not yet implemented in drivers" -
CONFIG/UNIFORM/v7/IPSLCM7/GENERAL/DRIVER/orchidee.driver
r5479 r6296 15 15 fi 16 16 17 # Define the resolution only if the composant ICO for DYNAMICO is set in config.card 18 if [ ! X${config_ListOfComponents_ICO} = X ] ; then 19 RESOL_SRF="nbp${RESOL_NBP}" 20 fi 21 22 17 23 IGCM_debug_PopStack "SRF_Initialize" 18 24 } … … 40 46 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 output_level 0 41 47 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 output_freq 1mo 42 43 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 enabled .FALSE. 44 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 output_level 0 45 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 output_freq 1mo 48 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 enabled .FALSE. 49 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 output_level 0 50 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 output_freq 1mo 51 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate4 enabled .FALSE. 52 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate4 output_level 0 53 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate4 output_freq 1mo 46 54 fi 47 55 … … 64 72 else 65 73 IGCM_comp_modifyDefFile nonblocker orchidee.def VEGET_UPDATE 0Y 74 fi 75 76 # Set parameters related to ROUTING in orchidee.def 77 if [ X${orchidee_UserChoices_ROUTING} = X ] || [ X${orchidee_UserChoices_ROUTING} = Xstandard ]; then 78 # Nothing is set or ROUTING=standard in orchidee.def, default option 79 IGCM_comp_modifyDefFile nonblocker orchidee.def RIVER_ROUTING y 80 IGCM_comp_modifyDefFile nonblocker orchidee.def ROUTING_METHOD standard 81 elif [ X${orchidee_UserChoices_ROUTING} = Xsimple ]; then 82 # ROUTING=simple is set in orchidee.card 83 IGCM_comp_modifyDefFile nonblocker orchidee.def RIVER_ROUTING y 84 IGCM_comp_modifyDefFile nonblocker orchidee.def ROUTING_METHOD simple 85 elif [ X${orchidee_UserChoices_ROUTING} = Xhighres ]; then 86 # ROUTING=highres is set in orchidee.card 87 IGCM_comp_modifyDefFile nonblocker orchidee.def RIVER_ROUTING y 88 IGCM_comp_modifyDefFile nonblocker orchidee.def ROUTING_METHOD highres 89 else 90 # ROUTING=off, routing will be deactivated 91 IGCM_comp_modifyDefFile nonblocker orchidee.def RIVER_ROUTING n 92 IGCM_comp_modifyDefFile nonblocker orchidee.def ROUTING_METHOD standard 66 93 fi 67 94 … … 114 141 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 output_level ${orchidee_UserChoices_output_level_sechiba_history} 115 142 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 output_freq ${orchidee_UserChoices_output_freq_sechiba_history} 143 IGCM_comp_modifyXmlFile force file_def_orchidee.xml groupremap_sechiba1 group_ref remap_${orchidee_UserChoices_output_freq_sechiba_history} 116 144 fi 117 145 … … 126 154 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 output_level ${orchidee_UserChoices_output_level_sechiba_out_2} 127 155 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 output_freq ${orchidee_UserChoices_output_freq_sechiba_out_2} 156 IGCM_comp_modifyXmlFile force file_def_orchidee.xml groupremap_sechiba2 group_ref remap_${orchidee_UserChoices_output_freq_sechiba_out_2} 128 157 fi 129 158 … … 138 167 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 output_level ${orchidee_UserChoices_output_level_sechiba_history_4dim} 139 168 IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 output_freq ${orchidee_UserChoices_output_freq_sechiba_history_4dim} 169 IGCM_comp_modifyXmlFile force file_def_orchidee.xml groupremap_sechiba3 group_ref remap_${orchidee_UserChoices_output_freq_sechiba_history_4dim} 140 170 fi 141 171 … … 153 183 echo '<context id="orchidee" src="./context_input_orchidee.xml"/>' >> add.tmp 154 184 fi 185 186 # Add inclusion of file context_routing_orchidee.xml if this file exists 187 if [ -f context_routing_orchidee.xml ] ; then 188 echo '<context id="orchidee" src="./context_routing_orchidee.xml"/>' >> add.tmp 189 fi 190 155 191 # Include xml files for output configuration if running with workflow CMIP6 156 if [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ]; then157 echo '<context id="orchidee" src="./ping_orchidee.xml"/>' >> add.tmp158 echo '<context id="orchidee" src="./dr2xml_orchidee.xml"/>' >> add.tmp192 if ( [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ] || [ X${config_Post_dr2xmlIPSL} = XTRUE ] ) ; then 193 echo '<context id="orchidee" src="./ping_orchidee.xml"/>' >> add.tmp 194 echo '<context id="orchidee" src="./dr2xml_orchidee.xml"/>' >> add.tmp 159 195 fi 160 196 cp iodef.xml iodef.xml.tmp … … 198 234 valuei=720 199 235 valuej=360 236 elif [ ${RESOL_NBP} == 320 ] ; then 237 valuei=1440 238 valuej=720 200 239 else 201 240 IGCM_debug_Exit "RESOL_NBP=${RESOL_NBP} is not yet implemented in drivers" -
CONFIG/UNIFORM/v7/IPSLCM7/GENERAL/PARAM/config.def_actuel
r5479 r6296 8 8 carbon_cycle_rad=_AUTO_ : DEFAULT=n 9 9 10 ## read_fco2_ocean_cor : y/n flag d'activation de la correction du flux net de carbone (ocean) 11 read_fco2_ocean_cor=_AUTO_ : DEFAULT=n 12 ## var_fco2_ocean_cor : valeur de la correction du flux net de carbone (ocean) 13 var_fco2_ocean_cor=_AUTO_: DEFAULT = 0.2576 14 ## read_fco2_land_cor : y/n flag d'activation de la correction du flux net de carbone (land) 15 read_fco2_land_cor=_AUTO_ : DEFAULT=n 16 ## var_fco2_land_cor : valeur de la correction du flux net de carbone (land) 17 var_fco2_land_cor=_AUTO_: DEFAULT =-0.2036 18 10 19 ## Cycle diurne ou non 11 20 iflag_cycle_diurne=1 12 ## Soil Model ou non 21 22 ## Soil Model ou non 13 23 soil_model=y 14 ## Pas de temps de couplage (s). 24 25 ## Pas de temps de couplage (s) 15 26 t_coupl=_AUTO_ 16 27 … … 41 52 ### co2_ppm = taux CO2 en ppm, l'année 2000 forcage CMIP6 42 53 co2_ppm = _AUTO_: DEFAULT = 3.6912e+02 54 # co2_ppm0 = taux initial du CO2 en ppm, l'année 1850 forcage CMIP6 (transport) 55 co2_ppm0 = _AUTO_: DEFAULT = 2.8432e+02 43 56 ### co2_ppm_per = taux 4xCO2 en ppm (uniqument pour calcul des diags) 44 57 co2_ppm_per = _AUTO_: DEFAULT = 14.7648e+02 … … 66 79 ### flag_aerosol = type of coupled aerosol, if aerosol offline 67 80 ### 0 => no aerosol, 1 => sulfate only, 2 => bc only, 3 => pom only, 4 => seasalt only, 5 => dust only, 6 => all aerosol 68 flag_aerosol=_AUTO_ 81 flag_aerosol=_AUTO_ 69 82 ### ok_cdnc=y/n Cloud droplet number concentration 70 83 ok_cdnc=_AUTO_ … … 79 92 # 2: read two ozone climatologies, the average day and night climatology and the daylight climatology 80 93 read_climoz=_AUTO_ 81 # 94 # 82 95 # Aerosols stratospheriques utilises par defaut 83 96 flag_aerosol_strat=_AUTO_ : DEFAULT=2 -
CONFIG/UNIFORM/v7/IPSLCM7/GENERAL/PARAM/config.def_annuel
r5479 r6296 1 # level_coupling_esm : 0(pas d'echange de carbone), 2 (change entre LMDZ/CPL/NEMO et LMDZ/ORCHIDEE)1 ## level_coupling_esm : 0(pas d'echange de carbone), 2 (change entre LMDZ/CPL/NEMO et LMDZ/ORCHIDEE) 2 2 level_coupling_esm= _AUTO_: DEFAULT = 0 3 3 ## carbon_cycle_cpl: couplage des flux de carbone ATM/OCE, ATM/SRF … … 8 8 carbon_cycle_rad=_AUTO_ : DEFAULT=n 9 9 10 ## read_fco2_ocean_cor : y/n flag d'activation de la correction du flux net de carbone (ocean) 11 read_fco2_ocean_cor=_AUTO_ : DEFAULT=n 12 ## var_fco2_ocean_cor : valeur de la correction du flux net de carbone (ocean) 13 var_fco2_ocean_cor=_AUTO_: DEFAULT = 0.2576 14 ## read_fco2_land_cor : y/n flag d'activation de la correction du flux net de carbone (land) 15 read_fco2_land_cor=_AUTO_ : DEFAULT=n 16 ## var_fco2_land_cor : valeur de la correction du flux net de carbone (land) 17 var_fco2_land_cor=_AUTO_: DEFAULT =-0.2036 18 10 19 ## Cycle diurne ou non 11 20 iflag_cycle_diurne=1 12 ## Soil Model ou non 21 22 ## Soil Model ou non 13 23 soil_model=y 14 ## Pas de temps de couplage (s). 24 25 ## Pas de temps de couplage (s) 15 26 t_coupl=_AUTO_ 16 27 … … 41 52 ### co2_ppm = taux CO2 en ppm 42 53 co2_ppm = _AUTO_ 54 # co2_ppm0 = taux initial du CO2 en ppm, l'année 1850 forcage CMIP6 (transport) 55 co2_ppm0 = _AUTO_: DEFAULT = 2.8432e+02 43 56 ### co2_ppm_per = taux 4xCO2 en ppm (uniqument pour calcul des diags) 44 57 co2_ppm_per = _AUTO_ … … 66 79 ### flag_aerosol = type of coupled aerosol, if aerosol offline 67 80 ### 0 => no aerosol, 1 => sulfate only, 2 => bc only, 3 => pom only, 4 => seasalt only, 5 => dust only, 6 => all aerosol 68 flag_aerosol=_AUTO_ 81 flag_aerosol=_AUTO_ 69 82 ### ok_cdnc=y/n Cloud droplet number concentration 70 83 ok_cdnc=_AUTO_ 71 84 # ok_alw=y flag pour activer l effet LW des poussieres 72 85 ok_alw=y 73 #74 86 # 75 87 # Parametre de lecture de l'ozone … … 80 92 # 2: read two ozone climatologies, the average day and night climatology and the daylight climatology 81 93 read_climoz=_AUTO_ 82 # 94 # 83 95 # Aerosols stratospheriques utilises par defaut 84 96 flag_aerosol_strat=_AUTO_ : DEFAULT=2 -
CONFIG/UNIFORM/v7/IPSLCM7/GENERAL/PARAM/config.def_preind
r5479 r6296 8 8 carbon_cycle_rad=_AUTO_ : DEFAULT=n 9 9 10 ## read_fco2_ocean_cor : y/n flag d'activation de la correction du flux net de carbone (ocean) 11 read_fco2_ocean_cor=_AUTO_ : DEFAULT=n 12 ## var_fco2_ocean_cor : valeur de la correction du flux net de carbone (ocean) 13 var_fco2_ocean_cor=_AUTO_: DEFAULT = 0.2576 14 ## read_fco2_land_cor : y/n flag d'activation de la correction du flux net de carbone (land) 15 read_fco2_land_cor=_AUTO_ : DEFAULT=n 16 ## var_fco2_land_cor : valeur de la correction du flux net de carbone (land) 17 var_fco2_land_cor=_AUTO_: DEFAULT =-0.2036 18 10 19 ## Cycle diurne ou non 11 20 iflag_cycle_diurne=1 12 21 13 ## Pas de temps de couplage (s). 22 ## Soil Model ou non 23 soil_model=y 24 25 ## Pas de temps de couplage (s) 14 26 t_coupl=_AUTO_ 15 16 ## Soil Model ou non17 soil_model=y18 27 19 28 ## Nombre d'appels des routines de rayonnements ( par jour) … … 43 52 ### co2_ppm_per = taux 4xCO2 en ppm (uniqument pour calcul des diags) 44 53 co2_ppm_per = _AUTO_: DEFAULT =11.3728e+02 54 ## co2_ppm0 = taux initial du CO2 en ppm, l'année 1850 forcage CMIP6 (transport) 55 co2_ppm0 = _AUTO_: DEFAULT = 2.8432e+02 45 56 ### CH4_ppb = taux CH4 en ppb, l'année 1850 forcage CMIP6 46 57 CH4_ppb = _AUTO_: DEFAULT = 8.0825e+02 … … 81 92 # 82 93 # Aerosols stratospheriques utilises par defaut 83 #84 94 flag_aerosol_strat=_AUTO_ : DEFAULT=2 85 95 # Diag VolMIP to get volcanic aerosols effects instead of tropospheric ones … … 87 97 # 88 98 # COSP 89 #90 99 ok_cosp=_AUTO_ -
CONFIG/UNIFORM/v7/IPSLCM7/GENERAL/PARAM/iodef.xml
r5479 r6296 21 21 <variable_group id="buffer"> 22 22 <variable id="optimal_buffer_size" type="string">performance</variable> 23 <variable id="buffer_size_factor" type="double"> 1.0</variable>23 <variable id="buffer_size_factor" type="double">2.0</variable> 24 24 <variable id="min_buffer_size" type="int">10000000</variable> 25 25 </variable_group> -
CONFIG/UNIFORM/v7/IPSLCM7/GENERAL/PARAM/namcouple_ORCA1xICO40
r5479 r6296 60 60 # Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum 61 61 # number of overlapped neighbors 62 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v 1.nc dst62 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v2.nc dst 63 63 # CHECKOUT: indicate computation of global, land and sea field integrals. 64 64 # … … 75 75 # CHECKIN: indicate computation of global, land and sea field integrals. 76 76 # 77 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v 1.nc dst77 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v2.nc dst 78 78 # CHECKOUT: indicate computation of global, land and sea field integrals. 79 79 # … … 90 90 # CHECKIN: indicate computation of global, land and sea field integrals. 91 91 # 92 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v 1.nc dst92 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v2.nc dst 93 93 # CHECKOUT: indicate computation of global, land and sea field integrals. 94 94 # … … 105 105 # CHECKIN: indicate computation of global, land and sea field integrals. 106 106 # 107 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v 1.nc dst107 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v2.nc dst 108 108 # CHECKOUT: indicate computation of global, land and sea field integrals. 109 109 # … … 119 119 # CHECKIN: indicate computation of global, land and sea field integrals. 120 120 # 121 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v 1.nc dst121 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v2.nc dst 122 122 # CHECKOUT: indicate computation of global, land and sea field integrals. 123 123 # … … 133 133 # CHECKIN: indicate computation of global, land and sea field integrals. 134 134 # 135 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v 1.nc dst135 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v2.nc dst 136 136 # CHECKOUT: indicate computation of global, land and sea field integrals. 137 137 # … … 146 146 # CHECKIN: indicate computation of global, land and sea field integrals. 147 147 # 148 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v 1.nc dst148 rmp_teORCA1.2_to_tICO40_TempIceAlb_1stOrder_MOSAIX_v2.nc dst 149 149 # CHECKOUT: indicate computation of global, land and sea field integrals. 150 150 # … … 164 164 # CHECKIN: indicate computation of global, land and sea field integrals. 165 165 # Interpolation method ou parametres mozaic 166 rmp_tICO40_to_ueORCA1.2_WindStress_2ndOrder_MOSAIX_v 1.nc src166 rmp_tICO40_to_ueORCA1.2_WindStress_2ndOrder_MOSAIX_v2.nc src 167 167 # CHECKOUT: indicate computation of global, land and sea field integrals. 168 168 # … … 177 177 # CHECKIN: indicate computation of global, land and sea field integrals. 178 178 # Interpolation method ou parametres mozaic 179 rmp_tICO40_to_ueORCA1.2_WindStress_2ndOrder_MOSAIX_v 1.nc src179 rmp_tICO40_to_ueORCA1.2_WindStress_2ndOrder_MOSAIX_v2.nc src 180 180 # CHECKOUT: indicate computation of global, land and sea field integrals. 181 181 # … … 190 190 # CHECKIN: indicate computation of global, land and sea field integrals. 191 191 # Interpolation method ou parametres mozaic 192 rmp_tICO40_to_ueORCA1.2_WindStress_2ndOrder_MOSAIX_v 1.nc src192 rmp_tICO40_to_ueORCA1.2_WindStress_2ndOrder_MOSAIX_v2.nc src 193 193 # CHECKOUT: indicate computation of global, land and sea field integrals. 194 194 # … … 205 205 MAPPING 206 206 # Interpolation method or mozaic parameters 207 rmp_tICO40_to_veORCA1.2_WindStress_2ndOrder_MOSAIX_v 1.nc src207 rmp_tICO40_to_veORCA1.2_WindStress_2ndOrder_MOSAIX_v2.nc src 208 208 # CHECKOUT: indicate computation of global, land and sea field integrals. 209 209 # … … 219 219 MAPPING 220 220 # Interpolation method or mozaic parameters 221 rmp_tICO40_to_veORCA1.2_WindStress_2ndOrder_MOSAIX_v 1.nc src221 rmp_tICO40_to_veORCA1.2_WindStress_2ndOrder_MOSAIX_v2.nc src 222 222 # 223 223 # CHECKOUT: indicate computation of global, land and sea field integrals. … … 234 234 MAPPING 235 235 # Interpolation method or mozaic parameters 236 rmp_tICO40_to_veORCA1.2_WindStress_2ndOrder_MOSAIX_v 1.nc src236 rmp_tICO40_to_veORCA1.2_WindStress_2ndOrder_MOSAIX_v2.nc src 237 237 # CHECKOUT: indicate computation of global, land and sea field integrals. 238 238 # … … 246 246 # CHECKIN: indicate computation of global, land and sea field integrals. 247 247 # Interpolation method ou parametres mozaic 248 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v 1.nc src248 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v2.nc src 249 249 # CHECKOUT: indicate computation of global, land and sea field integrals. 250 250 # … … 259 259 # CHECKIN: indicate computation of global, land and sea field integrals. 260 260 # Interpolation method ou parametres mozaic 261 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v 1.nc src261 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v2.nc src 262 262 # CHECKOUT: indicate computation of global, land and sea field integrals. 263 263 # … … 272 272 # CHECKIN: indicate computation of global, land and sea field integrals. 273 273 # Interpolation method ou parametres mozaic 274 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v 1.nc src274 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v2.nc src 275 275 # CHECKOUT: indicate computation of global, land and sea field integrals. 276 276 # … … 285 285 # CHECKIN: indicate computation of global, land and sea field integrals. 286 286 # Interpolation method ou parametres mozaic 287 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v 1.nc src287 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v2.nc src 288 288 # CHECKOUT: indicate computation of global, land and sea field integrals. 289 289 # … … 298 298 # CHECKIN: indicate computation of global, land and sea field integrals. 299 299 # Interpolation method ou parametres mozaic 300 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v 1.nc src300 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v2.nc src 301 301 # CHECKOUT: indicate computation of global, land and sea field integrals. 302 302 # … … 311 311 # CHECKIN: indicate computation of global, land and sea field integrals. 312 312 # Interpolation method or mozaic parameters 313 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v 1.nc src313 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v2.nc src 314 314 # CHECKOUT: indicate computation of global, land and sea field integrals. 315 315 # … … 324 324 # CHECKIN: indicate computation of global, land and sea field integrals. 325 325 # Interpolation method ou parametres mozaic 326 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v 1.nc src326 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v2.nc src 327 327 # CHECKOUT: indicate computation of global, land and sea field integrals. 328 328 # … … 337 337 # CHECKIN: indicate computation of global, land and sea field integrals. 338 338 # Interpolation method or mozaic parameters 339 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v 1.nc src339 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v2.nc src 340 340 # CHECKOUT: indicate computation of global, land and sea field integrals. 341 341 # … … 350 350 # CHECKIN: indicate computation of global, land and sea field integrals. 351 351 # Interpolation method ou parametres mozaic 352 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v 1.nc src352 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v2.nc src 353 353 # CHECKOUT: indicate computation of global, land and sea field integrals. 354 354 # … … 363 363 # CHECKIN: indicate computation of global, land and sea field integrals. 364 364 # Interpolation method ou parametres mozaic 365 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v 1.nc src365 rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_2ndOrder_MOSAIX_v2.nc src 366 366 # CHECKOUT: indicate computation of global, land and sea field integrals. 367 367 # … … 377 377 # CHECKIN: indicate computation of global, land and sea field integrals. 378 378 # Interpolation method ou parametres mozaic 379 rmp_tICO40_to_teORCA1.2_calving_nosouth_MOSAIX_v 1.nc dst379 rmp_tICO40_to_teORCA1.2_calving_nosouth_MOSAIX_v2.nc dst 380 380 # CHECKOUT: indicate computation of global, land and sea field integrals. 381 381 # … … 391 391 # CHECKIN: indicate computation of global, land and sea field integrals. 392 392 # Interpolation method ou parametres mozaic 393 rmp_tICO40_to_teORCA1.2_calving_iceberg_MOSAIX_v 1.nc dst393 rmp_tICO40_to_teORCA1.2_calving_iceberg_MOSAIX_v2.nc dst 394 394 0.5 0 395 395 # CHECKOUT: indicate computation of global, land and sea field integrals. … … 405 405 # CHECKIN: indicate computation of global, land and sea field integrals. 406 406 # Interpolation method ou parametres mozaic 407 rmp_tICO40_to_teORCA1.2_calving_iceshelf_MOSAIX_v 1.nc dst407 rmp_tICO40_to_teORCA1.2_calving_iceshelf_MOSAIX_v2.nc dst 408 408 0.5 0 409 409 # CHECKOUT: indicate computation of global, land and sea field integrals. … … 412 412 # Field 27 : liquid run-off (river + direct) (a->o 18) 413 413 # 414 COLIQRUN O_Runoff 32 <freq_coupling_roff_calv> 3 flxat.nc <output_mode> 415 1 16002 362 332 tico torc LAG=<lag_atm_roff_calv> 416 P 0 P 2 417 MAPPING CONSERV BLASNEW 414 COLIQRUN O_Runoff 32 <freq_coupling_roff_calv> 4 flxat.nc <output_mode> 415 1 16002 362 332 oico torc LAG=<lag_atm_roff_calv> 416 P 0 P 2 417 LOCTRANS MAPPING CONSERV BLASNEW 418 AVERAGE 418 419 # Interpolation method ou parametres mozaic 419 420 # weights convert from kg/s to kg/m^2/s 420 rmp_tICO40_to_teORCA1.2_runoff_Quantity_to_Surfacic_MOSAIX_v 1.nc src421 #rmp_tICO40_to_teORCA1.2_Quantity_MOSAIX_v 1.nc src422 #rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v 1.nc src421 rmp_tICO40_to_teORCA1.2_runoff_Quantity_to_Surfacic_MOSAIX_v2.nc dst 422 #rmp_tICO40_to_teORCA1.2_Quantity_MOSAIX_v2.nc src 423 #rmp_tICO40_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v2.nc src 423 424 # CONSERV 424 425 GLOBAL bfb 425 426 # change units from m/s to kg/s 426 1000 0427 1000.0 0 427 428 # CHECKOUT: indicate computation of global, land and sea field integrals. 428 429 # -
CONFIG/UNIFORM/v7/IPSLCM7/GENERAL/PARAM/orchidee.def
r5483 r6296 41 41 # Activate river routing 42 42 # default = y 43 RIVER_ROUTING = n 43 RIVER_ROUTING = _AUTO_ 44 45 # Choice of routing method: standard or simple 46 ROUTING_METHOD = _AUTO_ 44 47 45 48 # Activate creation of river_desc.nc file … … 133 136 134 137 # Activate downregulation for CO2 135 DOWNREGULATION_CO2=y 138 # Set DOWNREGULATION_CO2_NEW=y to activate new revised version of 139 # downregulation parametrization available in ORCHIDEE_2_0 for 140 # configurations v6.1.11 or later or in ORCHIDEE_2_2 from revision 6393 and later. 141 # When DOWNREGULATION_CO2_NEW=y, 142 # DOWNREGULATION_CO2 will be forced to false by the model. 143 DOWNREGULATION_CO2_NEW=y 136 144 DOWNREGULATION_CO2_BASELEVEL=380. 137 145 … … 218 226 #************************************************************************ 219 227 # CHEMISTRY_OK_BVOC : Activate chemistry 220 CHEMISTRY_BVOC = 228 CHEMISTRY_BVOC = _AUTO_: DEFAULT=n 221 229 222 230 # CO2 FOR BVOC - WILKINSON : CO2 inhibition effect for isoprene based on Wilkinson approach? -
CONFIG/UNIFORM/v7/IPSLCM7/GENERAL/PARAM/ping_LMDZ.xml
r5479 r6296 174 174 <field id="CMIP6_od550so4so" field_ref="dummy_not_provided" /> <!-- P1 (1) : Stratospheric Optical depth at 550 nm (sulphate only) 2D-field (here we limit the computation of OD to the stratosphere only) --> 175 175 <field id="CMIP6_od865dust" field_ref="dummy_not_provided" /> <!-- P1 (1) atmosphere_optical_thickness_due_to_dust_ambient_aerosol_particles : Optical thickness at 865 nm Dust --> 176 <field id="CMIP6_orog" field_ref="phis" > phis / 9.80665 </field> <!-- P1 (m) surface_altitude : Surface Altitude --> 176 177 <field id="CMIP6_parasolRefl" field_ref="parasol_refl" /> <!-- P1 (1) toa_bidirectional_reflectance : PARASOL Reflectance --> 177 178 <field id="CMIP6_pctisccp" field_ref="ctpisccp" /> <!-- P1 (Pa) air_pressure_at_cloud_top : time-means weighted by the ISCCP Total Cloud Fraction - see http://cfmip.metoffice.com/COSP.html --> -
CONFIG/UNIFORM/v7/IPSLCM7/SOURCES/LMDZ/oasis.F90
r5479 r6296 24 24 USE mod_prism_get_proto 25 25 USE mod_prism_put_proto 26 #endif 27 #ifdef CPP_CPLOCNINCA 28 USE incaoasis, ONLY : inforcv 26 29 #endif 27 30 #endif … … 59 62 INTEGER, PARAMETER :: ids_qraiic = 28 60 63 INTEGER, PARAMETER :: ids_qsnoic = 29 61 INTEGER, PARAMETER :: maxsend = 29 ! Maximum number of fields to send 64 INTEGER, PARAMETER :: ids_delta_sst = 30, ids_delta_sal = 31 65 66 INTEGER, PARAMETER :: maxsend = 31 ! Maximum number of fields to send 62 67 63 68 ! Id for fields received from ocean 69 64 70 INTEGER, PARAMETER :: idr_sisutw = 1 65 71 INTEGER, PARAMETER :: idr_icecov = 2 … … 70 76 INTEGER, PARAMETER :: idr_curenz = 7 71 77 INTEGER, PARAMETER :: idr_oceco2 = 8 72 INTEGER, PARAMETER :: maxrecv = 8 ! Maximum number of fields to receive 73 78 79 INTEGER, PARAMETER :: idr_sss = 9 80 ! bulk salinity of the surface layer of the ocean, in ppt 81 82 INTEGER, PARAMETER :: maxrecv = 9 ! Maximum number of fields to receive 83 84 #ifdef CPP_CPLOCNINCA 85 INTEGER, PARAMETER :: idr_ocedms = 1 86 INTEGER, PARAMETER :: maxrcv = 1 87 #endif 74 88 75 89 TYPE, PUBLIC :: FLD_CPL ! Type for coupling field information … … 110 124 USE geometry_mod, ONLY: ind_cell_glo 111 125 USE mod_phys_lmdz_mpi_data, ONLY: klon_mpi_para_nb 112 113 126 use config_ocean_skin_m, only: activate_ocean_skin 114 127 115 128 ! Local variables … … 127 140 CHARACTER (len = 80) :: abort_message 128 141 LOGICAL, SAVE :: cpl_current_omp 129 INTEGER, DIMENSION(klon_mpi) 142 INTEGER, DIMENSION(klon_mpi) :: ind_cell_glo_mpi 130 143 131 144 !* 1. Initializations … … 164 177 165 178 !************************************************************************************ 166 ! Gather global index to be used for oasis decomposition 179 ! Gather global index to be used for oasis decomposition 167 180 !************************************************************************************ 168 181 CALL gather_omp(ind_cell_glo,ind_cell_glo_mpi) … … 189 202 infosend(ids_calvin)%action = .TRUE. ; infosend(ids_calvin)%name = 'COCALVIN' 190 203 204 if (activate_ocean_skin == 2) then 205 infosend(ids_delta_sst)%action = .TRUE. 206 infosend(ids_delta_sst)%name = 'CODELSST' 207 infosend(ids_delta_sal)%action = .TRUE. 208 infosend(ids_delta_sal)%name = 'CODELSSS' 209 end if 210 191 211 IF (version_ocean=='nemo') THEN 192 212 infosend(ids_shftot)%action = .TRUE. ; infosend(ids_shftot)%name = 'COQSRMIX' … … 225 245 inforecv(idr_icealw)%action = .TRUE. ; inforecv(idr_icealw)%name = 'SIICEALW' 226 246 inforecv(idr_icetem)%action = .TRUE. ; inforecv(idr_icetem)%name = 'SIICTEMW' 247 248 if (activate_ocean_skin >= 1) then 249 inforecv(idr_sss)%action = .TRUE. 250 inforecv(idr_sss)%name = 'SISUSALW' 251 end if 227 252 228 253 IF (cpl_current ) THEN … … 235 260 inforecv(idr_oceco2)%action = .TRUE. ; inforecv(idr_oceco2)%name = 'SICO2FLX' 236 261 ENDIF 262 #ifdef CPP_CPLOCNINCA 263 inforcv(idr_ocedms)%action = .TRUE. ; inforcv(idr_ocedms)%name = 'SIDMSFLX' 264 #endif 237 265 238 266 !************************************************************************************ … … 319 347 ENDIF 320 348 END DO 321 349 350 ! Now, if also coupling CPL with INCA, initialize here fields to be exchanged. 351 #ifdef CPP_CPLOCNINCA 352 DO jf=1,maxrcv 353 IF (inforcv(jf)%action) THEN 354 CALL prism_def_var_proto(inforcv(jf)%nid, inforcv(jf)%name, il_part_id, & 355 il_var_nodims, PRISM_In, il_var_actual_shape, il_var_type, & 356 ierror) 357 IF (ierror .NE. PRISM_Ok) THEN 358 WRITE(lunout,*) 'inicma : Problem with prism_def_var_proto for field : ',& 359 inforcv(jf)%name 360 abort_message=' Problem in call to prism_def_var_proto for fields to receive' 361 CALL abort_physic(modname,abort_message,1) 362 ENDIF 363 ENDIF 364 END DO 365 #endif 366 322 367 !************************************************************************************ 323 368 ! Atmospheric Fields to send -
CONFIG/UNIFORM/v7/IPSLCM7/SOURCES/LMDZ/physiq_mod.F90
r5484 r6296 1 1 ! 2 ! $Id: physiq_mod.F90 3666 2020-04-20 10:13:34Z lfalletti$2 ! $Id: physiq_mod.F90 4298 2022-10-17 08:15:06Z pcadule $ 3 3 ! 4 4 !#define IO_DEBUG … … 16 16 d_u, d_v, d_t, d_qx, d_ps) 17 17 18 ! For clarity, the "USE" section is now arranged in alphabetical order, 19 ! with a separate section for CPP keys 20 ! PLEASE try to follow this rule 21 22 USE ACAMA_GWD_rando_m, only: ACAMA_GWD_rando 23 USE aero_mod 24 USE add_phys_tend_mod, only : add_pbl_tend, add_phys_tend, diag_phys_tend, prt_enerbil, & 25 & fl_ebil, fl_cor_ebil 18 26 USE assert_m, only: assert 27 USE change_srf_frac_mod 28 USE conf_phys_m, only: conf_phys 29 USE carbon_cycle_mod, ONLY : infocfields_init, RCO2_glo, carbon_cycle_rad 30 USE CFMIP_point_locations ! IM stations CFMIP 31 USE cmp_seri_mod 32 USE dimphy 33 USE etat0_limit_unstruct_mod 34 USE FLOTT_GWD_rando_m, only: FLOTT_GWD_rando 35 USE fonte_neige_mod, ONLY : fonte_neige_get_vars 36 USE geometry_mod, ONLY: cell_area, latitude_deg, longitude_deg, longitude,latitude, & 37 boundslon,boundslat, dx, dy, ind_cell_glo 19 38 USE ioipsl, only: histbeg, histvert, histdef, histend, histsync, & 20 39 histwrite, ju2ymds, ymds2ju, getin 21 USE geometry_mod, ONLY: cell_area, latitude_deg, longitude_deg 40 USE ioipsl_getin_p_mod, ONLY : getin_p 41 USE indice_sol_mod 42 USE infotrac_phy, ONLY: nqtot, nbtr, nqo, tracers, types_trac, nqCO2 43 USE readTracFiles_mod, ONLY: addPhase 44 USE strings_mod, ONLY: strIdx 45 USE iophy 46 USE limit_read_mod, ONLY : init_limit_read 47 USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat, nbp_lev, klon_glo, grid1dTo2d_glo, grid_type, unstructured 48 USE mod_phys_lmdz_mpi_data, only: is_mpi_root 49 USE mod_phys_lmdz_para 50 USE netcdf95, only: nf95_close 51 USE netcdf, only: nf90_fill_real ! IM for NMC files 52 USE open_climoz_m, only: open_climoz ! ozone climatology from a file 53 USE ozonecm_m, only: ozonecm ! ozone of J.-F. Royer 54 USE pbl_surface_mod, ONLY : pbl_surface 55 USE phyaqua_mod, only: zenang_an 56 USE phystokenc_mod, ONLY: offline, phystokenc 22 57 USE phys_cal_mod, only: year_len, mth_len, days_elapsed, jh_1jan, & 23 year_cur, mth_cur,jD_cur, jH_cur, jD_ref, day_cur, hour 58 year_cur, mth_cur,jD_cur, jH_cur, jD_ref, day_cur, hour, calend 59 !! USE phys_local_var_mod, ONLY : a long list of variables 60 !! ==> see below, after "CPP Keys" section 61 USE phys_state_var_mod ! Variables sauvegardees de la physique 62 USE phys_output_mod 63 USE phys_output_ctrlout_mod 64 USE print_control_mod, ONLY: mydebug=>debug , lunout, prt_level, & 65 alert_first_call, call_alert, prt_alerte 66 USE readaerosol_mod, ONLY : init_aero_fromfile 67 USE readaerosolstrato_m, ONLY : init_readaerosolstrato 68 USE radlwsw_m, only: radlwsw 69 USE regr_horiz_time_climoz_m, ONLY: regr_horiz_time_climoz 70 USE regr_pr_time_av_m, only: regr_pr_time_av 71 USE surface_data, ONLY : type_ocean, ok_veget, landice_opt 72 USE time_phylmdz_mod, only: annee_ref, current_time, day_ini, day_ref, & 73 day_step_phy, itau_phy, pdtphys, raz_date, start_time, update_time, ndays 74 USE tracinca_mod, ONLY: config_inca 75 USE tropopause_m, ONLY: dyn_tropopause 76 USE ice_sursat_mod, ONLY: flight_init, airplane 77 USE vampir 78 USE VERTICAL_LAYERS_MOD, ONLY: aps,bps, ap, bp 24 79 USE write_field_phy 25 USE dimphy 26 USE infotrac_phy, ONLY: nqtot, nbtr, nqo, type_trac 27 USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat, nbp_lev, klon_glo, grid1dTo2d_glo, grid_type, unstructured 28 USE mod_phys_lmdz_para 29 USE iophy 30 USE print_control_mod, ONLY: mydebug=>debug , lunout, prt_level 31 USE phystokenc_mod, ONLY: offline, phystokenc 32 USE time_phylmdz_mod, only: raz_date, day_step_phy, update_time,current_time 33 USE vampir 34 USE pbl_surface_mod, ONLY : pbl_surface 35 USE change_srf_frac_mod 36 USE surface_data, ONLY : type_ocean, ok_veget, ok_snow 37 USE tropopause_m, ONLY: dyn_tropopause 80 #ifdef CPP_XIOS 81 USE wxios, ONLY: g_ctx, wxios_set_context 82 #endif 83 USE lscp_mod, ONLY : lscp 84 USE wake_ini_mod, ONLY : wake_ini 85 USE thermcell_ini_mod, ONLY : thermcell_ini 86 87 !USE cmp_seri_mod 88 ! USE add_phys_tend_mod, only : add_pbl_tend, add_phys_tend, diag_phys_tend, prt_enerbil, & 89 ! & fl_ebil, fl_cor_ebil 90 91 !!!!!!!!!!!!!!!!!! "USE" section for CPP keys !!!!!!!!!!!!!!!!!!!!!!!! 92 ! 93 ! 38 94 #ifdef CPP_Dust 39 USE phytracr_spl_mod, ONLY: phytracr_spl 95 USE phytracr_spl_mod, ONLY: phytracr_spl, phytracr_spl_out_init 96 USE phys_output_write_spl_mod 97 #else 98 USE phytrac_mod, ONLY : phytrac_init, phytrac 99 USE phys_output_write_mod 40 100 #endif 101 102 103 #ifdef REPROBUS 104 USE CHEM_REP, ONLY : Init_chem_rep_xjour, & 105 d_q_rep,d_ql_rep,d_qi_rep,ptrop,ttrop, & 106 ztrop, gravit,itroprep, Z1,Z2,fac,B 107 #endif 108 109 110 #ifdef CPP_RRTM 111 USE YOERAD, ONLY : NRADLP 112 USE YOESW, ONLY : RSUN 113 #endif 114 115 41 116 #ifdef CPP_StratAer 42 117 USE strataer_mod, ONLY: strataer_init 43 118 #endif 44 USE phys_local_var_mod, ONLY: phys_local_var_init, phys_local_var_end, & 119 120 121 #ifdef CPP_XIOS 122 USE xios, ONLY: xios_update_calendar, xios_context_finalize 123 USE xios, ONLY: xios_get_field_attr, xios_field_is_active, xios_context 124 USE xios, ONLY: xios_set_current_context 125 USE wxios, ONLY: missing_val, missing_val_omp 126 #endif 127 #ifndef CPP_XIOS 128 USE paramLMDZ_phy_mod 129 #endif 130 ! 131 ! 132 !!!!!!!!!!!!!!!!!! END "USE" for CPP keys !!!!!!!!!!!!!!!!!!!!!! 133 134 USE phys_local_var_mod, ONLY: phys_local_var_init, phys_local_var_end, & 45 135 ! [Variables internes non sauvegardees de la physique] 46 136 ! Variables locales pour effectuer les appels en serie 47 t_seri,q_seri,ql_seri,qs_seri,u_seri,v_seri,tr_seri, &137 t_seri,q_seri,ql_seri,qs_seri,u_seri,v_seri,tr_seri,rneb_seri, & 48 138 ! Dynamic tendencies (diagnostics) 49 d_t_dyn,d_q_dyn,d_ql_dyn,d_qs_dyn,d_u_dyn,d_v_dyn,d_tr_dyn, &139 d_t_dyn,d_q_dyn,d_ql_dyn,d_qs_dyn,d_u_dyn,d_v_dyn,d_tr_dyn,d_rneb_dyn, & 50 140 d_q_dyn2d,d_ql_dyn2d,d_qs_dyn2d, & 51 141 ! Physic tendencies … … 66 156 ! 67 157 d_t_vdf,d_q_vdf,d_u_vdf,d_v_vdf,d_t_diss, & 158 d_t_vdf_x, d_t_vdf_w, & 159 d_q_vdf_x, d_q_vdf_w, & 68 160 d_ts, & 69 161 ! … … 119 211 cdragm, cdragh, & 120 212 zustar, zu10m, zv10m, rh2m, qsat2m, & 121 zq2m, zt2m, weak_inversion, & 122 zq2m_cor,zt2m_cor,zu10m_cor,zv10m_cor, & ! pour corriger d'un bug 123 zrh2m_cor,zqsat2m_cor, & 213 zq2m, zt2m, zn2mout, weak_inversion, & 124 214 zt2m_min_mon, zt2m_max_mon, & ! pour calcul_divers.h 125 215 t2m_min_mon, t2m_max_mon, & ! pour calcul_divers.h … … 134 224 zxrunofflic, & 135 225 zxtsol, snow_lsc, zxfqfonte, zxqsurf, & 226 delta_qsurf, & 136 227 rain_lsc, rain_num, & 137 228 ! … … 139 230 zxfluxlat_x, zxfluxlat_w, & 140 231 ! 141 d_t_vdf_x, d_t_vdf_w, & 142 d_q_vdf_x, d_q_vdf_w, & 143 pbl_tke_input, & 232 pbl_tke_input, tke_dissip, l_mix, wprime,& 144 233 t_therm, q_therm, u_therm, v_therm, & 145 234 cdragh_x, cdragh_w, & … … 168 257 alp_bl_stat, n2, s2, & 169 258 proba_notrig, random_notrig, & 170 cv_gen, & 259 !! cv_gen, & !moved to phys_state_var_mod 171 260 ! 172 261 dnwd0, & … … 195 284 ref_liq, ref_ice, theta, & 196 285 ref_liq_pi, ref_ice_pi, & 197 zphi, zx_rh, &286 zphi, zx_rh, zx_rhl, zx_rhi, & 198 287 pmfd, pmfu, & 199 288 ! … … 216 305 zxsnow,snowhgt,qsnow,to_ice,sissnow,runoff,albsol3_lic 217 306 ! 218 USE phys_state_var_mod ! Variables sauvegardees de la physique219 #ifdef CPP_Dust220 USE phys_output_write_spl_mod221 #else222 USE phys_output_var_mod ! Variables pour les ecritures des sorties223 #endif224 225 USE phys_output_write_mod226 USE fonte_neige_mod, ONLY : fonte_neige_get_vars227 USE phys_output_mod228 USE phys_output_ctrlout_mod229 USE open_climoz_m, only: open_climoz ! ozone climatology from a file230 USE regr_pr_time_av_m, only: regr_pr_time_av231 USE netcdf95, only: nf95_close232 !IM for NMC files233 USE netcdf, only: nf90_fill_real234 USE mod_phys_lmdz_mpi_data, only: is_mpi_root235 USE aero_mod236 USE ozonecm_m, only: ozonecm ! ozone of J.-F. Royer237 USE conf_phys_m, only: conf_phys238 USE radlwsw_m, only: radlwsw239 USE phyaqua_mod, only: zenang_an240 USE time_phylmdz_mod, only: day_step_phy, annee_ref, day_ref, itau_phy, &241 start_time, pdtphys, day_ini242 USE tracinca_mod, ONLY: config_inca243 #ifdef CPP_XIOS244 USE wxios, ONLY: missing_val, missing_val_omp245 USE xios, ONLY: xios_get_field_attr, xios_field_is_active246 #endif247 #ifdef REPROBUS248 USE CHEM_REP, ONLY : Init_chem_rep_xjour, &249 d_q_rep,d_ql_rep,d_qi_rep,ptrop,ttrop, &250 ztrop, gravit,itroprep, Z1,Z2,fac,B251 #endif252 USE indice_sol_mod253 USE phytrac_mod, ONLY : phytrac_init, phytrac254 USE carbon_cycle_mod, ONLY : infocfields_init, RCO2_glo, carbon_cycle_rad255 256 #ifdef CPP_RRTM257 USE YOERAD, ONLY : NRADLP258 USE YOESW, ONLY : RSUN259 #endif260 USE ioipsl_getin_p_mod, ONLY : getin_p261 262 #ifndef CPP_XIOS263 USE paramLMDZ_phy_mod264 #endif265 266 USE cmp_seri_mod267 USE add_phys_tend_mod, only : add_pbl_tend, add_phys_tend, diag_phys_tend, prt_enerbil, &268 & fl_ebil, fl_cor_ebil269 270 !IM stations CFMIP271 USE CFMIP_point_locations272 USE FLOTT_GWD_rando_m, only: FLOTT_GWD_rando273 USE ACAMA_GWD_rando_m, only: ACAMA_GWD_rando274 USE VERTICAL_LAYERS_MOD, ONLY: aps,bps, ap, bp275 USE etat0_limit_unstruct_mod276 #ifdef CPP_XIOS277 USE xios, ONLY: xios_update_calendar, xios_context_finalize278 #endif279 USE limit_read_mod, ONLY : init_limit_read280 USE regr_horiz_time_climoz_m, ONLY: regr_horiz_time_climoz281 USE readaerosol_mod, ONLY : init_aero_fromfile282 USE readaerosolstrato_m, ONLY : init_readaerosolstrato283 307 284 308 IMPLICIT NONE … … 336 360 include "dimsoil.h" 337 361 include "clesphys.h" 338 include " thermcell.h"362 include "alpale.h" 339 363 include "dimpft.h" 340 364 !====================================================================== 341 365 LOGICAL, SAVE :: ok_volcan ! pour activer les diagnostics volcaniques 342 366 !$OMP THREADPRIVATE(ok_volcan) 367 INTEGER, SAVE :: flag_volc_surfstrat ! pour imposer le cool/heat rate à la surf/strato 368 !$OMP THREADPRIVATE(flag_volc_surfstrat) 343 369 LOGICAL ok_cvl ! pour activer le nouveau driver pour convection KE 344 370 PARAMETER (ok_cvl=.TRUE.) … … 421 447 !====================================================================== 422 448 ! 423 INTEGER ivap ! indice de traceurs pour vapeur d'eau 424 PARAMETER (ivap=1) 425 INTEGER iliq ! indice de traceurs pour eau liquide 426 PARAMETER (iliq=2) 427 !CR: on ajoute la phase glace 428 INTEGER isol ! indice de traceurs pour eau glace 429 PARAMETER (isol=3) 449 ! indices de traceurs eau vapeur, liquide, glace, fraction nuageuse LS (optional) 450 INTEGER,SAVE :: ivap, iliq, isol, irneb 451 !$OMP THREADPRIVATE(ivap, iliq, isol, irneb) 430 452 ! 431 453 ! … … 469 491 REAL dtadd(klon,klev) 470 492 493 !#ifdef CPP_XIOS 494 ! TYPE(xios_context), SAVE :: g_ctx 495 !#endif 496 471 497 #ifndef CPP_XIOS 472 498 REAL, SAVE :: missing_val=nf90_fill_real … … 602 628 ! gust-front in the grid cell. 603 629 !$OMP THREADPRIVATE(iflag_alp_wk_cond) 604 605 INTEGER, SAVE :: iflag_bug_t2m_ipslcm61=1 !606 !$OMP THREADPRIVATE(iflag_bug_t2m_ipslcm61)607 INTEGER, SAVE :: iflag_bug_t2m_stab_ipslcm61=-1 !608 !$OMP THREADPRIVATE(iflag_bug_t2m_stab_ipslcm61)609 630 610 631 REAL t_w(klon,klev),q_w(klon,klev) ! temperature and moisture profiles in the wake region … … 842 863 real zqsat(klon,klev) 843 864 ! 844 INTEGER i, k, iq, j, nsrf, ll, l 865 INTEGER i, k, iq, j, nsrf, ll, l, itr 845 866 ! 846 867 REAL t_coup … … 949 970 !IM cf. AM 081204 BEG 950 971 LOGICAL ptconvth(klon,klev) 972 973 REAL picefra(klon,klev) 951 974 !IM cf. AM 081204 END 952 975 ! … … 1020 1043 !JLD REAL zstophy, zout 1021 1044 1022 CHARACTER *20 modname1045 CHARACTER (LEN=20) :: modname='physiq_mod' 1023 1046 CHARACTER*80 abort_message 1024 1047 LOGICAL, SAVE :: ok_sync, ok_sync_omp … … 1172 1195 integer iostat 1173 1196 1197 REAL, dimension(klon,klev+1) :: tke_dissip_ave, l_mix_ave, wprime_ave 1174 1198 REAL zzz 1175 1199 !albedo SB >>> … … 1186 1210 pi = 4. * ATAN(1.) 1187 1211 1212 ! set-up call to alerte function 1213 call_alert = (alert_first_call .AND. is_master) 1214 1188 1215 ! Ehouarn: set value of jjmp1 since it is no longer a "fixed parameter" 1189 1216 jjmp1=nbp_lat … … 1196 1223 phys_tstep=NINT(pdtphys) 1197 1224 #ifdef CPP_XIOS 1198 IF (.NOT. debut .AND. is_omp_master) CALL xios_update_calendar(itap+1) 1225 ! switch to XIOS LMDZ physics context 1226 !!!!$OMP MASTER 1227 !!!! WRITE(*,*)'PHYSICS XIOS Context :', g_ctx 1228 !!!! CALL wxios_set_context() 1229 !!!!$OMP END MASTER 1230 IF (.NOT. debut .AND. is_omp_master) THEN 1231 CALL wxios_set_context() 1232 CALL xios_update_calendar(itap+1) 1233 ENDIF 1199 1234 #endif 1200 1235 … … 1230 1265 1231 1266 IF (first) THEN 1267 ivap = strIdx(tracers(:)%name, addPhase('H2O', 'g')) 1268 iliq = strIdx(tracers(:)%name, addPhase('H2O', 'l')) 1269 isol = strIdx(tracers(:)%name, addPhase('H2O', 's')) 1270 irneb= strIdx(tracers(:)%name, addPhase('H2O', 'r')) 1271 ! CALL init_etat0_limit_unstruct 1272 ! IF (.NOT. create_etat0_limit) CALL init_limit_read(days_elapsed) 1232 1273 !CR:nvelles variables convection/poches froides 1233 1274 … … 1245 1286 fact_cldcon, facttemps,ok_newmicro,iflag_radia, & 1246 1287 iflag_cld_th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 1247 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, aerosol_couple, & 1248 chemistry_couple, & 1249 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 1288 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat, aerosol_couple, & 1289 chemistry_couple, flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 1250 1290 flag_bc_internal_mixture, bl95_b0, bl95_b1, & 1251 1291 ! nv flags pour la convection et les … … 1264 1304 #endif 1265 1305 1306 !!CALL flight_init 1307 1266 1308 print*, '=================================================' 1267 1309 ! … … 1269 1311 IF ((iflag_ice_thermo.gt.0).and.(nqo==2)) THEN 1270 1312 WRITE (lunout, *) ' iflag_ice_thermo==1 requires 3 H2O tracers ', & 1271 '(H2Ov, H2Ol, H2Oi) but nqo=', nqo, '. Might as well stop here.' 1313 '(H2O_g, H2O_l, H2O_s) but nqo=', nqo, '. Might as well stop here.' 1314 abort_message='see above' 1315 CALL abort_physic(modname,abort_message,1) 1316 ENDIF 1317 1318 IF (ok_ice_sursat.AND.(iflag_ice_thermo.EQ.0)) THEN 1319 WRITE (lunout, *) ' ok_ice_sursat=y requires iflag_ice_thermo=1 as well' 1320 abort_message='see above' 1321 CALL abort_physic(modname,abort_message,1) 1322 ENDIF 1323 1324 IF (ok_ice_sursat.AND.(nqo.NE.4)) THEN 1325 WRITE (lunout, *) ' ok_ice_sursat=y requires 4 H2O tracers ', & 1326 '(H2O_g, H2O_l, H2O_s, H2O_r) but nqo=', nqo, '. Might as well stop here.' 1327 abort_message='see above' 1328 CALL abort_physic(modname,abort_message,1) 1329 ENDIF 1330 1331 IF (ok_plane_h2o.AND..NOT.ok_ice_sursat) THEN 1332 WRITE (lunout, *) ' ok_plane_h2o=y requires ok_ice_sursat=y ' 1333 abort_message='see above' 1334 CALL abort_physic(modname,abort_message,1) 1335 ENDIF 1336 1337 IF (ok_plane_contrail.AND..NOT.ok_ice_sursat) THEN 1338 WRITE (lunout, *) ' ok_plane_contrail=y requires ok_ice_sursat=y ' 1272 1339 abort_message='see above' 1273 1340 CALL abort_physic(modname,abort_message,1) … … 1303 1370 forall (k=1: nbp_lev) zmasse(:, k) = (paprs(:, k)-paprs(:, k+1)) / rg 1304 1371 1305 modname = 'physiq'1306 1372 1307 1373 IF (debut) THEN … … 1314 1380 tau_gl=86400.*tau_gl 1315 1381 WRITE(lunout,*) 'debut physiq_mod tau_gl=',tau_gl 1316 1317 iflag_bug_t2m_ipslcm61 = 11318 CALL getin_p('iflag_bug_t2m_ipslcm61', iflag_bug_t2m_ipslcm61)1319 iflag_bug_t2m_stab_ipslcm61 = -11320 CALL getin_p('iflag_bug_t2m_stab_ipslcm61', iflag_bug_t2m_stab_ipslcm61)1321 1382 1322 1383 CALL getin_p('iflag_alp_wk_cond', iflag_alp_wk_cond) … … 1347 1408 iflag_phytrac = 1 ! by default we do want to call phytrac 1348 1409 CALL getin_p('iflag_phytrac',iflag_phytrac) 1410 #ifdef CPP_Dust 1411 IF (iflag_phytrac.EQ.0) THEN 1412 WRITE(lunout,*) 'In order to run with SPLA, iflag_phytrac will be forced to 1' 1413 iflag_phytrac = 1 1414 ENDIF 1415 #endif 1349 1416 nvm_lmdz = 13 1350 1417 CALL getin_p('NVM',nvm_lmdz) … … 1404 1471 tau_overturning_th(:)=0. 1405 1472 1406 IF ( type_trac == 'inca') THEN1473 IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN 1407 1474 ! jg : initialisation jusqu'au ces variables sont dans restart 1408 1475 ccm(:,:,:) = 0. … … 1609 1676 #ifdef CPP_COSP 1610 1677 IF (ok_cosp) THEN 1611 DO k = 1, klev1612 DO i = 1, klon1613 phicosp(i,k) = pphi(i,k) + pphis(i)1614 ENDDO1615 ENDDO1678 ! DO k = 1, klev 1679 ! DO i = 1, klon 1680 ! phicosp(i,k) = pphi(i,k) + pphis(i) 1681 ! ENDDO 1682 ! ENDDO 1616 1683 CALL phys_cosp(itap,phys_tstep,freq_cosp, & 1617 1684 ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP, & … … 1631 1698 #ifdef CPP_COSP2 1632 1699 IF (ok_cosp) THEN 1633 DO k = 1, klev1634 DO i = 1, klon1635 phicosp(i,k) = pphi(i,k) + pphis(i)1636 ENDDO1637 ENDDO1700 ! DO k = 1, klev 1701 ! DO i = 1, klon 1702 ! phicosp(i,k) = pphi(i,k) + pphis(i) 1703 ! ENDDO 1704 ! ENDDO 1638 1705 CALL phys_cosp2(itap,phys_tstep,freq_cosp, & 1639 1706 ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP, & … … 1677 1744 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1678 1745 ! Nouvelle initialisation pour le rayonnement RRTM 1679 !1680 1746 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1681 1747 1682 1748 CALL iniradia(klon,klev,paprs(1,1:klev+1)) 1683 ! Initialisation des champs dans phytrac qui sont utilisés par phys_output_write 1749 1750 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1751 CALL wake_ini(rg,rd,rv,prt_level) 1752 CALL thermcell_ini(iflag_thermals,prt_level,tau_thermals,lunout, & 1753 & RG,RD,RCPD,RKAPPA,RLVTT,RETV) 1754 1755 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1756 1757 ! 1758 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1759 ! Initialisation des champs dans phytrac* qui sont utilises par phys_output_write* 1760 ! 1761 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1762 1763 #ifdef CPP_Dust 1764 ! Quand on utilise SPLA, on force iflag_phytrac=1 1765 CALL phytracr_spl_out_init() 1766 CALL phys_output_write_spl(itap, pdtphys, paprs, pphis, & 1767 pplay, lmax_th, aerosol_couple, & 1768 ok_ade, ok_aie, ivap, ok_sync, & 1769 ptconv, read_climoz, clevSTD, & 1770 ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse, & 1771 flag_aerosol, flag_aerosol_strat, ok_cdnc) 1772 #else 1773 ! phys_output_write écrit des variables traceurs seulement si iflag_phytrac == 1 1774 ! donc seulement dans ce cas on doit appeler phytrac_init() 1684 1775 IF (iflag_phytrac == 1 ) THEN 1685 1776 CALL phytrac_init() 1686 ENDIF 1687 1777 ENDIF 1688 1778 CALL phys_output_write(itap, pdtphys, paprs, pphis, & 1689 1779 pplay, lmax_th, aerosol_couple, & … … 1692 1782 ptconvth, d_u, d_t, qx, d_qx, zmasse, & 1693 1783 flag_aerosol, flag_aerosol_strat, ok_cdnc) 1784 #endif 1785 1694 1786 1695 1787 #ifdef CPP_XIOS … … 1713 1805 ENDDO 1714 1806 ENDDO 1715 1807 ELSE 1716 1808 pbl_tke(:,:,is_ave) = 0. !ym missing init : maybe must be initialized in the same way that for klon_glo==1 ?? 1717 1809 !>jyg … … 1757 1849 CALL abort_physic(modname,abort_message,1) 1758 1850 ENDIF 1851 1852 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1853 ! Initialisation pour la convection de K.E. et pour les poches froides 1854 ! 1855 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1856 1759 1857 WRITE(lunout,*)"Clef pour la convection, iflag_con=", iflag_con 1760 WRITE(lunout,*)"Clef pour le driver de la convection, ok_cvl=", & 1761 ok_cvl 1858 WRITE(lunout,*)"Clef pour le driver de la convection, ok_cvl=", ok_cvl 1762 1859 ! 1763 1860 !KE43 … … 1806 1903 d_s_wk(:) = 0. 1807 1904 d_dens_wk(:) = 0. 1808 ENDIF 1905 ENDIF ! (iflag_wake>=1) 1809 1906 1810 1907 ! do i = 1,klon … … 1817 1914 ! ALLOCATE(lonGCM(0), latGCM(0)) 1818 1915 ! ALLOCATE(iGCM(0), jGCM(0)) 1819 ENDIF 1820 1916 ENDIF ! (iflag_con.GE.3) 1917 ! 1821 1918 DO i=1,klon 1822 1919 rugoro(i) = f_rugoro * MAX(1.0e-05, zstd(i)*zsig(i)/2.0) … … 1887 1984 !$OMP BARRIER 1888 1985 missing_val=missing_val_omp 1986 ! 1987 ! Now we activate some double radiation call flags only if some 1988 ! diagnostics are requested, otherwise there is no point in doing this 1989 IF (is_master) THEN 1990 !--setting up swaero_diag to TRUE in XIOS case 1991 IF (xios_field_is_active("topswad").OR.xios_field_is_active("topswad0").OR. & 1992 xios_field_is_active("solswad").OR.xios_field_is_active("solswad0").OR. & 1993 xios_field_is_active("topswai").OR.xios_field_is_active("solswai").OR. & 1994 (iflag_rrtm==1.AND.(xios_field_is_active("toplwad").OR.xios_field_is_active("toplwad0").OR. & 1995 xios_field_is_active("sollwad").OR.xios_field_is_active("sollwad0")))) & 1996 !!!--for now these fields are not in the XML files so they are omitted 1997 !!! xios_field_is_active("toplwai").OR.xios_field_is_active("sollwai") !))) & 1998 swaero_diag=.TRUE. 1999 2000 !--setting up swaerofree_diag to TRUE in XIOS case 2001 IF (xios_field_is_active("SWdnSFCcleanclr").OR.xios_field_is_active("SWupSFCcleanclr").OR. & 2002 xios_field_is_active("SWupTOAcleanclr").OR.xios_field_is_active("rsucsaf").OR. & 2003 xios_field_is_active("rsdcsaf") .OR. xios_field_is_active("LWdnSFCcleanclr").OR. & 2004 xios_field_is_active("LWupTOAcleanclr")) & 2005 swaerofree_diag=.TRUE. 2006 2007 !--setting up dryaod_diag to TRUE in XIOS case 2008 DO naero = 1, naero_tot-1 2009 IF (xios_field_is_active("dryod550_"//name_aero_tau(naero))) dryaod_diag=.TRUE. 2010 ENDDO 2011 ! 2012 !--setting up ok_4xCO2atm to TRUE in XIOS case 2013 IF (xios_field_is_active("rsut4co2").OR.xios_field_is_active("rlut4co2").OR. & 2014 xios_field_is_active("rsutcs4co2").OR.xios_field_is_active("rlutcs4co2").OR. & 2015 xios_field_is_active("rsu4co2").OR.xios_field_is_active("rsucs4co2").OR. & 2016 xios_field_is_active("rsd4co2").OR.xios_field_is_active("rsdcs4co2").OR. & 2017 xios_field_is_active("rlu4co2").OR.xios_field_is_active("rlucs4co2").OR. & 2018 xios_field_is_active("rld4co2").OR.xios_field_is_active("rldcs4co2")) & 2019 ok_4xCO2atm=.TRUE. 2020 ENDIF 2021 !$OMP BARRIER 2022 CALL bcast(swaero_diag) 2023 CALL bcast(swaerofree_diag) 2024 CALL bcast(dryaod_diag) 2025 CALL bcast(ok_4xCO2atm) 1889 2026 #endif 1890 1891 2027 ! 1892 2028 CALL printflag( tabcntr0,radpas,ok_journe, & 1893 2029 ok_instan, ok_region ) 1894 2030 ! 1895 2031 ! 1896 !1897 2032 ! Prescrire l'ozone dans l'atmosphere 1898 !1899 2033 ! 1900 2034 !c DO i = 1, klon … … 1904 2038 !c ENDDO 1905 2039 ! 1906 IF ( type_trac == 'inca') THEN2040 IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN ! ModThL 1907 2041 #ifdef INCA 1908 2042 CALL VTe(VTphysiq) … … 1911 2045 WRITE(lunout,*) 'initial time chemini', days_elapsed, calday 1912 2046 1913 CALL chemini( & 1914 rg, & 1915 ra, & 1916 cell_area, & 1917 latitude_deg, & 1918 longitude_deg, & 1919 presnivs, & 1920 calday, & 1921 klon, & 1922 nqtot, & 1923 nqo, & 1924 pdtphys, & 1925 annee_ref, & 1926 year_cur, & 1927 day_ref, & 1928 day_ini, & 1929 start_time, & 1930 itau_phy, & 1931 date0, & 1932 io_lon, & 1933 io_lat, & 1934 chemistry_couple, & 1935 init_source, & 1936 init_tauinca, & 1937 init_pizinca, & 1938 init_cginca, & 1939 init_ccminca) 2047 call init_const_lmdz( & 2048 ndays, nbsrf, is_oce,is_sic, is_ter,is_lic, calend, & 2049 config_inca) 2050 2051 CALL init_inca_geometry( & 2052 longitude, latitude, & 2053 boundslon, boundslat, & 2054 cell_area, ind_cell_glo) 2055 2056 if (grid_type==unstructured) THEN 2057 CALL chemini( pplay, & 2058 nbp_lon, nbp_lat, & 2059 latitude_deg, & 2060 longitude_deg, & 2061 presnivs, & 2062 calday, & 2063 klon, & 2064 nqtot, & 2065 nqo+nqCO2, & 2066 pdtphys, & 2067 annee_ref, & 2068 year_cur, & 2069 day_ref, & 2070 day_ini, & 2071 start_time, & 2072 itau_phy, & 2073 date0, & 2074 chemistry_couple, & 2075 init_source, & 2076 init_tauinca, & 2077 init_pizinca, & 2078 init_cginca, & 2079 init_ccminca) 2080 ELSE 2081 CALL chemini( pplay, & 2082 nbp_lon, nbp_lat, & 2083 latitude_deg, & 2084 longitude_deg, & 2085 presnivs, & 2086 calday, & 2087 klon, & 2088 nqtot, & 2089 nqo+nqCO2, & 2090 pdtphys, & 2091 annee_ref, & 2092 year_cur, & 2093 day_ref, & 2094 day_ini, & 2095 start_time, & 2096 itau_phy, & 2097 date0, & 2098 chemistry_couple, & 2099 init_source, & 2100 init_tauinca, & 2101 init_pizinca, & 2102 init_cginca, & 2103 init_ccminca, & 2104 io_lon, & 2105 io_lat) 2106 ENDIF 1940 2107 1941 2108 … … 1952 2119 #endif 1953 2120 ENDIF 1954 IF (type_trac == 'repr') THEN 2121 ! 2122 IF (ANY(types_trac == 'repr')) THEN 1955 2123 #ifdef REPROBUS 1956 2124 CALL chemini_rep( & … … 2000 2168 SFRWL(6)=3.02191470E-02 2001 2169 END SELECT 2002 2003 2004 2170 !albedo SB <<< 2005 2171 … … 2040 2206 2041 2207 2208 2042 2209 ENDIF 2043 2210 ! … … 2055 2222 ENDIF 2056 2223 ENDIF 2224 ! switch to XIOS LMDZ physics context just in case 2225 !$OMP MASTER 2226 !!!!#ifdef CPP_XIOS 2227 !!!! WRITE(*,*)'PHYSICS XIOS Context :', g_ctx 2228 !!!! CALL xios_set_current_context(g_ctx) 2229 !!!!#endif 2230 !$OMP END MASTER 2231 2057 2232 ! 2058 2233 ! … … 2066 2241 2067 2242 ! Update time and other variables in Reprobus 2068 IF ( type_trac == 'repr') THEN2243 IF (ANY(types_trac == 'repr')) THEN 2069 2244 #ifdef REPROBUS 2070 2245 CALL Init_chem_rep_xjour(jD_cur-jD_ref+day_ref) … … 2124 2299 ! RomP <<< 2125 2300 ENDIF 2126 2127 2301 ! 2128 2302 ! Ne pas affecter les valeurs entrees de u, v, h, et q … … 2136 2310 ql_seri(i,k) = qx(i,k,iliq) 2137 2311 !CR: ATTENTION, on rajoute la variable glace 2138 IF (nqo. eq.2) THEN2312 IF (nqo.EQ.2) THEN !--vapour and liquid only 2139 2313 qs_seri(i,k) = 0. 2140 ELSE IF (nqo.eq.3) THEN 2314 rneb_seri(i,k) = 0. 2315 ELSE IF (nqo.EQ.3) THEN !--vapour, liquid and ice 2141 2316 qs_seri(i,k) = qx(i,k,isol) 2317 rneb_seri(i,k) = 0. 2318 ELSE IF (nqo.EQ.4) THEN !--vapour, liquid, ice and rneb 2319 qs_seri(i,k) = qx(i,k,isol) 2320 rneb_seri(i,k) = qx(i,k,irneb) 2142 2321 ENDIF 2143 2322 ENDDO … … 2155 2334 2156 2335 tke0(:,:)=pbl_tke(:,:,is_ave) 2157 !CR:Nombre de traceurs de l'eau: nqo 2158 ! IF (nqtot.GE.3) THEN 2159 IF (nqtot.GE.(nqo+1)) THEN 2160 ! DO iq = 3, nqtot 2161 DO iq = nqo+1, nqtot 2336 IF (nqtot > nqo) THEN 2337 ! water isotopes are not included in tr_seri 2338 itr = 0 2339 DO iq = 1, nqtot 2340 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 2341 itr = itr+1 2162 2342 DO k = 1, klev 2163 2343 DO i = 1, klon 2164 ! tr_seri(i,k,iq-2) = qx(i,k,iq) 2165 tr_seri(i,k,iq-nqo) = qx(i,k,iq) 2344 tr_seri(i,k,itr) = qx(i,k,iq) 2166 2345 ENDDO 2167 2346 ENDDO 2168 2347 ENDDO 2169 2348 ELSE 2170 DO k = 1, klev 2171 DO i = 1, klon 2172 tr_seri(i,k,1) = 0.0 2173 ENDDO 2174 ENDDO 2349 ! DC: make sure the final "1" index was meant for 1st H2O phase (vapor) !!! 2350 tr_seri(:,:,strIdx(tracers(:)%name,addPhase('H2O','g'))) = 0.0 2175 2351 ENDIF 2176 2352 ! … … 2179 2355 IF (debut) THEN 2180 2356 WRITE(lunout,*)' WARNING: tr_ancien initialised to tr_seri' 2181 DO iq = nqo+1, nqtot 2182 tr_ancien(:,:,iq-nqo)=tr_seri(:,:,iq-nqo) 2183 ENDDO 2357 itr = 0 2358 do iq = 1, nqtot 2359 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 2360 itr = itr+1 2361 tr_ancien(:,:,itr)=tr_seri(:,:,itr) 2362 enddo 2184 2363 ENDIF 2185 2364 ! … … 2212 2391 d_qs_dyn2d(:)=(zx_tmp_fi2d(:)-prsw_ancien(:))/phys_tstep 2213 2392 ! !! RomP >>> td dyn traceur 2214 IF (nqtot.GT.nqo) THEN ! jyg 2215 DO iq = nqo+1, nqtot ! jyg 2216 d_tr_dyn(:,:,iq-nqo)=(tr_seri(:,:,iq-nqo)-tr_ancien(:,:,iq-nqo))/phys_tstep ! jyg 2217 ENDDO 2218 ENDIF 2393 IF (nqtot > nqo) d_tr_dyn(:,:,:)=(tr_seri(:,:,:)-tr_ancien(:,:,:))/phys_tstep 2219 2394 ! !! RomP <<< 2395 !!d_rneb_dyn(:,:)=(rneb_seri(:,:)-rneb_ancien(:,:))/phys_tstep 2396 d_rneb_dyn(:,:)=0.0 2220 2397 ELSE 2221 2398 d_u_dyn(:,:) = 0.0 … … 2229 2406 d_qs_dyn2d(:) = 0.0 2230 2407 ! !! RomP >>> td dyn traceur 2231 IF (nqtot.GT.nqo) THEN ! jyg 2232 DO iq = nqo+1, nqtot ! jyg 2233 d_tr_dyn(:,:,iq-nqo)= 0.0 ! jyg 2234 ENDDO 2235 ENDIF 2408 IF (nqtot > nqo) d_tr_dyn(:,:,:)= 0.0 2236 2409 ! !! RomP <<< 2410 d_rneb_dyn(:,:)=0.0 2237 2411 ancien_ok = .TRUE. 2238 2412 ENDIF … … 2463 2637 ! s_therm, s_trmb1, s_trmb2, s_trmb3, 2464 2638 ! zu10m, zv10m, fder, 2465 ! zxqsurf, rh2m, zxfluxu, zxfluxv, 2639 ! zxqsurf, delta_qsurf, 2640 ! rh2m, zxfluxu, zxfluxv, 2466 2641 ! frugs, agesno, fsollw, fsolsw, 2467 2642 ! d_ts, fevap, fluxlat, t2m, … … 2513 2688 debut, lafin, & 2514 2689 longitude_deg, latitude_deg, rugoro, zrmu0, & 2515 zsig, sollwdown, pphi, cldt, &2516 rain_fall, snow_fall, solsw, sol lw, &2690 sollwdown, cldt, & 2691 rain_fall, snow_fall, solsw, solswfdiff, sollw, & 2517 2692 gustiness, & 2518 2693 t_seri, q_seri, u_seri, v_seri, & … … 2524 2699 !albedo SB <<< 2525 2700 cdragh, cdragm, u1, v1, & 2701 beta_aridity, & 2526 2702 !albedo SB >>> 2527 2703 ! albsol1, albsol2, sens, evap, & … … 2529 2705 !albedo SB <<< 2530 2706 albsol3_lic,runoff, snowhgt, qsnow, to_ice, sissnow, & 2531 zxtsol, zxfluxlat, zt2m, qsat2m, &2707 zxtsol, zxfluxlat, zt2m, qsat2m, zn2mout, & 2532 2708 d_t_vdf, d_q_vdf, d_u_vdf, d_v_vdf, d_t_diss, & 2533 2709 !nrlmd< … … 2550 2726 s_therm, s_trmb1, s_trmb2, s_trmb3, & 2551 2727 zustar, zu10m, zv10m, fder, & 2552 zxqsurf, rh2m, zxfluxu, zxfluxv, &2728 zxqsurf, delta_qsurf, rh2m, zxfluxu, zxfluxv, & 2553 2729 z0m, z0h, agesno, fsollw, fsolsw, & 2554 2730 d_ts, fevap, fluxlat, t2m, & … … 2576 2752 !>jyg 2577 2753 ENDIF 2578 2579 !add limitation for t,q at and wind at 10m2580 if ( iflag_bug_t2m_ipslcm61 == 0 ) THEN2581 CALL borne_var_surf( klon,klev,nbsrf, &2582 iflag_bug_t2m_stab_ipslcm61, &2583 t_seri(:,1),q_seri(:,1),u_seri(:,1),v_seri(:,1), &2584 ftsol,zxqsurf,pctsrf,paprs, &2585 t2m, q2m, u10m, v10m, &2586 zt2m_cor, zq2m_cor, zu10m_cor, zv10m_cor, &2587 zrh2m_cor, zqsat2m_cor)2588 ELSE2589 zt2m_cor(:)=zt2m(:)2590 zq2m_cor(:)=zq2m(:)2591 zu10m_cor(:)=zu10m(:)2592 zv10m_cor(:)=zv10m(:)2593 zqsat2m_cor=999.9992594 ENDIF2595 2754 2596 2755 !--------------------------------------------------------------------- … … 2797 2956 ENDDO 2798 2957 ELSE 2799 t_w(:,:) = t_seri(:,:)2958 t_w(:,:) = t_seri(:,:) 2800 2959 q_w(:,:) = q_seri(:,:) 2801 2960 t_x(:,:) = t_seri(:,:) … … 2873 3032 ! 2874 3033 !>jyg 2875 IF ( type_trac == 'repr') THEN3034 IF (ANY(types_trac == 'repr')) THEN 2876 3035 nbtr_tmp=ntra 2877 3036 ELSE … … 3013 3172 3014 3173 DO i = 1, klon 3015 ema_pcb(i) = paprs(i,ibas_con(i)) 3174 ! C Risi modif: pour éviter pb de dépassement d'indice dans les cas 3175 ! où i n'est pas un point convectif et donc ibas_con(i)=0 3176 ! c'est un pb indépendant des isotopes 3177 if (ibas_con(i) > 0) then 3178 ema_pcb(i) = paprs(i,ibas_con(i)) 3179 else 3180 ema_pcb(i) = 0.0 3181 endif 3016 3182 ENDDO 3017 3183 DO i = 1, klon … … 3439 3605 ! Computation of ratqs, the width (normalized) of the subrid scale 3440 3606 ! water distribution 3607 3608 tke_dissip_ave(:,:)=0. 3609 l_mix_ave(:,:)=0. 3610 wprime_ave(:,:)=0. 3611 3612 DO nsrf = 1, nbsrf 3613 DO i = 1, klon 3614 tke_dissip_ave(i,:) = tke_dissip_ave(i,:) + tke_dissip(i,:,nsrf)*pctsrf(i,nsrf) 3615 l_mix_ave(i,:) = l_mix_ave(i,:) + l_mix(i,:,nsrf)*pctsrf(i,nsrf) 3616 wprime_ave(i,:) = wprime_ave(i,:) + wprime(i,:,nsrf)*pctsrf(i,nsrf) 3617 ENDDO 3618 ENDDO 3619 3441 3620 CALL calcratqs(klon,klev,prt_level,lunout, & 3442 3621 iflag_ratqs,iflag_con,iflag_cld_th,pdtphys, & 3443 3622 ratqsbas,ratqshaut,ratqsp0, ratqsdp, & 3444 tau_ratqs,fact_cldcon, &3623 tau_ratqs,fact_cldcon,wake_s, wake_deltaq, & 3445 3624 ptconv,ptconvth,clwcon0th, rnebcon0th, & 3446 paprs,pplay, q_seri,zqsat,fm_therm, &3447 ratqs,ratqsc)3448 3625 paprs,pplay,t_seri,q_seri, qtc_cv, sigt_cv, zqsat, & 3626 pbl_tke(:,:,is_ave),tke_dissip_ave,l_mix_ave,wprime_ave,t2m,q2m,fm_therm, & 3627 ratqs,ratqsc,ratqs_inter) 3449 3628 3450 3629 ! … … 3456 3635 ENDIF 3457 3636 ! 3637 3638 picefra(:,:)=0. 3639 3640 IF (ok_new_lscp) THEN 3641 3642 !--mise à jour de flight_m et flight_h2o dans leur module 3643 IF (ok_plane_h2o .OR. ok_plane_contrail) THEN 3644 CALL airplane(debut,pphis,pplay,paprs,t_seri) 3645 ENDIF 3646 3647 CALL lscp(phys_tstep,missing_val,paprs,pplay, & 3648 t_seri, q_seri,ptconv,ratqs, & 3649 d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneb_seri, & 3650 cldliq, picefra, rain_lsc, snow_lsc, & 3651 pfrac_impa, pfrac_nucl, pfrac_1nucl, & 3652 frac_impa, frac_nucl, beta_prec_fisrt, & 3653 prfl, psfl, rhcl, & 3654 zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cld_th, & 3655 iflag_ice_thermo, ok_ice_sursat) 3656 3657 ELSE 3658 3458 3659 CALL fisrtilp(phys_tstep,paprs,pplay, & 3459 3660 t_seri, q_seri,ptconv,ratqs, & … … 3465 3666 zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cld_th, & 3466 3667 iflag_ice_thermo) 3668 3669 ENDIF 3467 3670 ! 3468 3671 WHERE (rain_lsc < 0) rain_lsc = 0. … … 3487 3690 ENDDO 3488 3691 ENDDO 3489 IF (nqo ==3) THEN3692 IF (nqo >= 3) THEN 3490 3693 DO k = 1, klev 3491 3694 DO i = 1, klon … … 3704 3907 ENDIF 3705 3908 zx_rh(i,k) = q_seri(i,k)/zx_qs 3909 IF (iflag_ice_thermo .GT. 0) THEN 3910 zx_rhl(i,k) = q_seri(i,k)/(qsatl(zx_t)/pplay(i,k)) 3911 zx_rhi(i,k) = q_seri(i,k)/(qsats(zx_t)/pplay(i,k)) 3912 ENDIF 3706 3913 zqsat(i,k)=zx_qs 3707 3914 ENDDO … … 3730 3937 ENDDO 3731 3938 3732 IF ( type_trac == 'inca') THEN3939 IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN ! ModThL 3733 3940 #ifdef INCA 3734 3941 CALL VTe(VTphysiq) … … 3773 3980 nbp_lon, & 3774 3981 nbp_lat-1, & 3775 tr_seri , &3982 tr_seri(:,:,1+nqCO2:nbtr), & 3776 3983 ftsol, & 3777 3984 paprs, & … … 3784 3991 CALL VTe(VTinca) 3785 3992 CALL VTb(VTphysiq) 3786 #endif 3787 ENDIF !type_trac = inca 3788 IF ( type_trac == 'repr') THEN3993 #endif 3994 ENDIF !type_trac = inca or inco 3995 IF (ANY(types_trac == 'repr')) THEN 3789 3996 #ifdef REPROBUS 3790 3997 !CALL chemtime_rep(itap+itau_phy-1, date0, dtime, itap) … … 3956 4163 3957 4164 IF (ok_newmicro) then 3958 IF (iflag_rrtm.NE.0) THEN 4165 ! AI IF (iflag_rrtm.NE.0) THEN 4166 IF (iflag_rrtm.EQ.1) THEN 3959 4167 #ifdef CPP_RRTM 3960 4168 IF (ok_cdnc.AND.NRADLP.NE.3) THEN … … 3970 4178 ENDIF 3971 4179 CALL newmicro (flag_aerosol, ok_cdnc, bl95_b0, bl95_b1, & 3972 paprs, pplay, t_seri, cldliq, cldfra, &4180 paprs, pplay, t_seri, cldliq, picefra, cldfra, & 3973 4181 cldtau, cldemi, cldh, cldl, cldm, cldt, cldq, & 3974 4182 flwp, fiwp, flwc, fiwc, & 3975 4183 mass_solu_aero, mass_solu_aero_pi, & 3976 cldtaupi, re, fl, ref_liq, ref_ice, &4184 cldtaupi, latitude_deg, re, fl, ref_liq, ref_ice, & 3977 4185 ref_liq_pi, ref_ice_pi) 3978 4186 ELSE 3979 4187 CALL nuage (paprs, pplay, & 3980 t_seri, cldliq, cldfra, cldtau, cldemi, &4188 t_seri, cldliq, picefra, cldfra, cldtau, cldemi, & 3981 4189 cldh, cldl, cldm, cldt, cldq, & 3982 4190 ok_aie, & … … 4114 4322 ! 4115 4323 !--interactive CO2 in ppm from carbon cycle 4116 IF (carbon_cycle_rad.AND..NOT.debut) THEN 4117 RCO2=RCO2_glo 4118 ENDIF 4324 IF (carbon_cycle_rad) RCO2=RCO2_glo 4119 4325 ! 4120 4326 IF (prt_level .GE.10) THEN … … 4130 4336 t_seri,q_seri,wo, & 4131 4337 cldfrarad, cldemirad, cldtaurad, & 4132 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, & 4133 flag_aerosol, & 4134 flag_aerosol_strat, flag_aer_feedback, & 4338 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, flag_volc_surfstrat, & 4339 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 4135 4340 tau_aero, piz_aero, cg_aero, & 4136 4341 tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, & … … 4143 4348 heat,heat0,cool,cool0,albpla, & 4144 4349 heat_volc,cool_volc, & 4145 topsw,toplw,solsw,sol lw, &4350 topsw,toplw,solsw,solswfdiff,sollw, & 4146 4351 sollwdown, & 4147 4352 topsw0,toplw0,solsw0,sollw0, & … … 4217 4422 t_seri,q_seri,wo, & 4218 4423 cldfrarad, cldemirad, cldtaurad, & 4219 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, & 4220 flag_aerosol, & 4221 flag_aerosol_strat, flag_aer_feedback, & 4424 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, flag_volc_surfstrat, & 4425 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 4222 4426 tau_aero, piz_aero, cg_aero, & 4223 4427 tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, & … … 4230 4434 heatp,heat0p,coolp,cool0p,albplap, & 4231 4435 heat_volc,cool_volc, & 4232 topswp,toplwp,solswp,sol lwp, &4436 topswp,toplwp,solswp,solswfdiffp,sollwp, & 4233 4437 sollwdownp, & 4234 4438 topsw0p,toplw0p,solsw0p,sollw0p, & … … 4248 4452 ZLWFT0_i, ZFLDN0, ZFLUP0, & 4249 4453 ZSWFT0_i, ZFSDN0, ZFSUP0) 4250 endif!ok_4xCO2atm4454 ENDIF !ok_4xCO2atm 4251 4455 ENDIF ! aerosol_couple 4252 4456 itaprad = 0 … … 4629 4833 4630 4834 CALL tend_to_tke(pdtphys,paprs,exner,t_seri,u_seri,v_seri,dtadd,duadd,dvadd,pctsrf,pbl_tke) 4631 4835 ! 4836 ! Prevent pbl_tke_w from becoming negative 4837 wake_delta_pbl_tke(:,:,:) = max(wake_delta_pbl_tke(:,:,:), -pbl_tke(:,:,:)) 4838 ! 4632 4839 4633 4840 ENDIF … … 4700 4907 #ifdef CPP_COSPV2 4701 4908 IF (itap.eq.1.or.MOD(itap,NINT(freq_cosp/phys_tstep)).EQ.0) THEN 4909 ! IF (MOD(itap,NINT(freq_cosp/phys_tstep)).EQ.0) THEN 4702 4910 4703 4911 IF (prt_level .GE.10) THEN 4704 4912 print*,'freq_cosp',freq_cosp 4705 4913 ENDIF 4914 DO k = 1, klev 4915 DO i = 1, klon 4916 phicosp(i,k) = pphi(i,k) + pphis(i) 4917 ENDDO 4918 ENDDO 4706 4919 mr_ozone=wo(:, :, 1) * dobson_u * 1e3 / zmasse 4707 4920 print*,'Dans physiq.F avant appel ' … … 4755 4968 ! 4756 4969 4757 IF ( type_trac=='repr') THEN4970 IF (ANY(types_trac=='repr')) THEN 4758 4971 !MM pas d'impact, car on recupere q_seri,tr_seri,t_seri via phys_local_var_mod 4759 4972 !MM dans Reprobus … … 4766 4979 ELSE 4767 4980 sh_in(:,:) = qx(:,:,ivap) 4768 ch_in(:,:) = qx(:,:,iliq) 4769 ENDIF 4770 4771 IF (iflag_phytrac == 1 ) THEN 4981 IF (nqo >= 3) THEN 4982 ch_in(:,:) = qx(:,:,iliq) + qx(:,:,isol) 4983 ELSE 4984 ch_in(:,:) = qx(:,:,iliq) 4985 ENDIF 4986 ENDIF 4772 4987 4773 4988 #ifdef CPP_Dust 4774 CALL phytracr_spl ( debut,lafin , jD_cur,jH_cur,iflag_con, & ! I 4989 ! Avec SPLA, iflag_phytrac est forcé =1 4990 CALL phytracr_spl ( debut,lafin , jD_cur,jH_cur,iflag_con, & ! I 4775 4991 pdtphys,ftsol, & ! I 4776 4992 t,q_seri,paprs,pplay,RHcl, & ! I … … 4788 5004 4789 5005 #else 4790 4791 CALL phytrac ( &5006 IF (iflag_phytrac == 1 ) THEN 5007 CALL phytrac ( & 4792 5008 itap, days_elapsed+1, jH_cur, debut, & 4793 5009 lafin, phys_tstep, u, v, t, & … … 4826 5042 4827 5043 #endif 5044 ENDIF ! (iflag_phytrac=1) 4828 5045 4829 5046 #endif 4830 ENDIF ! (iflag_phytrac=1)5047 !ENDIF ! (iflag_phytrac=1) 4831 5048 4832 5049 IF (offline) THEN … … 4849 5066 ! Calculer le transport de l'eau et de l'energie (diagnostique) 4850 5067 ! 4851 CALL transp (paprs,zxtsol, & 4852 t_seri, q_seri, ql_seri, qs_seri, u_seri, v_seri, zphi, & 4853 ve, vq, ue, uq, vwat, uwat) 5068 CALL transp (paprs,zxtsol, t_seri, q_seri, ql_seri, qs_seri, u_seri, v_seri, zphi, & 5069 ue, ve, uq, vq, uwat, vwat) 4854 5070 ! 4855 5071 !IM global posePB BEG 4856 5072 IF(1.EQ.0) THEN 4857 5073 ! 4858 CALL transp_lay (paprs,zxtsol, & 4859 t_seri, q_seri, u_seri, v_seri, zphi, & 5074 CALL transp_lay (paprs,zxtsol, t_seri, q_seri, u_seri, v_seri, zphi, & 4860 5075 ve_lay, vq_lay, ue_lay, uq_lay) 4861 5076 ! 4862 5077 ENDIF !(1.EQ.0) THEN 4863 5078 !IM global posePB END 5079 ! 4864 5080 ! Accumuler les variables a stocker dans les fichiers histoire: 4865 5081 ! … … 4872 5088 d_t_ec(:,:)=0. 4873 5089 forall (k=1: nbp_lev) exner(:, k) = (pplay(:, k)/paprs(:,1))**RKAPPA 4874 CALL ener_conserv(klon,klev,pdtphys,u,v,t,qx (:,:,ivap),qx(:,:,iliq),qx(:,:,isol), &5090 CALL ener_conserv(klon,klev,pdtphys,u,v,t,qx,ivap,iliq,isol, & 4875 5091 u_seri,v_seri,t_seri,q_seri,ql_seri,qs_seri,pbl_tke(:,:,is_ave)-tke0(:,:), & 4876 5092 zmasse,exner,d_t_ec) … … 4905 5121 ENDDO 4906 5122 ! 4907 IF ( type_trac == 'inca') THEN5123 IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN 4908 5124 #ifdef INCA 4909 5125 CALL VTe(VTphysiq) … … 4914 5130 pplay, & 4915 5131 t_seri, & 4916 tr_seri , &5132 tr_seri(:,:,1+nqCO2:nbtr), & 4917 5133 nbtr, & 4918 5134 paprs, & … … 4922 5138 pphis, & 4923 5139 zx_rh, & 4924 aps, bps, ap, bp )5140 aps, bps, ap, bp, lafin) 4925 5141 4926 5142 CALL VTe(VTinca) … … 4929 5145 ENDIF 4930 5146 5147 IF (ANY(types_trac == 'repr')) THEN 5148 #ifdef REPROBUS 5149 CALL coord_hyb_rep(paprs, pplay, aps, bps, ap, bp, cell_area) 5150 #endif 5151 ENDIF 4931 5152 4932 5153 ! … … 4952 5173 d_qx(i,k,iliq) = ( ql_seri(i,k) - qx(i,k,iliq) ) / phys_tstep 4953 5174 !CR: on ajoute le contenu en glace 4954 IF (nqo .eq.3) THEN5175 IF (nqo >= 3) THEN 4955 5176 d_qx(i,k,isol) = ( qs_seri(i,k) - qx(i,k,isol) ) / phys_tstep 5177 ENDIF 5178 !--ice_sursat: nqo=4, on ajoute rneb 5179 IF (nqo == 4) THEN 5180 d_qx(i,k,irneb) = ( rneb_seri(i,k) - qx(i,k,irneb) ) / phys_tstep 4956 5181 ENDIF 4957 5182 ENDDO 4958 5183 ENDDO 4959 5184 ! 4960 !CR: nb de traceurs eau: nqo4961 ! IF (nqtot.GE.3) THEN4962 IF (nqtot.GE.(nqo+1)) THEN4963 ! DO iq = 3, nqtot4964 DO iq = nqo+1, nqtot5185 IF (nqtot > nqo) THEN 5186 itr = 0 5187 DO iq = 1, nqtot 5188 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 5189 itr = itr+1 4965 5190 DO k = 1, klev 4966 5191 DO i = 1, klon 4967 ! d_qx(i,k,iq) = ( tr_seri(i,k,iq-2) - qx(i,k,iq) ) / phys_tstep 4968 d_qx(i,k,iq) = ( tr_seri(i,k,iq-nqo) - qx(i,k,iq) ) / phys_tstep 5192 d_qx(i,k,iq) = ( tr_seri(i,k,itr) - qx(i,k,iq) ) / phys_tstep 4969 5193 ENDDO 4970 5194 ENDDO … … 5003 5227 ql_ancien(:,:) = ql_seri(:,:) 5004 5228 qs_ancien(:,:) = qs_seri(:,:) 5229 rneb_ancien(:,:) = rneb_seri(:,:) 5005 5230 CALL water_int(klon,klev,q_ancien,zmasse,prw_ancien) 5006 5231 CALL water_int(klon,klev,ql_ancien,zmasse,prlw_ancien) 5007 5232 CALL water_int(klon,klev,qs_ancien,zmasse,prsw_ancien) 5008 5233 ! !! RomP >>> 5009 !CR: nb de traceurs eau: nqo 5010 IF (nqtot.GT.nqo) THEN 5011 DO iq = nqo+1, nqtot 5012 tr_ancien(:,:,iq-nqo) = tr_seri(:,:,iq-nqo) 5013 ENDDO 5014 ENDIF 5234 IF (nqtot > nqo) tr_ancien(:,:,:) = tr_seri(:,:,:) 5015 5235 ! !! RomP <<< 5016 5236 !========================================================================== … … 5128 5348 CALL phys_output_write_spl(itap, pdtphys, paprs, pphis, & 5129 5349 pplay, lmax_th, aerosol_couple, & 5130 ok_ade, ok_aie, ivap, ok_sync, &5350 ok_ade, ok_aie, ivap, ok_sync, & 5131 5351 ptconv, read_climoz, clevSTD, & 5132 5352 ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse, & … … 5147 5367 #endif 5148 5368 5149 ! On remet des variables a .false. apres un premier appel5150 IF (debut) THEN5151 #ifdef CPP_XIOS5152 swaero_diag=.FALSE.5153 swaerofree_diag=.FALSE.5154 dryaod_diag=.FALSE.5155 ok_4xCO2atm= .FALSE.5156 ! write (lunout,*)'ok_4xCO2atm= ',swaero_diag, swaerofree_diag, dryaod_diag, ok_4xCO2atm5157 5158 IF (is_master) THEN5159 !--setting up swaero_diag to TRUE in XIOS case5160 IF (xios_field_is_active("topswad").OR.xios_field_is_active("topswad0").OR. &5161 xios_field_is_active("solswad").OR.xios_field_is_active("solswad0").OR. &5162 xios_field_is_active("topswai").OR.xios_field_is_active("solswai").OR. &5163 (iflag_rrtm==1.AND.(xios_field_is_active("toplwad").OR.xios_field_is_active("toplwad0").OR. &5164 xios_field_is_active("sollwad").OR.xios_field_is_active("sollwad0")))) &5165 !!!--for now these fields are not in the XML files so they are omitted5166 !!! xios_field_is_active("toplwai").OR.xios_field_is_active("sollwai") !))) &5167 swaero_diag=.TRUE.5168 5169 !--setting up swaerofree_diag to TRUE in XIOS case5170 IF (xios_field_is_active("SWdnSFCcleanclr").OR.xios_field_is_active("SWupSFCcleanclr").OR. &5171 xios_field_is_active("SWupTOAcleanclr").OR.xios_field_is_active("rsucsaf").OR. &5172 xios_field_is_active("rsdcsaf") .OR. xios_field_is_active("LWdnSFCcleanclr").OR. &5173 xios_field_is_active("LWupTOAcleanclr")) &5174 swaerofree_diag=.TRUE.5175 5176 !--setting up dryaod_diag to TRUE in XIOS case5177 DO naero = 1, naero_tot-15178 IF (xios_field_is_active("dryod550_"//name_aero_tau(naero))) dryaod_diag=.TRUE.5179 ENDDO5180 !5181 !--setting up ok_4xCO2atm to TRUE in XIOS case5182 IF (xios_field_is_active("rsut4co2").OR.xios_field_is_active("rlut4co2").OR. &5183 xios_field_is_active("rsutcs4co2").OR.xios_field_is_active("rlutcs4co2").OR. &5184 xios_field_is_active("rsu4co2").OR.xios_field_is_active("rsucs4co2").OR. &5185 xios_field_is_active("rsd4co2").OR.xios_field_is_active("rsdcs4co2").OR. &5186 xios_field_is_active("rlu4co2").OR.xios_field_is_active("rlucs4co2").OR. &5187 xios_field_is_active("rld4co2").OR.xios_field_is_active("rldcs4co2")) &5188 ok_4xCO2atm=.TRUE.5189 ENDIF5190 !$OMP BARRIER5191 CALL bcast(swaero_diag)5192 CALL bcast(swaerofree_diag)5193 CALL bcast(dryaod_diag)5194 CALL bcast(ok_4xCO2atm)5195 ! write (lunout,*)'ok_4xCO2atm= ',swaero_diag, swaerofree_diag, dryaod_diag, ok_4xCO2atm5196 #endif5197 ENDIF5198 5199 5369 !==================================================================== 5200 5370 ! Arret du modele apres hgardfou en cas de detection d'un … … 5214 5384 ! 5215 5385 5386 ! Disabling calls to the prt_alerte function 5387 alert_first_call = .FALSE. 5388 5216 5389 IF (lafin) THEN 5217 5390 itau_phy = itau_phy + itap … … 5232 5405 #ifdef CPP_XIOS 5233 5406 IF (is_omp_master) CALL xios_context_finalize 5407 5408 #ifdef INCA 5409 if (ANY(types_trac == 'inca' )) then 5410 IF (is_omp_master .and. grid_type==unstructured) THEN 5411 CALL finalize_inca 5412 ENDIF 5413 endif 5414 #endif 5415 5234 5416 #endif 5235 5417 WRITE(lunout,*) ' physiq fin, nombre de steps ou cvpas = 1 : ', Ncvpaseq1 -
CONFIG/UNIFORM/v7/IPSLCM7/compile_ipslcm7.sh
r5479 r6296 44 44 full_orch="" 45 45 full_dyna="" 46 46 # choose radiative code compilation option 47 rad=rrtm 48 opt_rad="" 47 49 # Default netcdf_lib is used for XIOS but can be change by argument 48 50 netcdf_lib="" … … 103 105 "-full_inca") full_inca="-clean"; shift ;; 104 106 "-cleannemo") full_nemo=y ; shift ;; 107 "-rad") rad=$2; shift ; shift ;; 105 108 *) echo "unknown option "$1" , exiting..." ; exit 106 109 esac … … 138 141 echo "You used -parallel" $parallel 139 142 fi ;; 143 spirit*) 144 fcm_arch=ifort_MESOIPSL;; 140 145 ciclad*|climserv*|loholt*|camelot*) 141 146 fcm_arch=ifort_CICLAD;; … … 152 157 echo >> $outfile 153 158 echo "The file ARCH/arch-${fcm_arch}.env will now be sourced with modules needed for compilation for all components." 154 echo "Note that this new environement might be kept after compilation." 155 echo "If this is the case, source again your personal environment after compilation. " 156 echo " Personal module list before sourcing of ARCH/arch.env file:" >> $outfile 157 module list >> $outfile 2>&1 158 159 echo "Note that this new environement might be kept after compilation." 160 echo "If this is the case, source again your personal environment after compilation." 161 echo " Personal module list before sourcing of ARCH/arch.env file:" >> $outfile 162 module list >> $outfile 2>&1 163 svn_version=$(module list -t | grep subversion) 164 159 165 # Make a link to this file, to be used also in config.card 160 166 rm -f ARCH/arch.env … … 162 168 163 169 # Source the file 164 source ARCH/arch.env >> $outfile 2>&1 165 echo >> $outfile 166 echo " New module list after sourcing of ARCH/arch.env file:" >> $outfile 167 module list >> $outfile 2>&1 170 source ARCH/arch.env >> $outfile 2>&1 171 if [ X$svn_version != X ] ; then 172 module load ${svn_version} 173 fi 174 echo >> $outfile 175 echo " New module list after sourcing of ARCH/arch.env file:" >> $outfile 176 module list >> $outfile 2>&1 168 177 fi 169 178 … … 173 182 echo; echo "NOW COMPILE IOIPSL" 174 183 echo >> $outfile ; echo " NOW COMPILE IOIPSL" >> $outfile 175 176 # Check if compilation with fcm is included in IOIPSL177 if [ ! -f makeioipsl_fcm ] ; then178 echo "The file makeiopsl_fcm do not exist. Probably this is not the right version of IOIPSL."179 echo "Version of IOIPSL with fcm compilation is needed to compile with this script. Stop now."180 exit181 fi182 184 183 185 echo ./makeioipsl_fcm -$optmode -parallel -arch ${fcm_arch} -arch_path $arch_path -j 8 $full_flag >> $outfile … … 320 322 echo; echo "NOW COMPILE LMDZ FOR COUPLING TO DYNAMICO" 321 323 echo >> $outfile ; echo " NOW COMPILE LMDZ FOR COUPLING TO DYNAMICO" >> $outfile 322 324 # Retrieve the final svn release number, needed for radiative code suffix of executable 325 lmdzsvn=`svnversion . | egrep -o "[0-9]+" | awk 'NR==1'` 323 326 # Temporary use of SOURCES/LMDZ to handle modifications needed by IPSLCM7 324 327 cp $mysrc_path/LMDZ/*.*90 libf/phylmd/. … … 337 340 fi 338 341 339 echo ./makelmdz_fcm -p lmd -c OMCT -rrtm true -$optmode -mem -parallel $parallel -libphy -v orchidee2.1 -io xios -arch $fcm_arch -j 8 $full_lmdz >> $outfile 340 ./makelmdz_fcm -p lmd -c OMCT -rrtm true -$optmode -mem -parallel $parallel -libphy -v orchidee2.1 -io xios -arch $fcm_arch -j 8 $full_lmdz >> $outfile 2>&1 342 # Need to define the proper option for radiative code compilation. By default, we use rrtm 343 case $rad in 344 oldrad) opt_rad="" ;; 345 rrtm) if [ $lmdzsvn -le 4185 ] ; then opt_rad="-rrtm true" ; else opt_rad="-rad rrtm" ; fi ;; 346 ecrad) opt_rad="-rad ecrad" ;; 347 *) echo Only oldrad rrtm ecrad for rad option ; exit 348 esac 349 350 if [ $lmdzsvn -le 4185 -a $rad = "ecrad" ] ; then echo "ecrad only available for LMDZ rev starting with 4186 " ; exit ; fi 351 352 echo ./makelmdz_fcm -p lmd -c OMCT $opt_rad -$optmode -mem -parallel $parallel -libphy -v orchidee2.1 -io xios -arch $fcm_arch -j 8 $full_lmdz >> $outfile 353 ./makelmdz_fcm -p lmd -c OMCT $opt_rad -$optmode -mem -parallel $parallel -libphy -v orchidee2.1 -io xios -arch $fcm_arch -j 8 $full_lmdz >> $outfile 2>&1 341 354 # Test if compiling finished 342 355 if [[ $? != 0 ]] ; then … … 351 364 echo >> $outfile ; echo " NOW COMPILE DYNAMICO" >> $outfile 352 365 353 echo ./make_icosa -$optmode - parallel $parallel -external_ioipsl -with_oasis -with_xios -arch $fcm_arch -arch_path $arch_path -job 8 $full_dyna >> $outfile354 ./make_icosa -$optmode - parallel $parallel -external_ioipsl -with_oasis -with_xios -arch $fcm_arch -arch_path $arch_path -job 8 $full_dyna >> $outfile 2>&1366 echo ./make_icosa -$optmode -with_fcm1 -parallel $parallel -external_ioipsl -with_oasis -with_xios -arch $fcm_arch -arch_path $arch_path -job 8 $full_dyna >> $outfile 367 ./make_icosa -$optmode -with_fcm1 -parallel $parallel -external_ioipsl -with_oasis -with_xios -arch $fcm_arch -arch_path $arch_path -job 8 $full_dyna >> $outfile 2>&1 355 368 # Test if compiling finished 356 369 if [[ $? != 0 ]] ; then … … 388 401 echo; echo "NOW COMPILE LMDZ REGULAR LAT-LON MODE. Resolution = ${resol_atm}" 389 402 echo >> $outfile ; echo " NOW COMPILE LMDZ REGULAR LAT-LON MODE. Resolution = ${resol_atm}" >> $outfile 390 391 403 # Check if the compilation of LMDZ was previsouly interupted prematured. 392 404 # In that case, the files dimension.h and .lock exist. If the files exist, they are here removed to avoid makelmdz_fcm … … 401 413 rm -f .lock 402 414 fi 403 echo ./makelmdz_fcm -d ${resol_atm} -c OMCT -p lmd -rrtm true-$optmode -mem -parallel $parallel -io xios -v orchidee2.1 -arch $fcm_arch -j 8 $full_lmdz gcm >> $outfile404 ./makelmdz_fcm -d ${resol_atm} -c OMCT -p lmd -rrtm true-$optmode -mem -parallel $parallel -io xios -v orchidee2.1 -arch $fcm_arch -j 8 $full_lmdz gcm >> $outfile 2>&1415 echo ./makelmdz_fcm -d ${resol_atm} -c OMCT -p lmd $opt_rad -$optmode -mem -parallel $parallel -io xios -v orchidee2.1 -arch $fcm_arch -j 8 $full_lmdz gcm >> $outfile 416 ./makelmdz_fcm -d ${resol_atm} -c OMCT -p lmd $opt_rad -$optmode -mem -parallel $parallel -io xios -v orchidee2.1 -arch $fcm_arch -j 8 $full_lmdz gcm >> $outfile 2>&1 405 417 # Test if compiling finished 406 418 if [[ $? != 0 ]] ; then … … 421 433 fi 422 434 423 # Find executable suffix 424 if [ $parallel == seq ] || [ $parallel == none ] ; then 425 suffix=_${resol_atm}_phylmd_seq_orch.e 426 else 427 suffix=_${resol_atm}_phylmd_para_mem_orch.e 428 fi 429 echo gcm suffix = $suffix 435 # Find executable suffix 436 suffix=_${resol_atm}_phylmd 437 if [ $lmdzsvn -ge 4186 ] ; then suffix=${suffix}_${rad} ; fi 438 if [ $parallel == seq ] || [ $parallel == none ] ; then 439 suffix=${suffix}_seq_orch.e 440 else 441 suffix=${suffix}_para_mem_orch.e 442 fi 443 echo gcm suffix = $suffix 444 430 445 431 446 # Move executables to modipsl/bin folder
Note: See TracChangeset
for help on using the changeset viewer.