7 HFILE,HFILETYPE,KLUOUT,OUNIF, &
48 USE modi_prep_ocean_unif
49 USE modi_prep_ocean_netcdf
50 USE modi_prep_ocean_ascllv
67 TYPE(
ocean_t),
INTENT(INOUT) :: O
69 INTEGER,
INTENT(IN) :: KLAT
71 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
72 CHARACTER(LEN=28),
INTENT(IN) :: HFILE
73 CHARACTER(LEN=6),
INTENT(IN) :: HFILETYPE
74 INTEGER,
INTENT(IN) :: KLUOUT
75 LOGICAL,
INTENT(IN) :: OUNIF
76 CHARACTER(LEN=7) :: HSURF
77 CHARACTER(LEN=28),
INTENT(IN),
OPTIONAL :: HNCVARNAME
82 REAL,
POINTER,
DIMENSION(:,:,:) ::ZFIELDIN=>null()
83 REAL,
POINTER,
DIMENSION(:,:) ::ZFIELD=>null()
84 REAL,
ALLOCATABLE,
DIMENSION(:,:,:)::ZFIELDOUT
88 REAL(KIND=JPRB) :: ZHOOK_HANDLE
94 IF (
lhook)
CALL dr_hook(
'PREP_HOR_OCEAN_FIELD',0,zhook_handle)
97 WRITE(kluout,*)
'*****warning*****: you ask for uniform oceanic variables' 99 ELSE IF (hfiletype==
'NETCDF')
THEN 100 CALL prep_ocean_netcdf(hprogram,hsurf,hfile,hfiletype,kluout,hncvarname,zfieldin)
101 ELSE IF (hfiletype==
'ASCII')
THEN 102 WRITE(kluout,*)
'PERSONAL LIB TEST FOR READING ',hfiletype,
'file type' 103 WRITE(kluout,*)
'ASCII FILE MUST CONTAIN LAT,LON,DEPTH,T,S,U,V' 106 CALL abor1_sfx(
'PREP_OCEAN_HOR_FIELD: data file type not supported : '//hfiletype)
113 ALLOCATE(zfieldout(klat,
SIZE(zfieldin,2),
SIZE(zfieldin,3)) )
114 ALLOCATE(zfield(
SIZE(zfieldin,1),
SIZE(zfieldin,3)))
116 DO jlev=1,
SIZE(zfieldin,2)
117 zfield(:,:)=zfieldin(:,jlev,:)
118 CALL hor_interpol(dtco, u, gcp, kluout,zfield,zfieldout(:,jlev,:))
129 o%XSEAT(:,jlev) = zfieldout(:,jlev,1)
132 o%XSEAT(:,
nockmin)=o%XSEAT(:,ik1)
136 or%XSEAT_REL(:,:) = o%XSEAT(:,:)
142 o%XSEAS(:,jlev) = zfieldout(:,jlev,1)
144 o%XSEAS(:,
nockmin)=o%XSEAS(:,ik1)
148 or%XSEAS_REL(:,:) = o%XSEAS(:,:)
154 o%XSEAU(:,jlev) = zfieldout(:,jlev,1)
156 o%XSEAU(:,
nockmin)=o%XSEAU(:,ik1)
158 IF (.NOT.o%LCURRENT) o%XSEAU(:,:)=0.
160 or%XSEAU_REL(:,:) = o%XSEAU(:,:)
166 o%XSEAV(:,jlev) = zfieldout(:,jlev,1)
168 o%XSEAV(:,
nockmin)=o%XSEAV(:,ik1)
170 IF (.NOT.o%LCURRENT) o%XSEAV(:,:)=0.
172 or%XSEAV_REL(:,:) = o%XSEAV(:,:)
181 DEALLOCATE(zfieldout)
182 IF (
lhook)
CALL dr_hook(
'PREP_HOR_OCEAN_FIELD',1,zhook_handle)
character(len=10) cingrid_type
subroutine prep_ocean_netcdf(HPROGRAM, HSURF, HFILE, HFILETYPE, KLUOUT, HNCVARNAME, PFIELD)
subroutine prep_ocean_unif(KLUOUT, HSURF, PFIELD)
character(len=6) cinterp_type
subroutine prep_ocean_ascllv(DTCO, UG, U, HPROGRAM, HSURF, HFILE, KLUOUT, PFIELD)
subroutine prep_hor_ocean_field(DTCO, UG, U, GCP, O, OR, KLAT, HPROGRAM, HFILE, HFILETYPE, KLUOUT, OUNIF, HSURF, HNCVARNAME)
subroutine abor1_sfx(YTEXT)
subroutine hor_interpol(DTCO, U, GCP, KLUOUT, PFIELDIN, PFIELDOUT)