Ignore:
Timestamp:
Feb 1, 2018, 12:26:50 PM (6 years ago)
Author:
idelkadi
Message:
  • Controle des sorties des champs Cosp en fonction du contenu des fichiers *.xml (pour CMIP)
  • Optimisation de la routine de sorties cosp_output_write.F90
  • Appel a la mise a jours du calendrier pour XIOS commente (car deja fait dans phys_output_write.F90)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/cosp/phys_cosp.F90

    r2835 r3173  
    8484  use cosp_output_write_mod
    8585!  use MOD_COSP_Modis_Simulator, only : cosp_modis
     86#ifdef CPP_XIOS
     87    USE xios, ONLY: xios_field_is_active
     88#endif
    8689
    8790  IMPLICIT NONE
     
    136139!$OMP THREADPRIVATE(debut_cosp)
    137140
     141  logical, save :: first_write=.true.
     142!$OMP THREADPRIVATE(first_write)
     143
    138144!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Input variables from LMDZ-GCM
    139145  integer                         :: overlaplmdz   !  overlap type: 1=max, 2=rand, 3=max/rand ! cosp input (output lmdz)
     
    171177
    172178! Clefs Outputs
    173   call read_cosp_output_nl(cosp_output_nl,cfg)
     179  call read_cosp_output_nl(itap,cosp_output_nl,cfg)
    174180
    175181    if (overlaplmdz.ne.overlap) then
     
    178184   print*,'Fin lecture Namelists, debut_cosp =',debut_cosp
    179185
    180   print*,' Cles des differents simulateurs cosp :'
     186  print*,' Cles des differents simulateurs cosp 1er appel Cosp :'
    181187  print*,'Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lmodis_sim,Lrttov_sim', &
    182188          cfg%Lradar_sim,cfg%Llidar_sim,cfg%Lisccp_sim,cfg%Lmisr_sim,cfg%Lmodis_sim,cfg%Lrttov_sim
    183189
    184190  endif ! debut_cosp
     191
     192!!! Ici on modifie les cles logiques selon les champs actives dans les .xml
     193#ifdef CPP_XIOS
     194  if ((itap.gt.1).and.(first_write))then
     195!    call read_xiosfieldactive(cfg)
     196     call read_cosp_output_nl(itap,cosp_output_nl,cfg)
     197!       print*,' Dans cosp_write itap first_writ LcfadLidarsr532 =', &
     198!                     itap, first_write, cfg%LcfadLidarsr532
     199     first_write=.false.
     200  endif
     201!  print*,' Dans cosp_write itap LcfadLidarsr532 =', &
     202!                     itap, cfg%LcfadLidarsr532
     203#endif
     204
    185205
    186206  time_bnds(1) = dtime-dtime/2.
     
    421441  END SUBROUTINE read_cosp_input
    422442
     443  SUBROUTINE read_xiosfieldactive(cfg)
     444
     445    USE MOD_COSP_TYPES
     446#ifdef CPP_XIOS
     447    USE xios, ONLY: xios_field_is_active
     448#endif
     449  type(cosp_config),intent(out) :: cfg
     450
     451! VEREFIER LES CHAMPS DEMANDES DANS .XML
     452! 2. Si champs active dans .xml alors mettre la cles de sortie en true
     453 IF (xios_field_is_active("cllcalipso")) cfg%Lcllcalipso=.TRUE.
     454 IF (xios_field_is_active("clmcalipso")) cfg%Lclmcalipso=.TRUE.
     455 IF (xios_field_is_active("clhcalipso")) cfg%Lclhcalipso=.TRUE.
     456 IF (xios_field_is_active("cltcalipso")) cfg%Lcltcalipso=.TRUE.
     457! IF (xios_field_is_active("pcllcalipso")) cfg%Lcllcalipso=.TRUE.
     458! IF (xios_field_is_active("pclmcalipso")) cfg%Lclmcalipso=.TRUE.
     459! IF (xios_field_is_active("pclhcalipso")) cfg%Lclhcalipso=.TRUE.
     460! IF (xios_field_is_active("pcltcalipso")) cfg%Lcltcalipso=.TRUE.
     461 IF (xios_field_is_active("cllcalipsoice")) cfg%Lcllcalipsoice=.TRUE.
     462 IF (xios_field_is_active("clmcalipsoice")) cfg%Lclmcalipsoice=.TRUE.
     463 IF (xios_field_is_active("clhcalipsoice")) cfg%Lclhcalipsoice=.TRUE.
     464 IF (xios_field_is_active("cltcalipsoice")) cfg%Lcltcalipsoice=.TRUE.
     465 IF (xios_field_is_active("cllcalipsoliq")) cfg%Lcllcalipsoliq=.TRUE.
     466 IF (xios_field_is_active("clmcalipsoliq")) cfg%Lclmcalipsoliq=.TRUE.
     467 IF (xios_field_is_active("clhcalipsoliq")) cfg%Lclhcalipsoliq=.TRUE.
     468 IF (xios_field_is_active("cltcalipsoliq")) cfg%Lcltcalipsoliq=.TRUE.
     469 IF (xios_field_is_active("cllcalipsoun")) cfg%Lcllcalipsoun=.TRUE.
     470 IF (xios_field_is_active("clmcalipsoun")) cfg%Lclmcalipsoun=.TRUE.
     471 IF (xios_field_is_active("clhcalipsoun")) cfg%Lclhcalipsoun=.TRUE.
     472 IF (xios_field_is_active("cltcalipsoun")) cfg%Lcltcalipsoun=.TRUE.
     473 IF (xios_field_is_active("clcalipso")) cfg%Lclcalipso=.TRUE.
     474! IF (xios_field_is_active("pclcalipso")) cfg%Lclcalipso=.TRUE.
     475 IF (xios_field_is_active("clcalipsoice")) cfg%Lclcalipsoice=.TRUE.
     476 IF (xios_field_is_active("clcalipsoliq")) cfg%Lclcalipsoliq=.TRUE.
     477 IF (xios_field_is_active("clcalipsoun")) cfg%Lclcalipsoun=.TRUE.
     478 IF (xios_field_is_active("clcalipsotmp")) cfg%Lclcalipsotmp=.TRUE.
     479 IF (xios_field_is_active("clcalipsotmpice")) cfg%Lclcalipsotmpice=.TRUE.
     480 IF (xios_field_is_active("clcalipsotmpliq")) cfg%Lclcalipsotmpliq=.TRUE.
     481 IF (xios_field_is_active("clcalipsotmpun")) cfg%Lclcalipsotmpun=.TRUE.
     482 IF (xios_field_is_active("parasol_refl")) cfg%LparasolRefl=.TRUE.
     483 IF (xios_field_is_active("parasol_crefl")) cfg%LparasolRefl=.TRUE.
     484 IF (xios_field_is_active("Ncrefl")) cfg%LparasolRefl=.TRUE.
     485 IF (xios_field_is_active("cfad_lidarsr532")) cfg%LcfadLidarsr532=.TRUE.
     486 IF (xios_field_is_active("atb532")) cfg%Latb532=.TRUE.
     487 IF (xios_field_is_active("beta_mol532")) cfg%LlidarBetaMol532=.TRUE.
     488 IF (xios_field_is_active("clopaquecalipso")) cfg%Lclopaquecalipso=.TRUE.
     489 IF (xios_field_is_active("clthincalipso")) cfg%Lclthincalipso=.TRUE.
     490 IF (xios_field_is_active("clzopaquecalipso")) cfg%Lclzopaquecalipso=.TRUE.
     491 IF (xios_field_is_active("clcalipsoopaque")) cfg%Lclcalipsoopaque=.TRUE.
     492 IF (xios_field_is_active("clcalipsothin")) cfg%Lclcalipsothin=.TRUE.
     493 IF (xios_field_is_active("clcalipsozopaque")) cfg%Lclcalipsozopaque=.TRUE.
     494 IF (xios_field_is_active("clcalipsoopacity")) cfg%Lclcalipsoopacity=.TRUE.
     495 IF (xios_field_is_active("proftemp")) cfg%Lproftemp=.TRUE.
     496 IF (xios_field_is_active("profSR")) cfg%LprofSR=.TRUE.
     497
     498 IF (xios_field_is_active("cfadDbze94")) cfg%LcfadDbze94=.TRUE.
     499 IF (xios_field_is_active("dbze94")) cfg%Ldbze94=.TRUE.
     500 IF (xios_field_is_active("cltlidarradar")) cfg%Lcltlidarradar=.TRUE.
     501 IF (xios_field_is_active("clcalipso2")) cfg%Lclcalipso2=.TRUE.
     502
     503   IF (xios_field_is_active("clisccp2")) cfg%Lclisccp=.TRUE.
     504 IF (xios_field_is_active("boxtauisccp")) cfg%Lboxtauisccp=.TRUE.
     505 IF (xios_field_is_active("boxptopisccp")) cfg%Lboxptopisccp=.TRUE.
     506 IF (xios_field_is_active("tclisccp")) cfg%Lcltisccp=.TRUE.
     507 IF (xios_field_is_active("ctpisccp")) cfg%Lpctisccp=.TRUE.
     508 IF (xios_field_is_active("tauisccp")) cfg%Ltauisccp=.TRUE.
     509 IF (xios_field_is_active("albisccp")) cfg%Lalbisccp=.TRUE.
     510 IF (xios_field_is_active("meantbisccp")) cfg%Lmeantbisccp=.TRUE.
     511 IF (xios_field_is_active("meantbclrisccp")) cfg%Lmeantbclrisccp=.TRUE.
     512
     513   IF (xios_field_is_active("clMISR")) cfg%LclMISR=.TRUE.
     514
     515IF (xios_field_is_active("cllmodis")) cfg%Lcllmodis=.TRUE.
     516 IF (xios_field_is_active("clmmodis")) cfg%Lclmmodis=.TRUE.
     517 IF (xios_field_is_active("clhmodis")) cfg%Lclhmodis=.TRUE.
     518 IF (xios_field_is_active("cltmodis")) cfg%Lcltmodis=.TRUE.
     519 IF (xios_field_is_active("clwmodis")) cfg%Lclwmodis=.TRUE.
     520 IF (xios_field_is_active("climodis")) cfg%Lclimodis=.TRUE.
     521 IF (xios_field_is_active("tautmodis")) cfg%Ltautmodis=.TRUE.
     522 IF (xios_field_is_active("tauwmodis")) cfg%Ltauwmodis=.TRUE.
     523 IF (xios_field_is_active("tauimodis")) cfg%Ltauimodis=.TRUE.
     524 IF (xios_field_is_active("tautlogmodis")) cfg%Ltautlogmodis=.TRUE.
     525 IF (xios_field_is_active("tauilogmodis")) cfg%Ltauilogmodis=.TRUE.
     526 IF (xios_field_is_active("tauwlogmodis")) cfg%Ltauwlogmodis=.TRUE.
     527 IF (xios_field_is_active("reffclwmodis")) cfg%Lreffclwmodis=.TRUE.
     528 IF (xios_field_is_active("reffclimodis")) cfg%Lreffclimodis=.TRUE.
     529 IF (xios_field_is_active("pctmodis")) cfg%Lpctmodis=.TRUE.
     530 IF (xios_field_is_active("lwpmodis")) cfg%Llwpmodis=.TRUE.
     531 IF (xios_field_is_active("iwpmodis")) cfg%Liwpmodis=.TRUE.
     532 IF (xios_field_is_active("clmodis")) cfg%Lclmodis=.TRUE.
     533 IF (xios_field_is_active("crimodis")) cfg%Lcrimodis=.TRUE.
     534 IF (xios_field_is_active("crlmodis")) cfg%Lcrlmodis=.TRUE.
     535
     536! 2.  si champs demande alors activer le simulateur correspondant
     537   IF (xios_field_is_active("cllcalipso").OR. &
     538       xios_field_is_active("clmcalipso").OR. &
     539       xios_field_is_active("clhcalipso").OR. &
     540       xios_field_is_active("cltcalipso").OR. &
     541!       xios_field_is_active("pcllcalipso").OR. &
     542!       xios_field_is_active("pclmcalipso").OR. &
     543!       xios_field_is_active("pclhcalipso").OR. &
     544!       xios_field_is_active("pcltcalipso").OR. &
     545       xios_field_is_active("cllcalipsoice").OR. &
     546       xios_field_is_active("clmcalipsoice").OR. &
     547       xios_field_is_active("clhcalipsoice").OR. &
     548       xios_field_is_active("cltcalipsoice").OR. &
     549       xios_field_is_active("cllcalipsoliq").OR. &
     550       xios_field_is_active("clmcalipsoliq").OR. &
     551       xios_field_is_active("clhcalipsoliq").OR. &
     552       xios_field_is_active("cltcalipsoliq").OR. &
     553       xios_field_is_active("cllcalipsoun").OR. &
     554       xios_field_is_active("clmcalipsoun").OR. &
     555       xios_field_is_active("clhcalipsoun").OR. &
     556       xios_field_is_active("cltcalipsoun").OR. &
     557       xios_field_is_active("clcalipso").OR. &
     558!       xios_field_is_active("pclcalipso").OR. &
     559       xios_field_is_active("clcalipsoice").OR. &
     560       xios_field_is_active("clcalipsoliq").OR. &
     561       xios_field_is_active("clcalipsoun").OR. &
     562       xios_field_is_active("clcalipsotmp").OR. &
     563       xios_field_is_active("clcalipsotmpice").OR. &
     564       xios_field_is_active("clcalipsotmpliq").OR. &
     565       xios_field_is_active("clcalipsotmpun").OR. &
     566       xios_field_is_active("parasol_refl").OR. &
     567       xios_field_is_active("parasol_crefl").OR. &
     568       xios_field_is_active("Ncrefl").OR. &
     569       xios_field_is_active("cfad_lidarsr532").OR. &
     570       xios_field_is_active("atb532").OR. &
     571       xios_field_is_active("beta_mol532").OR. &
     572       xios_field_is_active("clopaquecalipso").OR. &
     573       xios_field_is_active("clthincalipso").OR. &
     574       xios_field_is_active("clzopaquecalipso").OR. &
     575       xios_field_is_active("clcalipsoopaque").OR. &
     576       xios_field_is_active("clcalipsothin").OR. &
     577       xios_field_is_active("clcalipsozopaque").OR. &
     578       xios_field_is_active("clcalipsoopacity").OR. &
     579       xios_field_is_active("proftemp").OR. &
     580       xios_field_is_active("profSR")) cfg%Llidar_sim=.TRUE.
     581
     582    IF (xios_field_is_active("cfadDbze94").OR. &
     583      xios_field_is_active("dbze94")) &
     584               cfg%Lradar_sim=.TRUE.
     585
     586    IF (xios_field_is_active("cltlidarradar").OR. &
     587      xios_field_is_active("clcalipso2")) THEN
     588               cfg%Lradar_sim=.TRUE.
     589               cfg%Llidar_sim=.TRUE.
     590    ENDIF
     591
     592    IF (xios_field_is_active("clisccp2").OR. &
     593       xios_field_is_active("boxtauisccp").OR. &
     594       xios_field_is_active("boxptopisccp").OR. &
     595       xios_field_is_active("tclisccp").OR. &
     596       xios_field_is_active("ctpisccp").OR. &
     597       xios_field_is_active("tauisccp").OR. &
     598       xios_field_is_active("albisccp").OR. &
     599       xios_field_is_active("meantbisccp").OR. &
     600       xios_field_is_active("meantbclrisccp")) cfg%Lisccp_sim=.TRUE.
     601
     602    IF (xios_field_is_active("clMISR")) cfg%Lmisr_sim=.TRUE.
     603
     604    IF (xios_field_is_active("cllmodis").OR. &
     605       xios_field_is_active("clmmodis").OR. &
     606       xios_field_is_active("clhmodis").OR. &
     607       xios_field_is_active("cltmodis").OR. &
     608       xios_field_is_active("clwmodis").OR. &
     609       xios_field_is_active("climodis").OR. &
     610       xios_field_is_active("tautmodis").OR. &
     611       xios_field_is_active("tauwmodis").OR. &
     612       xios_field_is_active("tauimodis").OR. &
     613       xios_field_is_active("tautlogmodis").OR. &
     614       xios_field_is_active("tauilogmodis").OR. &
     615       xios_field_is_active("tauwlogmodis").OR. &
     616       xios_field_is_active("reffclwmodis").OR. &
     617       xios_field_is_active("reffclimodis").OR. &
     618       xios_field_is_active("pctmodis").OR. &
     619       xios_field_is_active("lwpmodis").OR. &
     620       xios_field_is_active("iwpmodis").OR. &
     621       xios_field_is_active("clmodis").OR. &
     622       xios_field_is_active("crimodis").OR. &
     623       xios_field_is_active("crlmodis")) cfg%Lmodis_sim=.TRUE.
     624  END SUBROUTINE read_xiosfieldactive
     625
     626
    423627end subroutine phys_cosp
Note: See TracChangeset for help on using the changeset viewer.