Changeset 3623 for trunk/LMDZ.PLUTO/libf


Ignore:
Timestamp:
Feb 12, 2025, 7:09:35 PM (22 hours ago)
Author:
afalco
Message:

Pluto: better message for change in "temperature" written by diagfi (replaced the deprecated "temp" name).
zrecast also reads "temperature" if "temp" fails.
AF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/libf/phypluto/writediagfi.F

    r3184 r3623  
    11      subroutine writediagfi(ngrid,nom,titre,unite,dim,px)
    22
    3 !  Ecriture de variables diagnostiques au choix dans la physique 
     3!  Ecriture de variables diagnostiques au choix dans la physique
    44!  dans un fichier NetCDF nomme  'diagfi'. Ces variables peuvent etre
    55!  3d (ex : temperature), 2d (ex : temperature de surface), ou
     
    77!  solaire)
    88!  (ou encore 1d, dans le cas de testphys1d, pour sortir une colonne)
    9 !  La periode d'ecriture est donnee par 
     9!  La periode d'ecriture est donnee par
    1010!  "ecritphy " regle dans le fichier de controle de run :  run.def
    1111!
     
    1616! WARNING : les variables dynamique (u,v,t,q,ps)
    1717!  sauvees par writediagfi avec une
    18 ! date donnee sont legerement differentes que dans le fichier histoire car 
     18! date donnee sont legerement differentes que dans le fichier histoire car
    1919! on ne leur a pas encore ajoute de la dissipation et de la physique !!!
    2020! IL est  RECOMMANDE d'ajouter les tendance physique a ces variables
    2121! avant l'ecriture dans diagfi (cf. physiq.F)
    22 ! 
     22!
    2323! Modifs: Aug.2010 Ehouarn: enforce outputs to be real*4
    2424!         Oct 2011 Francois: enable having a 'diagfi.def' file to select
     
    3030!                (ngrid = 2+(jjm-1)*iim - 1/jjm)
    3131!                 (= nlon ou klon dans la physique terrestre)
    32 !     
     32!
    3333!      unit : unite logique du fichier de sortie (toujours la meme)
    3434!      nom  : nom de la variable a sortir (chaine de caracteres)
     
    9999      logical,save :: firstcall=.true.
    100100!$OMP THREADPRIVATE(firstcall)  !diagfi_def,n_nom_def,nom_def read in diagfi.def
    101      
     101
    102102#ifdef CPP_PARA
    103103! Added to work in parallel mode
     
    145145              read(99,fmt='(a)',end=88) nom_def(n)
    146146              write(*,*) 'Output in diagfi: ', trim(nom_def(n))
    147             end do
     147              if (nom_def(n).eq.'temp') then
     148                 write(*,*) 'WARNING: "temp" is outdated.'
     149                 write(*,*) 'Do you really have a "temp" variable?'
     150                 write(*,*) 'Otherwise use "temperature" instead.'
     151              end if
     152            end do
    148153 88         continue
    149154            if (n.ge.n_nom_def_max) then
     
    151156               call abort_physic("writediagfi",
    152157     &             "n_nom_def_max too small",1)
    153             end if 
     158            end if
    154159            n_nom_def=n-1
    155160            close(99)
     
    185190           call abort_physic("writediagfi","firstnom too short",1)
    186191         endif
    187          
     192
    188193         zitau = -1 ! initialize zitau
    189194
     
    242247          enddo
    243248         ENDIF
    244          
     249
    245250         ! write "header" of file (longitudes, latitudes, geopotential, ...)
    246251         IF (klon_glo>1) THEN ! general 3D case
     
    299304              write(*,*) "***** PUT_VAR matter in writediagfi_nc"
    300305              write(*,*) "***** with time"
    301               write(*,*) 'ierr=', ierr,": ",NF_STRERROR(ierr) 
     306              write(*,*) 'ierr=', ierr,": ",NF_STRERROR(ierr)
    302307c             call abort
    303308           endif
     
    372377     &             trim(nom)//" already exists",1)
    373378             endif
    374            endif 
     379           endif
    375380
    376381           corner(1)=1
     
    407412              call abort_physic("writediagfi",
    408413     &             "failed writing "//trim(nom),1)
    409            endif 
     414           endif
    410415
    411416          endif !of if (is_master)
     
    491496
    492497!#ifdef NC_DOUBLE
    493 !           ierr = NF_PUT_VARA_DOUBLE (nid,varid,corner,edges,dx2) 
    494 !#else         
     498!           ierr = NF_PUT_VARA_DOUBLE (nid,varid,corner,edges,dx2)
     499!#else
    495500           IF (klon_glo>1) THEN ! General case
    496501             ierr= NF_PUT_VARA_REAL(nid,varid,corner,edges,dx2)
     
    498503             ierr= NF_PUT_VARA_REAL(nid,varid,corner,edges,dx2_1d)
    499504           ENDIF
    500 !#endif     
     505!#endif
    501506
    502507           if (ierr.ne.NF_NOERR) then
     
    506511              call abort_physic("writediagfi",
    507512     &             "failed writing "//trim(nom),1)
    508            endif 
     513           endif
    509514
    510515          endif !of if (is_master)
     
    525530            dx1(l)=px(1,l)
    526531          enddo
    527          
     532
    528533          ierr= NF_INQ_VARID(nid,nom,varid)
    529534           if (ierr /= NF_NOERR) then
     
    538543
    539544              call def_var(nid,nom,titre,unite,2,id,varid,ierr)
    540              
     545
    541546           else
    542547             if (ntime==0) then
     
    548553             endif
    549554           endif
    550            
     555
    551556           corner(1)=1
    552557           corner(2)=ntime
    553            
     558
    554559           edges(1)=nbp_lev
    555560           edges(2)=1
     
    566571              call abort_physic("writediagfi",
    567572     &             "failed writing "//trim(nom),1)
    568            endif 
     573           endif
    569574
    570575!Case of a 0D variable (ie: a time-dependent scalar)
     
    603608
    604609!#ifdef NC_DOUBLE
    605 !           ierr = NF_PUT_VARA_DOUBLE (nid,varid,corner,edges,dx0) 
     610!           ierr = NF_PUT_VARA_DOUBLE (nid,varid,corner,edges,dx0)
    606611!#else
    607612           ierr= NF_PUT_VARA_REAL(nid,varid,corner,edges,dx0)
     
    613618              call abort_physic("writediagfi",
    614619     &             "failed writing "//trim(nom),1)
    615            endif 
     620           endif
    616621
    617622          endif !of if (is_master)
Note: See TracChangeset for help on using the changeset viewer.