Ignore:
Timestamp:
Jul 5, 2023, 11:35:57 AM (17 months ago)
Author:
acozic
Message:

Fixe a bug on declaration of group using XIOS routines
This need to be done before xios_close_context and before Xios inheritance
(Anne Cozic)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r4575 r4606  
    486486    CHARACTER(LEN=maxlen) :: varname, dn
    487487
    488 #ifdef CPP_XIOS
    489     TYPE(xios_fieldgroup) :: group_handle
    490     TYPE(xios_field) :: child
    491 #endif
    492488#ifdef CPP_StratAer
    493489    LOGICAL, PARAMETER :: debug_strataer=.FALSE.
     
    545541    END DO
    546542
    547 #ifdef CPP_XIOS
    548 #ifdef CPP_StratAer
    549 !$OMP MASTER
    550    IF (.NOT.vars_defined) THEN
    551           !On ajoute les variables 3D traceurs par l interface fortran
    552           CALL xios_get_handle("fields_strataer_trac_3D", group_handle)
    553           ! On boucle sur les traceurs pour les ajouter au groupe puis fixer les attributs
    554           DO iq = 1, nqtot
    555             IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
    556             dn = 'd'//TRIM(tracers(iq)%name)//'_'
    557             WRITE (lunout,*) 'XIOS var=', nqo, iq, nqtot, tracers(iq)%name
    558 
    559             unt = "kg kg-1"
    560             varname=trim(tracers(iq)%name)
    561             CALL xios_add_child(group_handle, child, varname)
    562             CALL xios_set_attr(child, name=varname, unit=unt)
    563 
    564             unt = "kg kg-1 s-1"
    565             varname=TRIM(dn)//'vdf'
    566             CALL xios_add_child(group_handle, child, varname)
    567             CALL xios_set_attr(child, name=varname, unit=unt)
    568             varname=TRIM(dn)//'the'
    569             CALL xios_add_child(group_handle, child, varname)
    570             CALL xios_set_attr(child, name=varname, unit=unt)
    571             varname=TRIM(dn)//'con'
    572             CALL xios_add_child(group_handle, child, varname)
    573             CALL xios_set_attr(child, name=varname, unit=unt)
    574             varname=TRIM(dn)//'lessi_impa'
    575             CALL xios_add_child(group_handle, child, varname)
    576             CALL xios_set_attr(child, name=varname, unit=unt)
    577             varname=TRIM(dn)//'lessi_nucl'
    578             CALL xios_add_child(group_handle, child, varname)
    579             CALL xios_set_attr(child, name=varname, unit=unt)
    580             varname=TRIM(dn)//'insc'
    581             CALL xios_add_child(group_handle, child, varname)
    582             CALL xios_set_attr(child, name=varname, unit=unt)
    583             varname=TRIM(dn)//'bcscav'
    584             CALL xios_add_child(group_handle, child, varname)
    585             CALL xios_set_attr(child, name=varname, unit=unt)
    586             varname=TRIM(dn)//'evapls'
    587             CALL xios_add_child(group_handle, child, varname)
    588             CALL xios_set_attr(child, name=varname, unit=unt)
    589             varname=TRIM(dn)//'ls'
    590             CALL xios_add_child(group_handle, child, varname)
    591             CALL xios_set_attr(child, name=varname, unit=unt)
    592             varname=TRIM(dn)//'trsp'
    593             CALL xios_add_child(group_handle, child, varname)
    594             CALL xios_set_attr(child, name=varname, unit=unt)
    595             varname=TRIM(dn)//'sscav'
    596             CALL xios_add_child(group_handle, child, varname)
    597             CALL xios_set_attr(child, name=varname, unit=unt)
    598             varname=TRIM(dn)//'sat'
    599             CALL xios_add_child(group_handle, child, varname)
    600             CALL xios_set_attr(child, name=varname, unit=unt)
    601             varname=TRIM(dn)//'uscav'
    602             CALL xios_add_child(group_handle, child, varname)
    603             CALL xios_set_attr(child, name=varname, unit=unt)
    604           END DO
    605           !On ajoute les variables 2D traceurs par l interface fortran
    606           CALL xios_get_handle("fields_strataer_trac_2D", group_handle)
    607           ! On boucle sur les traceurs pour les ajouter au groupe puis fixer les attributs
    608           DO iq = 1, nqtot
    609             IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
    610 
    611             unt = "kg m-2"
    612             varname='cum'//trim(tracers(iq)%name)
    613             WRITE (lunout,*) 'XIOS var=', iq, nqtot, varname
    614             CALL xios_add_child(group_handle, child, varname)
    615             CALL xios_set_attr(child, name=varname, unit=unt)
    616 
    617             unt = "kg m-2 s-1"
    618             varname='cumd'//trim(tracers(iq)%name)//'_dry'
    619             CALL xios_add_child(group_handle, child, varname)
    620             CALL xios_set_attr(child, name=varname, unit=unt)
    621           ENDDO
    622     ENDIF
    623 !$OMP END MASTER
    624 #endif
    625 #endif
    626543
    627544    ! ug la boucle qui suit ne sert qu'une fois, pour l'initialisation, sinon il n'y a toujours qu'un seul passage:
Note: See TracChangeset for help on using the changeset viewer.