29 HREC,PFIELD,KRESP,HCOMMENT)
40 USE modi_error_write_surf_fa
51 CHARACTER(LEN=12),
INTENT(IN) :: HREC
52 REAL,
INTENT(IN) :: PFIELD
53 INTEGER,
INTENT(OUT):: KRESP
54 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
59 CHARACTER(LEN=18):: YNAME
60 INTEGER :: INGRIB,INBPDG,INBCSP,ISTRON,IPUILA,IDMOPL
61 REAL(KIND=JPRB) :: ZHOOK_HANDLE
63 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:ERROR_WRITE_SURF_FA:WRITE_SURFX0_FA',0,zhook_handle)
69 IF (gfound .AND.
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFX0_FA',1,zhook_handle)
73 CALL faveur(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
86 CALL fagote(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
89 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFX0_FA',1,zhook_handle)
95 HREC,KFIELD,KRESP,HCOMMENT)
105 USE modi_error_write_surf_fa
116 CHARACTER(LEN=12),
INTENT(IN) :: HREC
117 INTEGER,
INTENT(IN) :: KFIELD
118 INTEGER,
INTENT(OUT):: KRESP
119 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
124 CHARACTER(LEN=18):: YNAME
125 INTEGER :: INGRIB,INBPDG,INBCSP,ISTRON,IPUILA,IDMOPL
126 REAL(KIND=JPRB) :: ZHOOK_HANDLE
128 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFN0_FA',0,zhook_handle)
134 IF (gfound .AND.
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFN0_FA',1,zhook_handle)
138 CALL faveur(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
151 CALL fagote(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
154 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFN0_FA',1,zhook_handle)
160 HREC,OFIELD,KRESP,HCOMMENT)
170 USE modi_error_write_surf_fa
181 CHARACTER(LEN=12),
INTENT(IN) :: HREC
182 LOGICAL,
INTENT(IN) :: OFIELD
183 INTEGER,
INTENT(OUT):: KRESP
184 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
189 CHARACTER(LEN=18):: YNAME
190 INTEGER :: INGRIB,INBPDG,INBCSP,ISTRON,IPUILA,IDMOPL
191 REAL(KIND=JPRB) :: ZHOOK_HANDLE
193 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFL0_FA',0,zhook_handle)
199 IF (gfound .AND.
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFL0_FA',1,zhook_handle)
203 CALL faveur(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
216 CALL fagote(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
219 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFL0_FA',1,zhook_handle)
225 HREC,HFIELD,KRESP,HCOMMENT)
236 USE modi_error_write_surf_fa
247 CHARACTER(LEN=12),
INTENT(IN) :: HREC
248 CHARACTER(LEN=40),
INTENT(IN) :: HFIELD
249 INTEGER,
INTENT(OUT) :: KRESP
250 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
255 CHARACTER,
DIMENSION(40) :: YFIELD
256 CHARACTER(LEN=18) :: YNAME
257 INTEGER :: INGRIB,INBPDG,INBCSP,ISTRON,IPUILA,IDMOPL
258 REAL(KIND=JPRB) :: ZHOOK_HANDLE
260 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFC0_FA',0,zhook_handle)
266 IF (gfound.AND.
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFC0_FA',1,zhook_handle)
270 CALL faveur(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
275 READ(hfield,
'(40A1)') yfield
284 CALL fagote(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
287 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFC0_FA',1,zhook_handle)
293 HREC,KL,PFIELD,KRESP,HCOMMENT,HDIR)
308 USE modi_error_write_surf_fa
324 CHARACTER(LEN=12),
INTENT(IN) :: HREC
325 INTEGER,
INTENT(IN) :: KL
326 REAL,
DIMENSION(KL),
INTENT(IN) :: PFIELD
327 INTEGER,
INTENT(OUT):: KRESP
328 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
329 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
336 INTEGER :: I,INGRIB,INBPDG,INBCSP,ISTRON,IPUILA,IDMOPL
337 REAL :: ZMEAN, ZCOUNT
339 REAL,
DIMENSION(MAX(NFULL,SIZE(PFIELD))) :: ZWORK
340 REAL(KIND=JPRB) :: ZHOOK_HANDLE
342 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFX1_FA',0,zhook_handle)
349 IF (gfound .AND.
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFX1_FA',1,zhook_handle)
355 zwork(1:kl)=pfield(1:kl)
356 zwork(kl+1:
nfull)=
sum(pfield(1:kl))/
REAL(kl)
366 CALL faveur(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
372 CALL fagote(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
378 zmean =zmean+zwork(i)
382 IF (zcount.GT.0.0) zmean=zmean/zcount
383 WHERE(zwork(:)==
xundef)zwork(:)=zmean
394 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFX1_FA',1,zhook_handle)
414 USE modi_error_write_surf_fa
430 CHARACTER(LEN=12),
INTENT(IN) :: HREC
431 INTEGER,
INTENT(IN) :: KL1
432 INTEGER,
INTENT(IN) :: KL2
433 REAL,
DIMENSION(KL1,KL2),
INTENT(IN) :: PFIELD
434 INTEGER,
INTENT(OUT):: KRESP
435 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
436 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
443 CHARACTER(LEN=4) :: YPREFIX
444 CHARACTER(LEN=3) :: YPATCH
446 INTEGER :: INGRIB,INBPDG,INBCSP,ISTRON,IPUILA,IDMOPL
448 REAL,
DIMENSION(MAX(NFULL,SIZE(PFIELD,1)),SIZE(PFIELD,2)) :: ZWORK
449 REAL,
DIMENSION(SIZE(PFIELD,2)) :: ZMEAN, ZCOUNT
450 REAL(KIND=JPRB) :: ZHOOK_HANDLE
452 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFX2_FA',0,zhook_handle)
459 IF (gfound .AND.
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFX2_FA',1,zhook_handle)
471 CALL faveur(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
474 DO jl=1,
SIZE(zwork,2)
475 WRITE(ypatch,
'(I3.3)')jl
481 CALL fagote(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
486 DO jl=1,
SIZE(zwork,2)
487 IF(zwork(i,jl)/=
xundef)
THEN 488 zmean(jl)=zmean(jl)+zwork(i,jl)
489 zcount(jl)=zcount(jl)+1.0
493 WHERE(zcount(:)>0.0)zmean(:)=zmean(:)/zcount(:)
494 DO jl=1,
SIZE(zwork,2)
495 WHERE(zwork(:,jl)==
xundef)zwork(:,jl)=zmean(jl)
496 WRITE(ypatch,
'(I3.3)')jl
509 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFX2_FA',1,zhook_handle)
514 SUBROUTINE write_surfx3_fa (HREC,KL1,KL2,KL3,PFIELD,KRESP,HCOMMENT,HDIR)
529 USE modi_error_write_surf_fa
545 CHARACTER(LEN=12),
INTENT(IN) :: HREC
546 INTEGER,
INTENT(IN) :: KL1
547 INTEGER,
INTENT(IN) :: KL2
548 INTEGER,
INTENT(IN) :: KL3
549 REAL,
DIMENSION(KL1,KL2,KL3),
INTENT(IN) :: PFIELD
550 INTEGER,
INTENT(OUT):: KRESP
551 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
552 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
559 CHARACTER(LEN=4) :: YPREFIX
560 CHARACTER(LEN=3) :: YPATCH
562 INTEGER :: INGRIB,INBPDG,INBCSP,ISTRON,IPUILA,IDMOPL
564 REAL,
DIMENSION(MAX(NFULL,SIZE(PFIELD,1)),SIZE(PFIELD,2),SIZE(PFIELD,3)) :: ZWORK
565 REAL,
DIMENSION(SIZE(PFIELD,2),SIZE(PFIELD,3)) :: ZMEAN, ZCOUNT
566 REAL(KIND=JPRB) :: ZHOOK_HANDLE
568 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFX2_FA',0,zhook_handle)
574 IF (gfound .AND.
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFX2_FA',1,zhook_handle)
586 CALL faveur(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
589 DO jp=1,
SIZE(zwork,3)
590 DO jl=1,
SIZE(zwork,2)
591 WRITE(ypatch,
'(I3.3)')jl
598 CALL fagote(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
603 DO jp=1,
SIZE(zwork,3)
604 DO jl=1,
SIZE(zwork,2)
605 IF(zwork(i,jl,jp)/=
xundef)
THEN 606 zmean(jl,jp)=zmean(jl,jp)+zwork(i,jl,jp)
607 zcount(jl,jp)=zcount(jl,jp)+1.0
612 WHERE(zcount(:,:)>0.0)zmean(:,:)=zmean(:,:)/zcount(:,:)
613 DO jp=1,
SIZE(zwork,3)
614 DO jl=1,
SIZE(zwork,2)
615 WHERE(zwork(:,jl,jp)==
xundef)zwork(:,jl,jp)=zmean(jl,jp)
616 WRITE(ypatch,
'(I3.3)')jl
630 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFX3_FA',1,zhook_handle)
636 HREC,KL,KFIELD,KRESP,HCOMMENT,HDIR)
651 USE modi_error_write_surf_fa
667 CHARACTER(LEN=12),
INTENT(IN) :: HREC
668 INTEGER,
INTENT(IN) :: KL
669 INTEGER,
DIMENSION(KL),
INTENT(IN) :: KFIELD
670 INTEGER,
INTENT(OUT):: KRESP
671 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
672 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
679 CHARACTER(LEN=18) :: YNAME
680 INTEGER :: INGRIB,INBPDG,INBCSP,ISTRON,IPUILA,IDMOPL
681 INTEGER,
DIMENSION(MAX(NFULL,SIZE(KFIELD))) :: IWORK
683 REAL(KIND=JPRB) :: ZHOOK_HANDLE
685 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFN1_FA',0,zhook_handle)
692 IF (gfound .AND.
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFN1_FA',1,zhook_handle)
695 IF (hdir/=
'H' .OR. hrec==
"-")
THEN 708 CALL faveur(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
720 CALL fagote(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
729 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFN1_FA',1,zhook_handle)
736 HREC,KL,OFIELD,KRESP,HCOMMENT,HDIR)
751 USE modi_error_write_surf_fa
766 CHARACTER(LEN=12),
INTENT(IN) :: HREC
767 INTEGER,
INTENT(IN) :: KL
768 LOGICAL,
DIMENSION(KL),
INTENT(IN) :: OFIELD
769 INTEGER,
INTENT(OUT):: KRESP
770 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
771 CHARACTER(LEN=1),
INTENT(IN) :: HDIR
778 CHARACTER(LEN=18):: YNAME
779 INTEGER :: INGRIB,INBPDG,INBCSP,ISTRON,IPUILA,IDMOPL
781 REAL(KIND=JPRB) :: ZHOOK_HANDLE
783 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFL1_FA',0,zhook_handle)
790 IF (gfound .AND.
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFL1_FA',1,zhook_handle)
800 CALL faveur(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
811 CALL fagote(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
820 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFL1_FA',1,zhook_handle)
826 HREC,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
837 USE modi_error_write_surf_fa
848 CHARACTER(LEN=12),
INTENT(IN) :: HREC
849 INTEGER,
INTENT(IN) :: KYEAR
850 INTEGER,
INTENT(IN) :: KMONTH
851 INTEGER,
INTENT(IN) :: KDAY
852 REAL,
INTENT(IN) :: PTIME
853 INTEGER,
INTENT(OUT) :: KRESP
854 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
859 CHARACTER(LEN=18) :: YNAME
861 INTEGER :: IHOUR, IMIN, ISEC
862 INTEGER :: INGRIB,INBPDG,INBCSP,ISTRON,IPUILA,IDMOPL
863 INTEGER,
DIMENSION(3) :: ITDATE
864 REAL(KIND=JPRB) :: ZHOOK_HANDLE
866 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFT0_FA',0,zhook_handle)
870 IF (hrec==
'DTCUR')
THEN 872 ihour = floor(ptime)/3600
873 imin = floor(ptime)/60 - ihour * 60
874 isec = nint(ptime) - ihour * 3600 - imin * 60
875 CALL fandar(iret,
nunit_fa,(/ kyear, kmonth, kday, ihour, imin, isec, 0, 0, 0, 0, 0 /))
881 IF (gfound .AND.
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFT0_FA',1,zhook_handle)
891 CALL faveur(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
910 CALL fagote(kresp,
nunit_fa,ingrib,inbpdg,inbcsp,istron,ipuila,idmopl)
913 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFT0_FA',1,zhook_handle)
919 HREC,KL1,KL2,KYEAR,KMONTH,KDAY,PTIME,KRESP,HCOMMENT)
935 USE modi_error_write_surf_fa
950 CHARACTER(LEN=12),
INTENT(IN) :: HREC
951 INTEGER,
INTENT(IN) :: KL1
952 INTEGER,
INTENT(IN) :: KL2
953 INTEGER,
DIMENSION(KL1,KL2),
INTENT(IN) :: KYEAR
954 INTEGER,
DIMENSION(KL1,KL2),
INTENT(IN) :: KMONTH
955 INTEGER,
DIMENSION(KL1,KL2),
INTENT(IN) :: KDAY
956 REAL,
DIMENSION(KL1,KL2),
INTENT(IN) :: PTIME
957 INTEGER,
INTENT(OUT) :: KRESP
958 CHARACTER(LEN=100),
INTENT(IN) :: HCOMMENT
963 CHARACTER(LEN=18):: YNAME
964 INTEGER,
DIMENSION(3,SIZE(KYEAR,1),SIZE(KYEAR,2)) :: ITDATE
966 REAL(KIND=JPRB) :: ZHOOK_HANDLE
968 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFT2_FA',0,zhook_handle)
975 IF (gfound .AND.
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFT2_FA',1,zhook_handle)
984 itdate(1,:,:) = kyear(:,:)
985 itdate(2,:,:) = kmonth(:,:)
986 itdate(3,:,:) = kday(:,:)
989 WRITE(
nluout,*)
' WRITE_SURFT2_FA : time in 2 dimensions not yet implemented : YNAME=',yname,
'ITDATE=',itdate
990 CALL abor1_sfx(
'MODE_WRITE_SURF_FA:WRITE_SURFT2_FA: time in 2 dimensions not yet implemented')
998 IF (
lhook)
CALL dr_hook(
'MODE_WRITE_SURF_FA:WRITE_SURFT2_FA',1,zhook_handle)
subroutine faienc(KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, PCHAMP, LDCOSP)
subroutine error_write_surf_fa(HREC, KRESP)
static const char * trim(const char *name, int *n)
subroutine fagote(KREP, KNUMER, KNGRIB, KNARG1, KNARG2, KNARG3, KNARG4, KNARG5)
subroutine write_surfx0_fa(HREC, PFIELD, KRESP, HCOMMENT)
subroutine write_surft0_fa(HREC, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine faecr_l_d(KREP, KN, CNOMC, KSIZE, LDATA)
subroutine write_surfc0_fa(HREC, HFIELD, KRESP, HCOMMENT)
subroutine abor1_sfx(YTEXT)
subroutine faveur(KREP, KNUMER, KNGRIB, KNARG1, KNARG2, KNARG3, KNARG4, KNARG5)
character(len=4), save cprefix1d
subroutine write_surft2_fa(HREC, KL1, KL2, KYEAR, KMONTH, KDAY, PTIME, KRESP, HCOMMENT)
subroutine faecr_c(KREP, KN, CNOMC, KSIZE, CDATA)
subroutine write_surfn1_fa(HREC, KL, KFIELD, KRESP, HCOMMENT, HDIR)
subroutine faecr_i(KREP, KN, CNOMC, KDATA)
subroutine faecr_l(KREP, KN, CNOMC, LDATA)
subroutine write_surfx3_fa(HREC, KL1, KL2, KL3, PFIELD, KRESP, HCOMMENT, HDIR)
character(len=1), save cprefix2d
intent(out) overrides sub arrays one Sort by the least significant key first sum(iindex(1:n))
subroutine faecr_r(KREP, KN, CNOMC, PDATA)
subroutine write_surfl1_fa(HREC, KL, OFIELD, KRESP, HCOMMENT, HDIR)
subroutine io_buff(HREC, HACTION, OKNOWN)
subroutine write_surfn0_fa(HREC, KFIELD, KRESP, HCOMMENT)
subroutine write_surfx1_fa(HREC, KL, PFIELD, KRESP, HCOMMENT, HDIR)
subroutine fandar(KREP, KNUMER, KDATEF)
logical, save lfanocompact
subroutine write_surfl0_fa(HREC, OFIELD, KRESP, HCOMMENT)
subroutine wlog_mpi(HLOG, PLOG, KLOG, KLOG2, OLOG)
subroutine write_surfx2_fa(HREC, KL1, KL2, PFIELD, KRESP, HCOMMENT, HDIR)
integer, dimension(:), pointer nmask
subroutine faecr_i_d(KREP, KN, CNOMC, KSIZE, KDATA)