Ignore:
Timestamp:
Jul 28, 2024, 10:25:12 PM (3 months ago)
Author:
abarral
Message:

Put gradsdef.h, tracstoke.h, clesphys.h into modules

File:
1 moved

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_clesphys.f90

    r5136 r5137  
    11! $Id$
    2 
    3 !  ATTENTION!!!!: ce fichier include est compatible format fixe/format libre
    4 !                 veillez \`a n'utiliser que des ! pour les commentaires
    5 !                 et \`a bien positionner les & des lignes de continuation
    6 !                 (les placer en colonne 6 et en colonne 73)
    7 
    8 !..include cles_phys.h
    9 
    10        ! threshold on to activate SSO schemes
    11        REAL zrel_oro_t, zpmm_orodr_t, zpmm_orolf_t, zstd_orodr_t
    12        INTEGER iflag_cycle_diurne
    13        LOGICAL soil_model,new_oliq,ok_orodr,ok_orolf
    14        LOGICAL ok_limitvrai
    15        LOGICAL ok_all_xml
    16        LOGICAL ok_lwoff
    17        INTEGER nbapp_rad, iflag_con, nbapp_cv, nbapp_wk, iflag_ener_conserv
    18        REAL co2_ppm, co2_ppm0, solaire
    19        INTEGER iflag_thermals,nsplit_thermals
    20        INTEGER iflag_physiq
    21        REAL tau_thermals
    22 
    23 !FC
    24        REAL Cd_frein
    25        LOGICAL ok_suntime_rrtm
    26        REAL(kind=8) RCO2, RCH4, RN2O, RCFC11, RCFC12 
    27        REAL(kind=8) RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act 
    28        REAL(kind=8) CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt
    29 !IM ajout CFMIP2/CMIP5
    30        REAL(kind=8) RCO2_per,RCH4_per,RN2O_per,RCFC11_per,RCFC12_per
    31        REAL(kind=8) CH4_ppb_per,N2O_ppb_per,CFC11_ppt_per,CFC12_ppt_per
    32 
    33 !OM ---> correction du bilan d'eau global
    34 !OM Correction sur precip KE
    35        REAL cvl_corr
    36 !OM Fonte calotte dans bilan eau
    37        LOGICAL ok_lic_melt
    38 !OB Depot de vapeur d eau sur la calotte pour le bilan eau
    39        LOGICAL ok_lic_cond
    40 
    41 !IM simulateur ISCCP
    42        INTEGER top_height, overlap
    43 !IM seuils cdrm, cdrh
    44        REAL cdmmax, cdhmax
    45 !IM pour les params différentes Olivier Torres
    46        INTEGER choix_bulk, nit_bulk, kz0
    47 !IM param. stabilite s/ terres et en dehors
    48        REAL ksta, ksta_ter, f_ri_cd_min
    49 !IM ok_kzmin : clef calcul Kzmin dans la CL de surface cf FH
    50        LOGICAL ok_kzmin
    51 !IM, MAFo fmagic, pmagic : parametres - additionnel et multiplicatif -
    52 !                          pour regler l albedo sur ocean
    53        REAL fmagic, pmagic
    54 ! Hauteur (imposee) du contenu en eau du sol
    55            REAL qsol0,albsno0,evap0
    56 ! Frottement au sol (Cdrag)
    57        Real f_cdrag_ter,f_cdrag_oce
    58        REAL min_wind_speed,f_gust_wk,f_gust_bl,f_qsat_oce,f_z0qh_oce
    59        REAL z0m_seaice,z0h_seaice
    60        REAL z0m_landice, z0h_landice
    61        INTEGER iflag_gusts,iflag_z0_oce
    62 
    63 ! Rugoro
    64        Real f_rugoro,z0min
    65 
    66 ! tau_gl : constante de rappel de la temperature a la surface de la glace
    67        REAL tau_gl
    68 
    69 !IM lev_histhf  : niveau sorties 6h
    70 !IM lev_histday : niveau sorties journalieres
    71 !IM lev_histmth : niveau sorties mensuelles
    72 !IM lev_histdayNMC : on peut sortir soit sur 8 (comme AR5) ou bien
    73 !                    sur 17 niveaux de pression
    74        INTEGER lev_histhf, lev_histday, lev_histmth
    75        INTEGER lev_histdayNMC
    76        Integer lev_histins, lev_histLES 
    77 !IM ok_histNMC  : sortie fichiers niveaux de pression (histmthNMC, histdayNMC, histhfNMC)
    78 !IM freq_outNMC : frequences de sortie fichiers niveaux de pression (histmthNMC, histdayNMC, histhfNMC)
    79 !IM freq_calNMC : frequences de calcul fis. hist*NMC.nc
    80        LOGICAL ok_histNMC(3)
    81        INTEGER levout_histNMC(3)
    82        REAL freq_outNMC(3) , freq_calNMC(3)
    83        CHARACTER(len=4) type_run
    84 ! aer_type: pour utiliser un fichier constant dans readaerosol
    85        CHARACTER(len=8) :: aer_type
    86        LOGICAL ok_regdyn
    87        REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
    88        REAL ecrit_ins, ecrit_hf, ecrit_day
    89        REAL ecrit_mth, ecrit_tra, ecrit_reg
    90        REAL ecrit_LES
    91        REAL freq_ISCCP, ecrit_ISCCP
    92        REAL freq_COSP, freq_AIRS
    93        LOGICAL :: ok_cosp,ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP
    94        LOGICAL :: ok_airs
    95        INTEGER :: ip_ebil_phy, iflag_rrtm, iflag_ice_thermo, NSW, iflag_albedo
    96        LOGICAL :: ok_ice_sursat, ok_plane_h2o, ok_plane_contrail
    97        LOGICAL :: ok_chlorophyll
    98        LOGICAL :: ok_strato
    99        LOGICAL :: ok_hines, ok_gwd_rando
    100        LOGICAL :: ok_qch4
    101        LOGICAL :: ok_conserv_q
    102        LOGICAL :: adjust_tropopause
    103        LOGICAL :: ok_daily_climoz
    104        LOGICAL :: ok_new_lscp
    105        LOGICAL :: ok_bs, ok_rad_bs
    106 ! flag to bypass or not the phytrac module
    107        INTEGER :: iflag_phytrac
    108 
    109 !AI flags pour ECRAD       
    110        LOGICAL :: ok_3Deffect
    111 
    112 !OB flag to activate water mass fixer in physiq
    113        LOGICAL :: ok_water_mass_fixer
    114 
    115        COMMON/clesphys/                                                 &
    116 ! REAL FIRST
    117 ! rajout choix_bulk et nit_bulk kz0 par Olivier Torres
    118              co2_ppm, solaire                                           &
    119            , RCO2, RCH4, RN2O, RCFC11, RCFC12                           &
    120            , RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act       &
    121            , RCO2_per, RCH4_per, RN2O_per, RCFC11_per, RCFC12_per       &
    122            , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt                     &
    123            , CH4_ppb_per, N2O_ppb_per, CFC11_ppt_per, CFC12_ppt_per     &
    124            , cdmmax,cdhmax,ksta,ksta_ter,f_ri_cd_min                    &
    125            , fmagic, pmagic                                             &
    126            , f_cdrag_ter,f_cdrag_oce,f_rugoro,z0min,tau_gl              &
    127            , min_wind_speed,f_gust_wk,f_gust_bl,f_qsat_oce,f_z0qh_oce   &
    128            , z0m_seaice,z0h_seaice,z0m_landice,z0h_landice              &
    129            , freq_outNMC, freq_calNMC                                   &
    130            , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins             &
    131            , freq_ISCCP, ecrit_ISCCP, freq_COSP, freq_AIRS              &
    132            , cvl_corr                                                   &
    133            , qsol0,albsno0,evap0                                        &
    134            , co2_ppm0                                                   &
    135            , tau_thermals                                               &
    136 !FC
    137            , Cd_frein,zrel_oro_t,zpmm_orodr_t,zpmm_orolf_t,zstd_orodr_t &
    138            , ecrit_LES                                                  &
    139            , ecrit_ins, ecrit_hf, ecrit_day                             &
    140            , ecrit_mth, ecrit_tra, ecrit_reg                            &
    141 ! THEN INTEGER AND LOGICALS
    142            , top_height                                                 &
    143            , iflag_cycle_diurne, soil_model, new_oliq                   &
    144            , ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad                &
    145            , iflag_con, nbapp_cv, nbapp_wk                              &
    146            , choix_bulk, nit_bulk, kz0                                  &
    147            , iflag_ener_conserv                                         &
    148            , ok_suntime_rrtm                                            &
    149            , overlap                                                    &
    150            , ok_kzmin                                                   &
    151            , lev_histhf, lev_histday, lev_histmth                       &
    152            , lev_histins, lev_histLES, lev_histdayNMC, levout_histNMC   &
    153            , ok_histNMC                                                 &
    154            , type_run, ok_regdyn, ok_cosp, ok_airs                      &
    155            , ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP                     &
    156            , ip_ebil_phy                                                &
    157            , iflag_gusts ,iflag_z0_oce                                  &
    158            , ok_lic_melt, ok_lic_cond, aer_type                         &
    159            , iflag_rrtm, ok_strato,ok_hines, ok_qch4                    &
    160            , iflag_ice_thermo, ok_ice_sursat                            &
    161            , ok_plane_h2o, ok_plane_contrail                            &
    162            , ok_gwd_rando, NSW, iflag_albedo                            &
    163            , ok_chlorophyll,ok_conserv_q, adjust_tropopause             &
    164            , ok_daily_climoz, ok_all_xml, ok_lwoff                      &
    165            , iflag_phytrac, ok_new_lscp, ok_bs, ok_rad_bs               &
    166            ,  iflag_thermals,nsplit_thermals              &
    167            , iflag_physiq, ok_3Deffect, ok_water_mass_fixer
    168        save /clesphys/
    169 !$OMP THREADPRIVATE(/clesphys/)
     2! Replaces clesphys.h
     3
     4MODULE lmdz_clesphys
     5  IMPLICIT NONE; PRIVATE
     6
     7  PUBLIC co2_ppm, solaire                                           &
     8          , RCO2, RCH4, RN2O, RCFC11, RCFC12                           &
     9          , RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act       &
     10          , RCO2_per, RCH4_per, RN2O_per, RCFC11_per, RCFC12_per       &
     11          , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt                     &
     12          , CH4_ppb_per, N2O_ppb_per, CFC11_ppt_per, CFC12_ppt_per     &
     13          , cdmmax, cdhmax, ksta, ksta_ter, f_ri_cd_min                    &
     14          , fmagic, pmagic                                             &
     15          , f_cdrag_ter, f_cdrag_oce, f_rugoro, z0min, tau_gl              &
     16          , min_wind_speed, f_gust_wk, f_gust_bl, f_qsat_oce, f_z0qh_oce   &
     17          , z0m_seaice, z0h_seaice, z0m_landice, z0h_landice              &
     18          , freq_outNMC, freq_calNMC                                   &
     19          , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins             &
     20          , freq_ISCCP, ecrit_ISCCP, freq_COSP, freq_AIRS              &
     21          , cvl_corr                                                   &
     22          , qsol0, albsno0, evap0                                        &
     23          , co2_ppm0                                                   &
     24          , tau_thermals                                               &
     25          , Cd_frein, zrel_oro_t, zpmm_orodr_t, zpmm_orolf_t, zstd_orodr_t &
     26          , ecrit_LES                                                  &
     27          , ecrit_ins, ecrit_hf, ecrit_day                             &
     28          , ecrit_mth, ecrit_tra, ecrit_reg                            &
     29          , top_height                                                 &
     30          , iflag_cycle_diurne, soil_model, new_oliq                   &
     31          , ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad                &
     32          , iflag_con, nbapp_cv, nbapp_wk                              &
     33          , choix_bulk, nit_bulk, kz0                                  &
     34          , iflag_ener_conserv                                         &
     35          , ok_suntime_rrtm                                            &
     36          , overlap                                                    &
     37          , ok_kzmin                                                   &
     38          , lev_histhf, lev_histday, lev_histmth                       &
     39          , lev_histins, lev_histLES, lev_histdayNMC, levout_histNMC   &
     40          , ok_histNMC                                                 &
     41          , type_run, ok_regdyn, ok_cosp, ok_airs                      &
     42          , ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP                     &
     43          , ip_ebil_phy                                                &
     44          , iflag_gusts, iflag_z0_oce                                  &
     45          , ok_lic_melt, ok_lic_cond, aer_type                         &
     46          , iflag_rrtm, ok_strato, ok_hines, ok_qch4                    &
     47          , iflag_ice_thermo, ok_ice_sursat                            &
     48          , ok_plane_h2o, ok_plane_contrail                            &
     49          , ok_gwd_rando, NSW, iflag_albedo                            &
     50          , ok_chlorophyll, ok_conserv_q, adjust_tropopause             &
     51          , ok_daily_climoz, ok_all_xml, ok_lwoff                      &
     52          , iflag_phytrac, ok_new_lscp, ok_bs, ok_rad_bs               &
     53          , iflag_thermals, nsplit_thermals              &
     54          , iflag_physiq, ok_3Deffect, ok_water_mass_fixer
     55
     56
     57  ! threshold on to activate SSO schemes
     58  ! threshold on to activate SSO schemes
     59  REAL zrel_oro_t, zpmm_orodr_t, zpmm_orolf_t, zstd_orodr_t
     60  INTEGER iflag_cycle_diurne
     61  LOGICAL soil_model, new_oliq, ok_orodr, ok_orolf
     62  LOGICAL ok_limitvrai
     63  LOGICAL ok_all_xml
     64  LOGICAL ok_lwoff
     65  INTEGER nbapp_rad, iflag_con, nbapp_cv, nbapp_wk, iflag_ener_conserv
     66  REAL co2_ppm, co2_ppm0, solaire
     67  INTEGER iflag_thermals, nsplit_thermals
     68  INTEGER iflag_physiq
     69  REAL tau_thermals
     70
     71  !FC
     72  REAL Cd_frein
     73  LOGICAL ok_suntime_rrtm
     74  REAL(kind = 8) RCO2, RCH4, RN2O, RCFC11, RCFC12
     75  REAL(kind = 8) RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act
     76  REAL(kind = 8) CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt
     77  !IM ajout CFMIP2/CMIP5
     78  REAL(kind = 8) RCO2_per, RCH4_per, RN2O_per, RCFC11_per, RCFC12_per
     79  REAL(kind = 8) CH4_ppb_per, N2O_ppb_per, CFC11_ppt_per, CFC12_ppt_per
     80
     81  !OM ---> correction du bilan d'eau global
     82  !OM Correction sur precip KE
     83  REAL cvl_corr
     84  !OM Fonte calotte dans bilan eau
     85  LOGICAL ok_lic_melt
     86  !OB Depot de vapeur d eau sur la calotte pour le bilan eau
     87  LOGICAL ok_lic_cond
     88
     89  !IM simulateur ISCCP
     90  INTEGER top_height, overlap
     91  !IM seuils cdrm, cdrh
     92  REAL cdmmax, cdhmax
     93  !IM pour les params différentes Olivier Torres
     94  INTEGER choix_bulk, nit_bulk, kz0
     95  !IM param. stabilite s/ terres et en dehors
     96  REAL ksta, ksta_ter, f_ri_cd_min
     97  !IM ok_kzmin : clef calcul Kzmin dans la CL de surface cf FH
     98  LOGICAL ok_kzmin
     99  !IM, MAFo fmagic, pmagic : parametres - additionnel et multiplicatif -
     100  !                          pour regler l albedo sur ocean
     101  REAL fmagic, pmagic
     102  ! Hauteur (imposee) du contenu en eau du sol
     103  REAL qsol0, albsno0, evap0
     104  ! Frottement au sol (Cdrag)
     105  Real f_cdrag_ter, f_cdrag_oce
     106  REAL min_wind_speed, f_gust_wk, f_gust_bl, f_qsat_oce, f_z0qh_oce
     107  REAL z0m_seaice, z0h_seaice
     108  REAL z0m_landice, z0h_landice
     109  INTEGER iflag_gusts, iflag_z0_oce
     110
     111  ! Rugoro
     112  Real f_rugoro, z0min
     113
     114  ! tau_gl : constante de rappel de la temperature a la surface de la glace
     115  REAL tau_gl
     116
     117  !IM lev_histhf  : niveau sorties 6h
     118  !IM lev_histday : niveau sorties journalieres
     119  !IM lev_histmth : niveau sorties mensuelles
     120  !IM lev_histdayNMC : on peut sortir soit sur 8 (comme AR5) ou bien
     121  !                    sur 17 niveaux de pression
     122  INTEGER lev_histhf, lev_histday, lev_histmth
     123  INTEGER lev_histdayNMC
     124  Integer lev_histins, lev_histLES
     125  !IM ok_histNMC  : sortie fichiers niveaux de pression (histmthNMC, histdayNMC, histhfNMC)
     126  !IM freq_outNMC : frequences de sortie fichiers niveaux de pression (histmthNMC, histdayNMC, histhfNMC)
     127  !IM freq_calNMC : frequences de calcul fis. hist*NMC.nc
     128  LOGICAL ok_histNMC(3)
     129  INTEGER levout_histNMC(3)
     130  REAL freq_outNMC(3), freq_calNMC(3)
     131  CHARACTER(len = 4) type_run
     132  ! aer_type: pour utiliser un fichier constant dans readaerosol
     133  CHARACTER(len = 8) :: aer_type
     134  LOGICAL ok_regdyn
     135  REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
     136  REAL ecrit_ins, ecrit_hf, ecrit_day
     137  REAL ecrit_mth, ecrit_tra, ecrit_reg
     138  REAL ecrit_LES
     139  REAL freq_ISCCP, ecrit_ISCCP
     140  REAL freq_COSP, freq_AIRS
     141  LOGICAL :: ok_cosp, ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP
     142  LOGICAL :: ok_airs
     143  INTEGER :: ip_ebil_phy, iflag_rrtm, iflag_ice_thermo, NSW, iflag_albedo
     144  LOGICAL :: ok_ice_sursat, ok_plane_h2o, ok_plane_contrail
     145  LOGICAL :: ok_chlorophyll
     146  LOGICAL :: ok_strato
     147  LOGICAL :: ok_hines, ok_gwd_rando
     148  LOGICAL :: ok_qch4
     149  LOGICAL :: ok_conserv_q
     150  LOGICAL :: adjust_tropopause
     151  LOGICAL :: ok_daily_climoz
     152  LOGICAL :: ok_new_lscp
     153  LOGICAL :: ok_bs, ok_rad_bs
     154  ! flag to bypass or not the phytrac module
     155  INTEGER :: iflag_phytrac
     156
     157  !AI flags pour ECRAD
     158  LOGICAL :: ok_3Deffect
     159
     160  !OB flag to activate water mass fixer in physiq
     161  LOGICAL :: ok_water_mass_fixer
     162
     163
     164  !$OMP THREADPRIVATE(co2_ppm, solaire                                           &
     165  !$OMP      , RCO2, RCH4, RN2O, RCFC11, RCFC12                           &
     166  !$OMP      , RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act       &
     167  !$OMP      , RCO2_per, RCH4_per, RN2O_per, RCFC11_per, RCFC12_per       &
     168  !$OMP      , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt                     &
     169  !$OMP      , CH4_ppb_per, N2O_ppb_per, CFC11_ppt_per, CFC12_ppt_per     &
     170  !$OMP      , cdmmax, cdhmax, ksta, ksta_ter, f_ri_cd_min                    &
     171  !$OMP      , fmagic, pmagic                                             &
     172  !$OMP      , f_cdrag_ter, f_cdrag_oce, f_rugoro, z0min, tau_gl              &
     173  !$OMP      , min_wind_speed, f_gust_wk, f_gust_bl, f_qsat_oce, f_z0qh_oce   &
     174  !$OMP      , z0m_seaice, z0h_seaice, z0m_landice, z0h_landice              &
     175  !$OMP      , freq_outNMC, freq_calNMC                                   &
     176  !$OMP      , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins             &
     177  !$OMP      , freq_ISCCP, ecrit_ISCCP, freq_COSP, freq_AIRS              &
     178  !$OMP      , cvl_corr                                                   &
     179  !$OMP      , qsol0, albsno0, evap0                                        &
     180  !$OMP      , co2_ppm0                                                   &
     181  !$OMP      , tau_thermals                                               &
     182  !$OMP      , Cd_frein, zrel_oro_t, zpmm_orodr_t, zpmm_orolf_t, zstd_orodr_t &
     183  !$OMP      , ecrit_LES                                                  &
     184  !$OMP      , ecrit_ins, ecrit_hf, ecrit_day                             &
     185  !$OMP      , ecrit_mth, ecrit_tra, ecrit_reg                            &
     186  !$OMP      , top_height                                                 &
     187  !$OMP      , iflag_cycle_diurne, soil_model, new_oliq                   &
     188  !$OMP      , ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad                &
     189  !$OMP      , iflag_con, nbapp_cv, nbapp_wk                              &
     190  !$OMP      , choix_bulk, nit_bulk, kz0                                  &
     191  !$OMP      , iflag_ener_conserv                                         &
     192  !$OMP      , ok_suntime_rrtm                                            &
     193  !$OMP      , overlap                                                    &
     194  !$OMP      , ok_kzmin                                                   &
     195  !$OMP      , lev_histhf, lev_histday, lev_histmth                       &
     196  !$OMP      , lev_histins, lev_histLES, lev_histdayNMC, levout_histNMC   &
     197  !$OMP      , ok_histNMC                                                 &
     198  !$OMP      , type_run, ok_regdyn, ok_cosp, ok_airs                      &
     199  !$OMP      , ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP                     &
     200  !$OMP      , ip_ebil_phy                                                &
     201  !$OMP      , iflag_gusts, iflag_z0_oce                                  &
     202  !$OMP      , ok_lic_melt, ok_lic_cond, aer_type                         &
     203  !$OMP      , iflag_rrtm, ok_strato, ok_hines, ok_qch4                    &
     204  !$OMP      , iflag_ice_thermo, ok_ice_sursat                            &
     205  !$OMP      , ok_plane_h2o, ok_plane_contrail                            &
     206  !$OMP      , ok_gwd_rando, NSW, iflag_albedo                            &
     207  !$OMP      , ok_chlorophyll, ok_conserv_q, adjust_tropopause             &
     208  !$OMP      , ok_daily_climoz, ok_all_xml, ok_lwoff                      &
     209  !$OMP      , iflag_phytrac, ok_new_lscp, ok_bs, ok_rad_bs               &
     210  !$OMP      , iflag_thermals, nsplit_thermals              &
     211  !$OMP      , iflag_physiq, ok_3Deffect, ok_water_mass_fixer)
     212
     213END MODULE lmdz_clesphys
Note: See TracChangeset for help on using the changeset viewer.